Commit Graph

11957 Commits

Author SHA1 Message Date
rdb d98f966693 display: Extra spam message about what window a flip is done for 2022-05-05 10:38:25 +02:00
Geraldo Nascimento 5ceaf66079 v4l: O_NONBLOCK flag should be OR'ed to O_RDWR or mmap will fail below
Closes #1299
2022-05-05 10:28:55 +02:00
rdb 1b21e604f0 Merge branch 'release/1.10.x' 2022-04-21 11:09:28 +02:00
rdb aab149e75a windisplay: Add debug prints listing display devices and monitors 2022-04-02 20:42:04 +02:00
rdb 3f901243f2 display: Add additional spam prints 2022-04-02 20:40:58 +02:00
rdb e02a9989fb android: Changes to add compatibility with pyjnius/plyer 2022-03-12 18:18:15 +01:00
rdb 98d70147bd pipeline: Fix Thread::bind_thread() assertion on Android 2022-03-12 16:48:46 +01:00
rdb 3d31f117e0 express: Fix compilation error with GCC 2022-03-09 16:23:37 +01:00
rdb 3456769703 gobj: Fix crash in PythonTexturePoolFilter 2022-03-09 16:23:37 +01:00
rdb c62d2319e0 CMake: Add --exclude-libs flags to static thirdparty libraries
Matching makepanda, this avoids symbol conflicts and may have optimization benefits.

This is a temporary hack until CMake 3.24 is released, which offers a cleaner way of doing this.
2022-03-09 16:23:37 +01:00
rdb 72f98ec30d gobj: Delete assignment operator of Geom* classes
They are unused and it would probably be a bad idea to try to use them.
2022-03-09 16:23:37 +01:00
rdb 6b9dea3e30 cleanup: Fix comparison between pointer and 0 (instead of nullptr) 2022-03-09 16:23:37 +01:00
rdb 8cdac14db3 collide: First pass at reducing memory overhead of CollisionBox
This is just the low-hanging fruit, there are a lot more gains to be realized.
2022-03-09 16:23:34 +01:00
rdb dae147ec0c Merge branch 'release/1.10.x' 2022-03-02 10:51:23 +01:00
rdb 930e5da438 texture: Fix get_ram_image_as() with 3D and multiview textures
Fixes #1277
2022-03-02 10:42:45 +01:00
rdb 46c1b887ea Fix heap alignment with SSE2 on 32-bit Windows by inheriting MemoryBase
Fixes #510
2022-03-02 09:57:44 +01:00
rdb 370b635534 dtoolbase: Fix missing __stdcall when compiling for 32-bit Windows 2022-03-02 09:57:24 +01:00
rdb a0be50c769 general: Fix assorted compiler warnings 2022-03-01 16:09:07 +01:00
rdb 21377c8de5 Use secure versions of CRT getenv etc. when compiling with MSVC 2022-03-01 16:09:07 +01:00
rdb 5cfd8db95c glxdisplay: Update panda_glxext.h 2022-03-01 16:09:07 +01:00
rdb ac3aa64d33 express: Add docstring to DatagramIterator about Datagram lifetime
Related to #1262

[skip ci]
2022-03-01 15:14:01 +01:00
rdb 583c9f1857 pipeline: Fix issues with calling convention on 32-bit Windows 2022-03-01 12:19:13 +01:00
rdb 7ccf38a948 pgraph: Remove obsolete PandaNodeChain class
Obsoleted by 6bc22d1822
2022-02-24 14:13:11 +01:00
rdb 6bc22d1822 pgraph: Rewrite inefficient prev_transform tracking mechanism
The previous system was causing a lot of lock contention when transforms are modified in the Cull thread.

The new implementation doesn't use a linked list or lock at all, but a simple atomically incrementing integer that indicates that the prev transforms have changed.  set_transform() reads this and backs up the prev transform the first time a transform is modified after reset_all_prev_transforms() is called.
2022-02-24 11:42:04 +01:00
rdb ba4173b32c pgraph: Add constexpr to CacheStats constructor 2022-02-23 23:20:53 +01:00
rdb c2d088f232 pipeline: Don't use Sleep(1) to yield on Windows
Use Sleep(0) instead.  Sleep(0) is not guaranteed to yield, which is a problem, but Sleep(1) can easily take up to 16 ms, which is really unacceptable except in very low-priority thread.  But really, you shouldn't be relying on force_yield() for anything except with the SIMPLE_THREADS model.

There is also SwitchToThread(), but in fact it is even weaker than Sleep(0).
2022-02-23 23:20:53 +01:00
rdb cb8563acac event: Update AsyncFuture to use new atomics implementation
With explicit barriers, and the non-timeout version of wait() is now significantly more efficient by using the new futexes if available
2022-02-23 23:20:49 +01:00
rdb 70c49a6416 pipeline: Add Thread::relax() for more efficient busy waiting
Equivalent to cpu_relax() or the pause instruction on x86
2022-02-23 23:20:30 +01:00
rdb 5196719f29 device: Fix XInput compile error compiling for newer Windows versions 2022-02-23 21:46:15 +01:00
rdb fd033e66f1 pstats: Add support for profiling thread context switches
Disabled by default, enable with `pstats-thread-profiling true` in Config.prc
2022-02-22 18:02:39 +01:00
rdb b4d51c24e9 event: Remove FunctionAsyncTask
To create a task from a lambda, it is more efficient to use the new AsyncTaskManager::add() short-hand which creates an AsyncTask subclass in-place.
2022-02-22 18:02:34 +01:00
rdb 7baeaf3809 event: New C++ AsyncTaskManager::add() no longer uses std::function
std::function has unnecessary overhead, better to just create an AsyncTask subclass in-place storing the closure

This obsoletes FunctionAsyncTask, it will be removed in a future commit
2022-02-22 17:02:42 +01:00
rdb 72c891c0df display: Fix issues with PStats GPU timing:
- Leaking queries by never reusing / releasing them
- Clock synchronization was way off when driver waited on GPU during sync point
2022-02-22 17:00:47 +01:00
rdb 759115fbc7 pstats: Fix crash when frame has only level data and no time data 2022-02-22 15:25:04 +01:00
rdb 0a3733ccb9 pstats: GPU timing improvements; use same frame numbering everywhere
Timer queries are significantly more efficient, are synchronized to CPU time, and the synchronized frame numbering makes it possible to correlate stuff in the Timeline view
2022-02-20 17:33:40 +01:00
rdb 65cd882cb2 display: PStats collector reorganisation
Remove *:do_frame (which adds another stack frame with very little value), remove unused App:Delete collector, merge Flip Begin/End collectors
2022-02-20 16:23:14 +01:00
rdb c0c5eeb27e display: Don't start/stop collectors for empty window list 2022-02-18 17:24:43 +01:00
rdb d7bbcfb0b7 pstats: Some collector reorganisation:
- "App:Show code:General" is gone, it was causing too much trouble
- Replace odd "Client::GuiObjects" with "Nodes:GUI"
- Regroup "Dirty PipelineCyclers" underneath "PipelineCyclers"
2022-02-17 12:48:36 +01:00
rdb 93b7ebffaa pstats: PStatClient.connect() should wait for UDP connection to be established
This makes the behavior of PStats more predictable, reducing missed frames at the beginning
2022-02-17 12:48:36 +01:00
rdb cf9574b412 pstats: Add convenience method for ticking current thread only 2022-02-17 12:48:36 +01:00
rdb aea2d6ef45 display: Release lock before notifying render thread in GraphicsEngine
Otherwise the render thread will wake up only to be blocked by the mutex right away.
2022-02-17 12:48:36 +01:00
rdb 355cd5b4cd pstats: Remove unused field from PStatClient::InternalThread 2022-02-07 17:03:58 +01:00
rdb 77b0d2d6a7 pstats: Switch from AtomicAdjust to C++11-style atomics 2022-02-07 17:02:30 +01:00
rdb e27162df0b Merge branch 'release/1.10.x' 2022-02-06 15:32:24 +01:00
rdb 287b0d5a74 mathutil: Add proper `__repr__` for LPlane class
Fixes #1248
2022-02-06 15:29:25 +01:00
rdb 94570f20aa pgraph: Remove need for grabbing lock in RenderState destructor 2022-02-05 22:25:51 +01:00
rdb 46a1ad3544 pipeline: Improve performance of Thread::get_current_thread() substantially
Speedup is realised by using thread-local variables.  Note that on Windows we can't inline get_current_thread, but it's still faster this way than calling TlsGetValue.

In theory the cache line alignment should help avoid false sharing but I have not profiled that extensively.
2022-02-04 23:49:39 +01:00
rdb f6322d8c93 pipeline: De-inline ConditionVarDummyImpl methods
This is the only ConditionVar implementation to import thread.h directly
2022-01-30 02:03:18 +01:00
rdb c66ca2ece1 pstats: Report PStats overhead more honestly
Half the overhead was being missed due to the unfortunate collector placement
2022-01-30 02:03:18 +01:00
rdb c7c1c683da pstats: Disable "App:Show code:General" collector for now
It is generating negative values, needs further investigation - maybe we need to restructure the whole hierarchy
2022-01-30 02:03:18 +01:00
rdb 36edb22fd1 pstats: Include client pid with hello message
Useful for uniquely identifying the process in a situation where multiple clients on the same host connect with the same server.

New version bump is not necessary, as old servers should just ignore the extra field in the datagram.
2022-01-30 02:03:18 +01:00
rdb 8034cb5a92 dtoolbase: Introduce patomic<> as replacement for AtomicAdjust
This typedefs to std::atomic<> when building with true threading, and uses a dummy implementation without.

This lets us use the full range of atomic operations offered by C++11, including explicit specification of memory fences.  Using barriers lets the compiler generate more optimal code since currently we are using the quite strict sequential-consistent memory ordering for all operations.  ReferenceCount has been changed to use the correct barriers (I hope).  This may especially make a difference on weak ordering systems such as ARM.

Over time we should gradually replace the use of AtomicAdjust with the new patomic file.
2022-01-30 01:53:36 +01:00
rdb 692221cacb cocoadisplay: Invert direction of horizontal scroll
Now behaves consistent with other applications (tested with Logitech MX Master 3 for Mac on macOS 10.13 in unnatural scrolling configuration).

Set `cocoa-invert-wheel-x true` to revert to old behaviour.
2022-01-22 15:56:53 +01:00
rdb eaa182f310 Merge commit '38bea01dab8f4dedd5fce9f8b9e82cebbf663189' into release/1.10.x 2022-01-22 15:46:52 +01:00
rdb 38bea01dab device: Do not enumerate keyboard/mouse devices on macOS by default
This causes an annoying "this app would like to receive keystrokes from any application" alert to be shown

Enable iokit-scan-mouse-devices or iokit-scan-keyboard-devices to restore the old behavior
2022-01-22 15:45:00 +01:00
rdb a56ee57422 Merge branch 'release/1.10.x' 2022-01-14 10:50:10 +01:00
rdb be2f6a7c61 glgsg: Fix missing GR_adjacency geom rendering flag
I don't think this flag being missing currently affects any functionality, but it is meant to be set when geometry shaders (with adjacency) are supported.
2022-01-14 10:25:01 +01:00
rdb b518da99a6 windisplay: fix origin not respected when switching to windowed mode 2022-01-12 10:23:19 +01:00
rdb 440b2c48b8 egg2pg: Slight cleanup
[skip ci]
2022-01-10 15:40:06 +01:00
rdb 6fe21fd8bd egg2pg: Add support for texture matrices to bam2egg 2022-01-10 13:22:57 +01:00
rdb 992cbb0840 pgraph: optimizations for analyze() 2022-01-10 13:22:34 +01:00
rdb a1538b4f7c pnmimage: Add offset parameters to PNMImage::perlin_noise_fill() 2022-01-10 13:21:51 +01:00
rdb 6777f19162 pnmimage: Add an additive PNMPainter brush 2022-01-10 13:21:46 +01:00
rdb 40f54a766c Merge branch 'release/1.10.x' 2022-01-07 10:52:28 +01:00
rdb d66ef59ecc pgraph: Fix assertion in PythonLoaderFileType with debug Python build 2022-01-07 10:44:03 +01:00
rdb 2d77093398 gobj: Fix TexturePeeker docstrings for filter_* being incorrect about wrapping
Fixes #1195
2022-01-06 12:52:10 +01:00
rdb 340dea5261 gobj: Fix crash when trying to load directory as txo/dds/ktx file 2022-01-06 11:52:40 +01:00
rdb 7a2a83572c Merge branch 'release/1.10.x' 2022-01-05 08:50:11 +01:00
rdb d65ca1edd6 pgraph: Fix nodes with same key but diff value getting flattened
This was a regression from 69b3468b2c
2022-01-05 08:14:08 +01:00
rdb ce9d2e38bf android: Improve physical mouse and keyboard handling:
- Support scroll wheel
- Support middle click, forward and back buttons (mouse4 and mouse5)
- Fix handling of key repeat events
- Correctly map numpad keys

[skip ci]
2022-01-04 20:35:17 +01:00
rdb d46651c032 Merge branch 'release/1.10.x' 2022-01-04 16:35:19 +01:00
rdb 210f7aecfb x11: Support mouse buttons 4 and 5 2022-01-04 11:06:25 +01:00
rdb d1c756713d display: Handle raw event for key between Shift and Z on ISO keyboards
This key is called raw-< for lack of anything better, it's usually mapped as backslash on US keyboards but that would not allow distinguishing between the backslash key near the enter key.
2022-01-04 11:05:46 +01:00
rdb c358f09f85 windisplay: Support lmeta, rmeta, and menu keys 2022-01-04 10:10:27 +01:00
rdb 08628dc97e windisplay: Support horizontal scroll wheel 2022-01-04 10:09:36 +01:00
rdb 822d8ce4c4 Revert "pgraph: Don't dupe shared GeomVertexData when premunging Geom"
This reverts commit f058bad802.

Reverting because I realised the current behaviour is happening due to different mungers, which my fix ignores.

Unfixes #1185
2022-01-03 11:31:54 +01:00
rdb f8df5cac32 Merge branch 'release/1.10.x' 2022-01-02 20:11:41 +01:00
rdb 11d5a49d6f pgraph: Fix LightAttrib::replace_{on|off}_light()
Fixes #1153
2022-01-02 13:02:04 +01:00
rdb f058bad802 pgraph: Don't dupe shared GeomVertexData when premunging Geom
Fixes #1185
2022-01-02 11:45:33 +01:00
rdb e9c97535f7 framework: Support GUI under pixel2d by default (for C++ users)
Fixes #1222
2022-01-01 18:22:02 +01:00
rdb b53895aa3d Merge branch 'release/1.10.x' 2022-01-01 18:18:46 +01:00
rdb 2915c6e670 glgsg: Force transform_weight column to read (0, 0, 0, 1) if absent
On NVIDIA cards, this doesn't seem to happen automatically.

Fixes #1207
2022-01-01 16:49:41 +01:00
rdb 5caf0ff5d6 device: Correction to 0e9ea67066
Fixes #1218
2022-01-01 15:14:30 +01:00
rdb 0e9ea67066 device: Implement correct sign extension for Windows raw devices
Hopefully, fix for #1218
2022-01-01 12:15:00 +01:00
rdb 72bf9e7fd1 device: Map FrSky RC controller as flight stick instead of gamepad
Reverts f01399bba8
2022-01-01 12:09:19 +01:00
rdb 1e6569e678 dxgsg9: Fix issues with luminance textures and ATI1 compression
Fixes #1198
2021-12-31 22:59:01 +01:00
rdb ecc6fb6b0c dxgsg9: Implement ability to get screenshot from multisample backbuffer
Fixes #1225
2021-12-31 13:41:57 +01:00
rdb 953cf898bc x11: Fix doubled-up info print message 2021-12-26 14:13:32 +01:00
rdb 9598065641 Merge branch 'release/1.10.x' 2021-12-26 14:13:23 +01:00
rdb f01399bba8 device: Correct axis mappings for FrSky RC controller on Windows
See #1218
2021-12-26 12:30:05 +01:00
rdb 8b19761844 device: Add spam output for raw windows device 2021-12-26 12:30:05 +01:00
rdb 5eb0f04e87 display: Add missing host property to GraphicsOutput 2021-12-14 11:43:03 +01:00
rdb 2e0614138f display: Add pickle support to FrameBufferProperties 2021-12-14 11:42:40 +01:00
rdb a4d53a8ced pgraph: Fix unnecessary double state munge in prepare_scene()
[skip ci]
2021-12-13 13:23:38 +01:00
rdb fc625eec11 Merge branch 'release/1.10.x' into incoming 2021-12-12 22:54:15 +01:00
Aidan Noll 8fbf972f30 putil: use Py_REFCNT macro instead of directly accessing reference count field
Closes #1197
2021-12-12 22:22:10 +01:00
rdb 0e91f4ee1c device: Gracefully ignore invalid data index from raw input device 2021-12-12 18:38:09 +01:00
rdb 215ad6bfd9 Fix a few docstring typos 2021-12-12 18:38:09 +01:00
rdb e4013226e1 general: Remove vestigial typedef.h file 2021-12-12 18:37:49 +01:00
rdb 3ef5d96efc putil: Slight BamReader optimization 2021-12-12 18:37:48 +01:00
rdb eaf8cb79d5 Add pickle support to a variety of classes 2021-12-12 18:35:44 +01:00
rdb 650b958217 display: Add convenient shorthand for win.request_properties()
Now instead of this:

    win.request_properties(WindowProperties(title="Test"))

You can directly do this:

    win.request_properties(title="Test")
2021-12-12 14:54:47 +01:00
rdb f79ef139ba device: Don't try to access raw input devices an Android
Fixes a log warning
2021-12-12 14:27:56 +01:00
rdb cc865e6d21 pipeline: Don't exit process when SystemExit happens on external thread
PyErr_Print() causes the process to be forcibly exited when a SystemExit exception occurred, this is a big issue on Android.
2021-12-10 14:56:01 +01:00
rdb 429acd6e0d general: Remove use of proprietary unsigned integer typedefs 2021-12-08 14:51:52 +01:00
rdb 6a50a657be express: Add support for adding JAR-style signatures to .zip files
This is useful for writing apk/aab files in bdist_apps
2021-12-08 14:48:14 +01:00
rdb 60cc334cd9 gobj: Fix some TexturePeeker docstrings
[skip ci]
2021-12-07 23:05:49 +01:00
rdb 44e10d10a0 Support deploying Python apps for Android using bdist_apps 2021-12-07 21:00:08 +01:00
rdb af6230cfda android: Update android_native_app_glue to latest from upstream 2021-12-06 22:30:13 +01:00
rdb c594ab38ef Support building pandagles2 on Android 2021-12-06 22:26:56 +01:00
rdb c977df33a3 express: Fix issue on platforms without signed cha 2021-12-05 00:01:24 +01:00
rdb 5de31c6293 Merge branch 'release/1.10.x' 2021-12-04 21:57:35 +01:00
rdb 82ebf908fa gobj: Fix spelling error in doc of async-load-delay config variable 2021-12-04 20:38:31 +01:00
rdb e2c26adcf0 event: Mention that ButtonEvent API is not stable for Python use 2021-12-04 20:38:13 +01:00
rdb 11edd1a0dc ffmpeg: Change thread to use lambda 2021-12-01 11:34:48 +01:00
rdb b1b05c2be9 thread: Allow arbitrary std::function (incl. lambdas) in GenericThread 2021-12-01 11:31:45 +01:00
rdb 37b45a010d gobj: More efficient tracking of simple image changes
Remove the separate simple_image_modified field, instead, the image_modified value is updated if the simple image is changed while there is no RAM image.

This robustifies the tracking on the GSG end, which previously ended up repeatedly calling upload_texture() unnecessarily
2021-11-30 10:56:48 +01:00
rdb fa0ea312ea gobj: Move TextureReloadRequest to new Texture::async_ensure_ram_image()
The task is implemented with just a simple lambda, much more compact than a whole TextureReloadRequest task.  The latter is now deprecated.

Since Loader can't be used within Texture, there's now a new task chain, configurable with texture-reload-num-threads and texture-reload-thread-priority.  This does mean that it no longer happens on the same thread as model loads, but I think that's fine, and perhaps texture reloads should be higher priority than model loads anyway since a long texture reload delay with allow-incomplete-render directly and negatively affects user experience during gameplay.

The new name also better communicates that it just calls get_ram_image(), it doesn't force a reload, but we could add an async_reload() for that if we want.
2021-11-30 10:34:00 +01:00
rdb 9e7ca63662 Add missing @since to docstrings of some new methods 2021-11-29 16:02:22 +01:00
rdb 653cc3e091 event: Support C++11 lambdas as event handlers
It's unfortunate that we now have three maps on EventHandler for three different types of functions.  I'd love to unify them all under std::function, but the fact that it doesn't support comparison means the behavior would be different.

Perhaps in the future we can create a new interface or deprecate the existing behaviors and unify everything under std::function.
2021-11-29 14:48:06 +01:00
rdb 4af5bc9e6d event: Support lambdas as tasks via new FunctionAsyncTask
This is intended to replace GenericAsyncTask.
2021-11-29 14:47:44 +01:00
rdb c980643649 chan: Lock PartBundle while binding animation
This seems like the right thing to do that could prevent some potential race conditions; let me known if this is breaking anything.
2021-11-28 16:21:59 +01:00
rdb 78fb565f2b Merge branch 'release/1.10.x' 2021-11-28 16:14:18 +01:00
loonaticx 15c84afbe9 doc: Improve egg syntax documentation
[skip ci]

Closes #1199
2021-11-28 16:12:44 +01:00
rdb 980399d142 event: Expose ButtonEvent to Python 2021-11-28 14:36:20 +01:00
rdb 2abf867203 gobj: Don't load textures when loading bam file if preloading is off
This is wasteful (especially when the bam file already has the simple RAM images baked in if needed) since we are throwing away the texture data right away anyway.  Just locate it on disk, it will be loaded later when it is needed.

Fixes #1208
2021-11-28 14:04:41 +01:00
rdb c0a9123dde gobj: Fix TextureReloadRequest not reloading in certain situations
This prevented async texture loading from working unless mipmapping was enabled
2021-11-28 14:01:33 +01:00
rdb 5eaa67fbc9 gobj: Add TexturePool::get_texture() for querying tex from pool 2021-11-28 14:00:59 +01:00
rdb 5cad0eb973 glgsg: Don't use simple RAM image in shaders for non-sampler2D types
Simple RAM images are always 2D right now, so this would otherwise cause an error.
2021-11-28 13:59:46 +01:00
rdb 8f9d23ff29 linmath: Remove redundant sin() calculation in LQuaternion 2021-11-28 13:58:13 +01:00
rdb 54de9f9fa4 glgsg: Fix possibility of simple RAM image going out of scope 2021-11-28 13:57:20 +01:00
rdb ea61e53ab2 event: Fix ButtonEvent docstring 2021-11-28 13:56:55 +01:00
rdb 6adb6be4b5 egg2pg: slight comment cleanup in characterMaker.cxx
[skip ci]
2021-11-16 17:55:32 +01:00
rdb 3aa77a1260 framework: Fix unnecessary ternary check 2021-11-16 17:31:27 +01:00
rdb 9ebfef4b83 pgraph: Change TransformState hashing not to require grabbing lock
Instead, set it atomically, with a special hash value used instead of a flag for indicating that the hash is not known.
2021-11-16 17:30:36 +01:00
rdb 60c5589671 pgraph: Optimize handling/checking of identity/invalid transforms 2021-11-16 17:30:36 +01:00
rdb fac6916151 pgraph: Major traversal optimizations
In particular, these optimize the traversal of nodes that are not in view, which are discarded more efficiently.
This change affects both the cull and collision traversers.
2021-11-16 17:30:33 +01:00
rdb 20e4704be2 Merge branch 'release/1.10.x' into incoming 2021-11-16 16:35:08 +01:00
rdb 0f7a575ac0 bullet: Add bullet-split-impulse config variable
Fixes #1201

Co-authored-by: K9Kraken <K9Kraken@users.noreply.github.com>
2021-11-16 15:16:25 +01:00
rdb ab6d3b2e15 gobj: Show better error if calling tex.write() with unknown extension 2021-11-16 15:04:46 +01:00
rdb 32584f0a68 pgraph: Fix prepare_scene() not properly invoking the shader generator 2021-11-09 15:46:14 +01:00
rdb cf681eb8dd bullet: Clean up fix for #1193
See ad7cbcd4ec
2021-11-02 15:34:26 +01:00
rdb 0bc0709b72 Merge branch 'release/1.10.x' 2021-11-02 15:20:41 +01:00
rdb 04c6636744 pgraph: Add some missing properties to PlaneNode 2021-11-02 15:02:40 +01:00
rdb 9587965c5d bullet: Add some API documentation strings for BulletDebugNode 2021-11-02 15:02:14 +01:00
rdb ad7cbcd4ec bullet: Fix memory leak getting persistent manifolds from Python
These classes ought to be returned by value. Cleaner fix will be in master.

Fixes #1193
2021-10-27 11:20:19 +02:00
rdb a4ea476cce linmath: Implement read-only buffer protocol support for vectors
Fixes #1194
2021-10-27 10:53:35 +02:00
rdb 77c6bc199d gobj: Remove unused member variable from TexturePeeker 2021-10-27 10:46:43 +02:00
rdb 2ae6e5c6ce glgsg: Remove unused variable from glGSG 2021-10-26 17:28:01 +02:00
rdb 605651f0e8 Merge branch 'release/1.10.x' 2021-10-26 17:27:56 +02:00
rdb 57d7bc2f53 display: document make_texture_buffer() behavior when size is 0
Fixes panda3d/panda3d-docs#100
2021-10-26 14:00:25 +02:00
rdb 9b55279fde glgsg: Minor code cleanup in FBO code 2021-10-26 14:00:04 +02:00
rdb 618e6f3fee pgui: Fix slider thumb entering dragging state on button press
This caused updating the slider while a button is pressed and the mouse is held over the thumb not to work.

Fixes #1188
2021-10-26 13:45:38 +02:00
rdb 2b0571ee92 glgsg: Also pick up glClearTexSubImageEXT in OpenGL ES 2+ 2021-08-31 15:37:21 +02:00
rdb 1739cef318 Merge branch 'release/1.10.x' into incoming 2021-08-31 14:03:57 +02:00
rdb c96189e53c display: Fix compilation on Windows (can't name variables near/far) 2021-08-31 14:01:03 +02:00
rdb cb4bcbe67e collide: Fix typo causing compile error on Windows with Python 3.10 2021-08-30 21:27:53 +02:00
rdb 2cc1633a77 pgraph: Clarify in find() documentation that this node not included 2021-08-30 14:03:17 +02:00
rdb 8c01f7faff gles2gsg: Implement support for GL_EXT_clear_texture in OpenGL ES 2+ 2021-08-30 14:02:41 +02:00
rdb 481fc67996 gles2gsg: Support gl-depth-zero-to-one in OpenGL ES 2+
Requires GL_EXT_clip_control support in the driver.
2021-08-30 14:02:09 +02:00
rdb 32b78a382a express: Protect clock debug print with is_debug() check 2021-08-30 14:00:59 +02:00
rdb 53741ffa13 pgraph: Implement new DepthBiasAttrib to replace DepthOffsetAttrib
Fixes #1157
2021-08-26 10:47:07 +02:00
rdb 280175f267 display: Support specifying depth range on DisplayRegion
See https://discourse.panda3d.org/t/depthoffsetattrib-z-range-composition-order/27943/4
2021-08-26 10:42:25 +02:00
rdb 3d4dd50358 Merge branch 'release/1.10.x' 2021-08-11 15:02:05 +02:00
rdb 8ad4234df8 pgui: prevent error when rendering in offscreen mode
Fixes #1174
2021-08-11 09:19:27 +02:00
rdb 20e081482f glgsg: detect and fix overlapping SSBO bindings
Fixes #1176
2021-08-05 09:37:26 +02:00
rdb c293ad3da2 Merge branch 'release/1.10.x' 2021-08-03 20:19:15 +02:00
rdb 5b30fa7adf putil: Fix reading/writing BitArray from/to bam file on 64-bit
Fixes #1181
2021-08-03 20:13:56 +02:00
rdb 7ac7a95843 glgsg: Delete multisample FBO properly
Related to #1166
2021-08-03 11:43:49 +02:00
rdb 1f84469cd9 filter: Fix issue with cached CullResult persisting after cleanup
This can cause issues if a DR gets assigned an inactive camera - the old cull result will persist and be used for draw.  Possibly we need to do this in set_camera.

Reproduced by #1166
2021-08-03 11:43:49 +02:00
rdb ea45ff691d display: Improve error message when display module isn't loaded 2021-08-03 11:43:49 +02:00
rdb 3dc09c38d3 dxgsg9: Fix crash when resizing window in multi-window setup
Fixes #1167
2021-07-31 09:56:52 +02:00
rdb 089a615adb pgui: If no explicit candidate_inactive style given, use underscore 2021-07-05 18:01:05 +02:00
rdb 4cd579d0ba x11: Implement ime-aware setting using XIM 2021-07-05 17:53:19 +02:00
rdb 4ba3df7082 pgui: Fix missing cursor when typing candidate 2021-07-05 17:37:48 +02:00
rdb 25f9d3ff13 pgui: Don't clear candidate on keypresses like shift/ctrl etc 2021-07-05 17:37:15 +02:00
rdb f27e9b2a86 linmath: Add __rmul__ operator for left scalar multiplication
Fixes #1048
2021-07-05 14:16:55 +02:00
rdb bfe595f4dc glgsg: Implement partial updates of texture arrays / cube maps
Also, simplify the cube map upload mechanism somewhat.

Fixes #1168
2021-07-04 17:03:14 +02:00
rdb 494631ac54 gobj: Implement texture modification tracking for individual pages
Part of #1168, GL implementation in following commit
2021-07-04 16:36:26 +02:00
rdb 77f486a07b putil: Improve SparseArray output printing 2021-07-04 16:35:11 +02:00
rdb 0c5fedfc9b Merge branch 'release/1.10.x' 2021-07-02 16:03:41 +02:00
rdb 0e219fa5c9 display: Remove obsolete mouse_mode_relative/absolute methods 2021-07-02 16:00:41 +02:00
rdb bcbef3f6c8 pgraph: Add RenderState::get_unused_states() by analogy with TransformState 2021-07-02 15:22:44 +02:00
rdb 1415ccca61 pgraph: Fix assertion error in get_num_unused_states()
Fixes #1172
2021-07-02 15:11:33 +02:00
rdb 388ddda9d7 x11: Fix black screen when switching fullscreen without WM
Reconfiguring the window to origin 0, 0 is unnecessary and if the win origin is already 0, 0 this results in Panda waiting for a ConfigureNotify that never comes.
2021-07-02 14:04:57 +02:00
rdb 199b797d72 Merge branch 'release/1.10.x' 2021-06-01 11:50:12 +02:00
Ben Humphries 0415a08416 cocoadisplay: Round refresh rates when choosing display mode on macOS
Closes #1144

Co-authored-by: rdb <git@rdb.name>
2021-06-01 10:56:55 +02:00
rdb 2386e80448 linmath: Backport support for floor division to 1.10
Backport of 8944737844

(Also fixes return type of `__pow__` to always be derived class)
2021-06-01 10:45:56 +02:00
rdb 4e0e945279 linmath: Backport round(), floor(), ceil() support for vectors
See #821
2021-06-01 10:23:58 +02:00
rdb 42d292ee17 glgsg: Slight optimization, don't get texture type more than once 2021-06-01 10:00:43 +02:00
rdb 967fbbc49e glgsg: Fix regression uploading buffer texture with null image
Regression in c1babd1ad1 - it caused an assertion to be thrown when uploading a buffer texture without a RAM image.
2021-06-01 09:56:04 +02:00
rdb c9508f3215 task: Prevent error indicator being sporadically cleared 2021-05-31 17:44:57 +02:00
rdb e63eab9aa2 Merge branch 'release/1.10.x' 2021-05-31 17:44:53 +02:00
Paul m. p. P 70ac82d5da bullet: Fix compilation issue with BulletHeightfieldShape
Fixes #1161
2021-05-31 17:43:50 +02:00
rdb 1d2407f667 ffmpeg: Fix compile error with latest ffmpeg version
Fixes #1164
2021-05-17 11:19:55 +02:00
rdb 571946739e task: Fix cancelling gather() of tasks 2021-05-11 12:21:37 +02:00
rdb 91a6ff1d81 task: Prevent "unexpected task state" when cancelling task sometimes 2021-05-11 12:21:30 +02:00
rdb 55fb14b792 Merge branch 'release/1.10.x' 2021-05-11 12:21:24 +02:00
rdb 9410418840 pnmimagetypes: Changes to support compilation with OpenEXR 3.0.1 2021-05-11 11:38:40 +02:00
rdb 2ed61c91fc gobj: make_lines_in_place() (& points, patches) should change primitive type 2021-05-10 13:35:47 +02:00