Commit Graph

11957 Commits

Author SHA1 Message Date
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
rdb c1babd1ad1 texture: Don't try to compress buffer textures by default
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.
2021-04-29 20:33:52 +02:00
rdb 5ef1b44455 event: cancel future being awaited when cancelling coroutine task
Fixes #1136
2021-04-18 17:05:00 +02:00
rdb cdf5b16ddd task: Add AsyncFuture::shield() ability, part of #1136
This is modelled after `asyncio.shield()` and can be used to protect an inner future from cancellation when the outer future is cancelled.
2021-04-09 18:28:07 +02:00
rdb e9e1bb1bc6 dtoolutil/express: Resolving empty filename should yield no result
See #1140 - I may revert this if someone can demonstrate a compelling use case (for current directory, you can use "." instead), but it seems to have the potential to cause unintuitive behavior.
2021-04-09 18:26:00 +02:00
rdb 47f35a287c Merge branch 'release/1.10.x' 2021-04-09 18:25:57 +02:00
rdb 69c6050fa8 glgsg: Only copy depth of 32-bit float depth-stencil framebuffer
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
2021-04-09 10:47:54 +02:00
rdb 715d786813 display: Prevent attempt to copy depth from non-depth framebuffer
Fixes case 1 of #1142
2021-04-09 10:45:22 +02:00
rdb 99a3188af2 glgsg: Fix missing component types in glReadPixels spam message 2021-04-09 10:30:45 +02:00
rdb 31feeb9b9f glgsg: Fixes to format selection for copy-to-ram of framebuffer
Fixes #1141
2021-04-08 18:46:10 +02:00
rdb eee1426e37 glgsg: Fix ability to get r11g11b10 float renderbuffer 2021-04-08 18:44:52 +02:00
rdb dd3510eea7 Merge branch 'release/1.10.x' 2021-04-08 12:30:35 +02:00
rdb 4a7d03d9b1 pnmtext: Fix loading an invalid font resulting in a crash
Related to #1140
2021-04-08 12:08:03 +02:00
rdb ab4367ee7b glgsg: Fixes to format selection in OpenGL renderbuffers
Fixes #1137
2021-04-07 00:20:38 +02:00
rdb bcb61fec09 pgraphnodes: Fix draw callback called twice in certain cases
This would happen if you call upcall() in a CallbackNode's cull callback.
2021-04-06 16:38:51 +02:00
rdb 51a6923008 device: Work around FreeBSD kernel bug for querying gamepad axes
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.
2021-04-05 17:19:47 +02:00
rdb 7be4b7c3bb device: Support evdev gamepads on FreeBSD 2021-04-05 17:14:30 +02:00
rdb e034e7f4b3 Merge branch 'release/1.10.x' 2021-03-31 23:08:21 +02:00
rdb fa73657d03 pgui: Revert part of f2e488fd6b
This caused a regression due to a removal of update_frame invocation in single-threaded pipeline, needs to be revisited later on master branch
2021-03-31 17:27:11 +02:00
rdb 43fb82fa66 gobj: Add config switch for Panda not to default to packed vertex colors
See #981.  Setting `vertex-colors-prefer-packed` to false will make Panda default to OpenGL-style vertex colors, which is useful if are targeting OpenGL and not DirectX 9, avoiding a potential performance cost.
2021-03-25 23:15:58 +01:00
rdb b405df72fa Merge branch 'release/1.10.x' 2021-03-25 23:13:36 +01:00
rdb c36fa1ef17 glgsg: Workaround driver bug causing flickering in AMD RDNA cards
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
2021-03-25 23:12:35 +01:00
rdb 6e0af8abe4 physics: Fix Mac OS X 10.6 compilation issue with <atomic> header 2021-03-25 15:37:52 +01:00
rdb eb6eb9f1dd Merge branch 'release/1.10.x' 2021-03-24 13:58:00 +01:00
rdb 8372b8150a gobj: Cube map sampling support in TexturePeeker
Closes #1098

Co-authored-by: Mitchell Stokes <mogurijin@gmail.com>
2021-03-24 12:50:42 +01:00
LD 23150bd6d6 pgraph: Add the shader attrib to the filled wireframe render state
Fixes #1021
Closes #1124
2021-03-23 16:18:00 +01:00
rdb 94806801e3 Add p3headlessgl render plug-in on Linux using EGL as fallback for GLX
Fixes #1086
2021-03-23 15:04:20 +01:00
rdb 3ecc8c857a gobj: Also fix GeomPrimitive::offset_vertices() overload with begin/end
See 40b94c1f97
2021-03-22 22:04:03 +01:00
rdb d0028ba103 physics: Make PhysicalNode class thread-safe
It is, however, not yet pipeline-cycled, and the Physical object itself is not yet thread-safe.
2021-03-22 16:01:13 +01:00
rdb 0e36a99574 Merge branch 'release/1.10.x' 2021-03-22 15:45:45 +01:00
rdb 8f55d32cb1 glgsg: Workaround for Cg shader issue with multiple GSGs
Fixes #1117
2021-03-22 15:37:43 +01:00
rdb 40b94c1f97 gobj: Fix GeomPrimitive::offset_vertices() with strip cut index
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
2021-03-22 11:35:03 +01:00
rdb c1fbb70c6d display: Temporary fix for base.win.properties.size et al
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.
2021-03-21 16:55:19 +01:00
rdb f450aa5edf physics: Add additional properties 2021-03-21 14:40:10 +01:00
rdb db2936a318 physics: Slight code cleanup in PhysicalNode::clear() 2021-03-21 14:39:57 +01:00
rdb f1782d73e5 physics: Fix crash in PhysicsNode::add_physicals_from() 2021-03-21 14:39:31 +01:00
rdb 74910ff310 physics: Don't assert destructing
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
2021-03-21 14:36:14 +01:00
rdb b6a118448d physics: Warn when copying PhysicalNode with physicals attached
We can't currently support this because a Physical can have only one PhysicalNode associated.
2021-03-21 14:35:28 +01:00
rdb 1c754738bd physics: Prevent adding same Physical to more than one PhysicalNode
Also silently ignore if the same Physical is added to the same PhysicalNode more than once.
2021-03-21 13:00:08 +01:00
rdb 52c0e2759e glgsg: Fix copy-to-texture/ram for multisample FBO
Should read from resolved FBO, not from multisample FBO

Fixes #1129
2021-03-16 18:45:27 +01:00
rdb b817e19ab6 Merge branch 'release/1.10.x' 2021-03-13 16:50:12 +01:00
LD 209e031964 cocoadisplay: Test all the fullscreen modes to find the valid one
Closes #1039
2021-03-13 12:44:30 +01:00
rdb eca18f3c19 windisplay: Don't try to activate window when resizing/moving it
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.
2021-03-11 23:50:45 +01:00
rdb 7f4d030032 windisplay: Fix some situations in which the mouse could stay confined
Fixes #1115
2021-03-11 23:29:13 +01:00
rdb c1c2183561 windisplay: Parented child windows are implicitly undecorated
I'm pretty sure applying these styles does nothing anyway, but we shouldn't specify them.
2021-03-11 22:30:35 +01:00
rdb 48fb2f721f windisplay: Fix parented child window being offset
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
2021-03-11 22:19:41 +01:00
rdb ff80adc680 Merge branch 'release/1.10.x' 2021-03-05 11:59:21 +01:00
rdb 5cadd86d1e glgsg: Fix get_screenshot() for multisample FBOs
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).
2021-03-05 11:57:05 +01:00
rdb b4a242a4e3 x11: Provide labels for more keys (esp. international keys) 2021-03-04 21:49:55 +01:00
rdb 2e3ce27865 device: Add Windows gamepad mapping with VID:PID 2563:0523
From https://discourse.panda3d.org/t/gamepad-emulator-and-panda/27336
2021-03-04 20:47:55 +01:00
rdb 9be2f307c5 text: Fix glyphs with flipped UVs not being processed correctly
This caused the cheesy-accent code to not flip the caron correctly.
2021-03-04 20:06:51 +01:00
rdb 050d86dadb event: AsyncFuture::set_result() behavior changes:
* Passing a Python subclass of a C++ class now works, the extra Python stuff isn't just discarded
* EventParameter objects are no longer automagically unwrapped - there's no more reason to pass an EventParameter to this method anyway, and it might be unexpected if it is treated specially.
2021-03-01 20:50:25 +01:00
rdb 99569fa8f2 CMake: Updates to compile new ParamPyObject class 2021-03-01 20:34:17 +01:00
rdb 402c303dba event: Make AsyncFuture::set_result() slightly more robust 2021-03-01 19:33:39 +01:00
rdb 8cbe36b352 Merge branch 'release/1.10.x' 2021-03-01 19:33:27 +01:00
rdb 064e0383be event: Allow AsyncFuture to store arbitrary PyObject result 2021-03-01 19:16:22 +01:00
rdb bdb2ef1631 pipeline: Fix crash upon exception in custom thread
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.
2021-03-01 16:19:53 +01:00
rdb 2b3f2bb98c event: gather() should schedule coroutines with task manager
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
2021-03-01 11:22:13 +01:00
rdb e348d216e5 event: Fix memory leak getting future result in some cases 2021-03-01 11:09:10 +01:00
rdb b6096c3d40 glgsg: Suppress useless shader linking warnings on macOS 2021-02-26 13:33:25 +01:00
rdb 6a51709332 event: Don't suppress coroutine exceptions in optimized builds 2021-02-26 11:44:50 +01:00
rdb ada74e3b0c Merge branch 'release/1.10.x' 2021-02-24 18:10:15 +01:00
rdb 2d9cc2dea0 egl: Further robustify EGL device initialization process
Sometimes, the default device fails to initialize, so then we need to fall back to alternatives (eg. GBM)
2021-02-24 17:31:00 +01:00
rdb 7a838e7212 Merge branch 'release/1.10.x' 2021-02-24 12:14:04 +01:00
rdb 2e38ca1042 egl: Fall back to EGL_EXT_platform_device for device selection
See #557
2021-02-24 11:41:42 +01:00
rdb 7f20bcd8e0 egl: Fix ability to create multisample FBO
Fixes #1089
2021-02-24 10:11:58 +01:00
rdb 778c6ee6be pgui: Add missing pipeline.h include 2021-02-24 09:46:53 +01:00
Stephen Imhoff 18873ffbf1 Add use of TransformState::make_pos_quat() in some places (#1116)
Fixes #1116
2021-02-22 20:06:26 +01:00
Stephen Imhoff a196f1adcc gobj: Add missing TransformState.make_pos_quat (#1116)
matches to TransformState.make_pos_hpr
2021-02-22 20:05:58 +01:00
rdb 8944737844 linmath: Support floor division for vector types
Also fix __pow__ so that it returns the derived type, not the base type
2021-02-22 20:01:30 +01:00
rdb 5ae08eadf7 Merge branch 'release/1.10.x' 2021-02-22 19:38:49 +01:00
rdb 18cb4a7ccc vorbis: Disable cross-lapped seeking by default, to reduce clicking
Fixes #1108
2021-02-22 10:58:18 +01:00
rdb f2e488fd6b pgui: Workaround for text disappearing in multithreaded pipeline
The text could appear from a DirectButton or other GUI element if updating eg. the text_fg property.
2021-02-21 11:00:22 +01:00
rdb 5c4909b4ab pgui: Some code cleanup for PGItem 2021-02-21 10:17:14 +01:00
rdb a05405c475 pgraph: API reference improvements for NodePath 2021-02-21 10:15:33 +01:00
rdb fb9b334d58 Merge branch 'release/1.10.x' 2021-02-17 10:57:30 +01:00
rdb 3592404fa8 display: Fix GraphicsWindow::get_pointer() listed as deprecated
[skip ci]
2021-02-17 10:56:46 +01:00
rdb ca577c8b35 Merge branch 'release/1.10.x' 2021-02-15 14:14:10 +01:00
rdb 6374a7f240 express: Fix up Patchfile docstrings
[skip ci]
2021-02-15 14:13:24 +01:00
rdb a704d2c228 display: Fix typos in docstrings
[skip ci]
2021-02-15 12:46:29 +01:00
rdb 592f776f76 downloader: Fix missing includes in virtualFileHTTP.cxx 2021-02-15 12:36:29 +01:00
rdb 8afd0e526f Merge branch 'release/1.10.x' 2021-02-15 11:38:45 +01:00
rdb 70e972a7c0 downloader: Remove duplicated string manipulation methods
These already exist in string_utils.h
2021-02-15 11:35:16 +01:00
rdb 84c2a18d00 downloader: Implement VirtualFileHTTP::read_file() 2021-02-15 11:18:13 +01:00
rdb 20bdd32765 downloader: Fix an uninitialized member 2021-02-15 11:13:57 +01:00
rdb 86e0915621 downloader: Add samesite flag to HTTPCookie 2021-02-14 17:47:29 +01:00
rdb 8f1e2f1945 downloader: Support gzip and deflate Content-Encoding values 2021-02-14 17:29:45 +01:00
rdb 62d072cfb4 downloader: Remove unused HTTPChannel::request_path member 2021-02-14 17:28:44 +01:00
rdb 4e27264cac downloader: Add properties to HTTPCookie 2021-02-11 03:28:43 +01:00
rdb 59ab828098 linmath: Fix typo in Mat4 isub docstring
Fixes panda3d/panda3d-docs#96
2021-02-11 03:28:34 +01:00
rdb 28ad032210 collide: Fix CollisionHandlerGravity docstrings
[skip ci]
2021-02-08 19:41:46 +01:00
rdb a64dcd7c5d event: (BREAKING CHANGE) bare yield in task now means "cont"
This is more useful and consistent; you can after all just use "return" to end the task, whereas you can now just use "yield" to continue the next frame rather than "yield Task.cont".

This is a follow-up to f6b39345f7, which already enabled this behavior when an __await__ (that is awaited from a task) yielded None.
2021-02-07 15:14:04 +01:00
rdb e8b4b6476c Merge branch 'release/1.10.x' 2021-02-07 15:01:36 +01:00
rdb 8c8a73a1a7 event: Fix compilation with Python 2.7 2021-02-07 14:49:10 +01:00
rdb f6b39345f7 event: don't exit task if future __await__ yields None
This matches the behavior of asyncio's Task implementation, where this is the equivalent of `yield Task.cont`.

I've kept regular generator tasks unaffected for now, since this might break existing usage.
2021-02-07 12:38:16 +01:00
rdb 3657eb9bce glgsg: Support texture transforms in default shader 2021-02-06 19:36:50 +01:00
rdb 64f0414f57 Merge branch 'release/1.10.x' 2021-02-06 19:36:39 +01:00
rdb af60f8200e glgsg: Gracefully degrade when using 64-bit float in OpenGL ES 2021-02-06 19:35:48 +01:00
rdb c5568c3d5f collide: Improve CollisionSphere viz, add outline 2021-02-06 01:25:07 +01:00
rdb c73c94c862 Merge branch 'release/1.10.x' 2021-02-06 01:23:34 +01:00
rdb 068ceaaf58 event: Clear exception flag after trying asyncio exception import 2021-02-06 01:21:52 +01:00