Commit Graph

26394 Commits

Author SHA1 Message Date
rdb 2ea02ef0c8 putil: Add new primitives for async callbacks/futures
These are a lot lighter than AsyncFuture and safer to use in C++ due to the reliance on RAII.  An async method can now take a CompletionToken, which will implicitly accept an arbitrary callable or an AsyncFuture pointer.
2025-01-27 15:28:11 +01:00
rdb 67723ca06a display: Generalized method for running things on draw thread
This is more general and elegant than manually listing all operations in
a big enum
2025-01-27 14:01:51 +01:00
rdb 5b0cf9e053 glgsg: More efficient handling of texture memory barriers
New system uses counters instead of sets, just setting a counter for
each barrier on a texture to the same value as a counter on the GSG when
a barrier is pending, and incrementing the counter on the GSG whenever
that barrier is issued, is enough to track pending barriers since
barriers are global
2025-01-27 12:57:40 +01:00
rdb a55860bf49 glgsg: Fix memory barrier for extract_shader_buffer_data 2025-01-27 12:54:53 +01:00
rdb 3833866801 display: Add method to synchronously download SSBO contents 2025-01-25 18:08:54 +01:00
rdb 7ba4fe365c display: Add gsg.engine property 2025-01-25 18:08:29 +01:00
rdb 3082d28fe8 pstatclient: Fix out-of-order events with thread profiling
It could generate an end/start pair on a thread that is waiting due to other threads in that sync group submitting a PStats frame for the whole sync group, which would cause out-of-order events
2025-01-22 22:17:56 +01:00
rdb da4e2cad9f express: Use monotonic clock on POSIX (has nanosecond precision) 2025-01-22 22:16:36 +01:00
rdb 674fa4480b task: Fix first frame on task chain missed by PStats 2025-01-22 22:14:01 +01:00
rdb 91f124e2f1 display: Allow setting a custom clock for a GraphicsEngine
This is essential for supporting multiple engines, otherwise both engines will try to tick the global clock in render_frame()
2025-01-21 12:16:09 +01:00
rdb 8c9ba6dc38 cocoa: Fix compilation error 2025-01-21 12:04:01 +01:00
rdb f872a82422 display: Support sharing graphics context between GraphicsEngines
Automatically happens when creating a new window/buffer specifying a GSG that was created with a different engine.
2025-01-21 11:52:58 +01:00
rdb 8f4d0c8a66 gobj: Make BufferContextChain thread-safe 2025-01-21 11:37:29 +01:00
rdb db692edfa9 glgsg: Issue memory barriers for SSBOs
At the moment, it assumes that all SSBO accesses are writes, once shaderpipeline lands we can sort out readonly accesses based on the qualifiers in the shader
2025-01-20 20:58:14 +01:00
rdb 271fa9d9c0 glgsg: Fix issues with render-to-texture and cube map arrays 2025-01-19 11:10:06 +01:00
WMOkiishi eb5366b991
tests: Update mypy to version 1.14.1 (#1715) 2025-01-16 16:04:09 +01:00
Disyer cc6646a448 cull: Fix crash caused by freeing a cull object with empty volume 2025-01-11 21:32:52 +02:00
rdb be382a8f29 makewheel: Exclude some more system libs
[skip ci]
2024-12-29 14:39:43 +01:00
rdb 770e2fff0c windisplay: Remove unused config.prc variable definitions:
- responsive-minimized-fullscreen-window
- hold-keys-across-windows
- swapbuffer-framelock
2024-12-26 22:13:57 +01:00
rdb f4337338c1 readme: Update Android build instructions
[skip ci]
2024-12-26 15:03:19 +01:00
rdb 598a94abfc android: Set minimum to API level 21
[skip ci]
2024-12-26 15:00:55 +01:00
burningbuffer 5965d5bbec
windisplay: Prevent window resize to zero (#1705) 2024-12-21 18:53:07 +01:00
rdb 899af61e2a pgraph: Fix ModelPool return value reference count 2024-12-19 16:18:17 +01:00
rdb e43dc87df5 Fix unit test failures on Python 3.13 2024-12-14 15:25:03 +01:00
rdb 46cf9c0507 showbase: Fix Loader when destroying and recreating ShowBase 2024-12-14 14:47:28 +01:00
rdb 3f2b9cd351 pgraph: Make ModelPool.load_model() work same as Loader.load_sync()
ModelPool.load_model() did not work like the other pools, didn't resolve relative to the VFS, didn't respect loader options... let's just make these work the same.  We should deprecate one in favor of the other eventually
2024-12-14 13:25:12 +01:00
rdb 343ec6b367 showbase: Create Loader before ShowBase, importable from ShowBaseGlobal
This makes it possible to load models before opening ShowBase
2024-12-14 12:57:27 +01:00
rdb 5d465be01e samples: Remove unused CardMaker import from procedural-cube sample 2024-12-14 12:50:17 +01:00
rdb 5e05049725 collide: Add custom owner field to CollisionNode
This stores a weakref to a custom Python object, useful for being able to look up the game object corresponding to a particular collision node in an event without the downsides of Python tags

Fixes #1703
2024-12-14 12:48:24 +01:00
rdb 6f33bbecea glgsg: Fix use after free with gl-force-fbo-color and layered FBO 2024-12-03 13:19:48 +01:00
rdb 26dd784153 gobj: Make BufferResidencyTracker::_residency a const field 2024-12-03 13:19:17 +01:00
rdb ff111132f4 android: Draw to whole window, ignoring contentRect
This contentRect is quite odd and blocks out a big chunk at the top of the screen which doesn't really seem to correspond to anything
2024-11-27 18:11:10 +01:00
rdb d87cbbce62 dist: Validate application_id when building for Android 2024-11-27 18:10:18 +01:00
rdb 7d753d479f dist: Set various AndroidManifest.xml attribs, support appCategory 2024-11-27 17:17:12 +01:00
rdb 6f0fa2b4ec dist: Fix for Android configuration changes restarting app
Intended to address most of #1216
2024-11-27 17:09:29 +01:00
rdb 73c6759984 android: Exit process after activity shutdown
Hack to help with #1216 a bit

Unfortunately this causes the activity to reopen sometimes, but maybe this can serve as a stopgap for now
2024-11-27 16:26:59 +01:00
rdb 8a1d0f7a5a makepanda: use javac from JAVA_HOME, check for deprecations 2024-11-27 16:00:59 +01:00
rdb a855071bcf showbase: Fix regressions on Android due to not running on main thread 2024-11-27 15:57:05 +01:00
rdb d6acaaffb0 dist: Android fixes, esp. for Python 3.13
This changes the use of sys.executable to sys.platlibdir, which requires Python 3.9+ (but that's probably okay since Python 3.8 is EOL)

Python 3.13 has proper official Android support, including built-in stdout/stderr redirection, but it only does so if sys.executable is not set
2024-11-27 00:21:11 +01:00
rdb 46e90058b9 android: Fix crash on shutdown if stdout/err is not redirected 2024-11-27 00:09:02 +01:00
rdb d1707c48fc makewheel: Correct path to libpython on Android 2024-11-27 00:08:09 +01:00
rdb a32030d46e framework: Clean up task manager on close_framework()
This prevents crashes due to the tasks it spawns continuing to run
2024-11-26 18:16:01 +01:00
rdb ff3e7da752 pipeline: Never try to detach external pthread (fixes Android crash) 2024-11-26 17:02:26 +01:00
rdb ac68b85d1f shader: Fix compilation warning 2024-11-26 16:42:45 +01:00
rdb 347164103c text: Don't try to use harfbuzz if freetype is not enabled either 2024-11-26 16:42:21 +01:00
rdb c31041c8cc android: Fix assorted errors and deprecations 2024-11-26 16:42:02 +01:00
rdb 44a41168bc makepanda: Fix assorted Android compile / package issues 2024-11-26 16:41:13 +01:00
rdb 7191fb1ed6 makepanda: Don't look for macOS framework when cross-compiling 2024-11-26 16:40:49 +01:00
rdb fa25c51d30 notify: Fix compile error on Android 2024-11-26 16:40:18 +01:00
rdb 639497310e windisplay: Fix recursive loop in adjust_z_order 2024-11-14 20:21:04 +01:00