Buffer textures don't support compression, so we shouldn't try to driver-compress them, and we should not try to compress the RAM image unless explicitly overridden.
We don't support float-32-unsigned-int-24-8 component types in texture yet, so this is the only choice. Avoids a GL error when binding to RTP_depth_stencil slot.
Fixes case 2 of #1142
This is to support older kernels, which always returned 0 from successful ioctl, rather than the number of bits. This was fixed in the FreeBSD kernel trunk.
Apparently, the use of glColorPointer with GL_BGRA causes these cards to display garbled vertex colors (tested with RX 5700 XT). This bug doesn't seem to affect glVertexAttribPointer.
The "fix" is to just disable packed-dabc colors if these cards are detected. This may cause a minor performance regression since the vertex data now needs to be munged--possibly even unnecessarily, if shaders are used, but this effect is likely very minor (and can be addressed in other ways).
Fixes#981
This was called, among other things, by the egg-unify process, which could ruin the strip cut index.
At the same time, I've reimplemented the indexed case for offset_vertices() to make it a little bit more efficient.
Fixes#1122
Previously, calling that without storing a temporary object would cause the WindowProperties to go out of scope and the return value to point to random memory.
This could have been produced with make_copy(), which can create a situation where the Physical objects don't have the same node associated -- see b6a118448d
This fixes an issue where if you quickly alt-tab when the window opens, it receives a WM_ACTIVATE event and thinks it continues to be active, which causes issues with applying cursor confinement.
I think you can probably still reproduce that issue, but your reflexes have to be significantly more ninja now.
This would happen if the undecorated flag is not set; it would receive an additional offset equal to the size of the window decoration.
Fixes regression presumably caused by a968caf1d2
An FM_refresh bind should not bind the multisample FBO, but the resolved one (and while we're at it, FM_refresh should not try to resolve multisamples).
We can't call PyErr_Restore() without a valid thread state, which won't exist in a custom thread if we just called PyGILState_Release(). Not sure how this has ever worked.
This matches the behaviour of asyncio. It schedules with the current task's manager and chain. If no current manager is found, it prints a warning. (The user can just add the coroutine to a task manager themselves and pass the resulting task into gather() if needed.)
See discussion here:
https://discourse.panda3d.org/t/task-gather-does-not-seem-to-work/27313