Commit Graph

12011 Commits

Author SHA1 Message Date
rdb a6ab238abc Merge branch 'release/1.10.x' into incoming 2023-10-14 21:35:00 +02:00
rdb 9dce403bee tinydisplay: fix missing include in zmath.h 2023-10-14 18:05:47 +02:00
rdb 5b041474ff glgsg: Fix wrong value for deprecated shadowMatrix shader input 2023-10-13 23:29:21 +02:00
rdb e01cb590de Merge branch 'release/1.10.x' 2023-10-13 23:24:48 +02:00
Mitchell Stokes 893f5ce492 Fix assert on Py_SIZE(long) when using Python 3.12
Starting with Python 3.12, passing a PyLong into Py_SIZE() triggers an
assertion. PyLong (and the whole C API) is transitioning to be more
opaque and expose fewer implementation details.
2023-10-13 10:54:33 +02:00
rdb 5685949588 shader: Fix regression fetching material shader inputs 2023-10-11 16:07:55 +02:00
rdb 79a60688ce pnmimage: Support reading of .bmp files with RLE8 compression 2023-10-11 15:53:57 +02:00
LD ae3cbe4b12
cocoadisplay: Add support for high-dpi screens (#1308) 2023-10-10 16:56:04 +02:00
rdb b8ea788440 display: Fix shadowViewMatrix regression for NodePath shader inputs
Stopped working in ba388e2866
2023-10-09 17:44:36 +02:00
rdb 93a75d8fe2 Merge branch 'release/1.10.x' 2023-10-09 17:43:02 +02:00
rdb a2fa54f385 gobj: fix `_contexts != nullptr` assert when prepare fails 2023-10-09 16:52:45 +02:00
rdb 526994c302 pview: Don't require a window in screenshot mode 2023-10-08 23:36:59 +02:00
rdb e5869ac750 pview: Fix camera positioning differences with offscreen window 2023-10-08 23:30:00 +02:00
rdb 2c727940ae glgsg: Fix code issue with new integer ShaderMatSpec 2023-09-18 14:11:22 +02:00
rdb cb4597ebb8 shader: Pass built-in array shader input in one go
This applies to `p3d_TextureMatrix[]` and `p3d_ClipPlane[]`

This is more efficient and also works around Apple driver bugs (like #846)

Fixes #883
2023-09-17 19:18:40 +02:00
rdb ba388e2866 shader: More efficient state-based shader input fetching
Previously every input was fetched as a matrix.  Now, every input is fetched as a vector, with matrices taking up multiple vectors.  This saves a lot of copying and a lot of space in the cache.

Furthermore, integer state-based inputs can be defined (for future use)

Naming still needs to be revised, since it's called the "mat part cache" etc.
2023-09-17 17:54:17 +02:00
rdb c99fe581d3 Merge branch 'release/1.10.x' 2023-09-16 09:57:09 +02:00
rdb 144479d8e4 cocoa: squelch secure restorable state warning on macOS 14 2023-09-16 09:50:17 +02:00
rdb b22b970d10 makepanda: Require macOS SDK 10.12 or higher
This does not remove support for older macOS versions, they can still be targeted by newer SDKs (10.9 can still be targeted by the macOS 12 SDK)

I would like to require macOS 11 SDK, but we still need 10.13 for FMOD
2023-08-29 22:51:17 +02:00
Christopher He cbfd8f4545
collide: Add CollisionHeightfield solid (#691) 2023-08-05 21:14:52 +02:00
rdb 0bc290eb2c event: Replace _PyGen_FetchStopIterationValue in Python 3.13+
See python/cpython#106320 and python/cpython#107032

Closes #1526
2023-08-05 16:37:01 +02:00
Disyer f596666b84 panda: Install correct config headers for pstatclient and putil
Closes #1525
2023-08-05 14:51:31 +02:00
Disyer e8179e489f panda: Correct header guard names (#1525) 2023-08-05 14:50:28 +02:00
rdb f80cd08993 Remove support for EOL Python versions 3.6 and 3.7 2023-08-04 14:20:59 +02:00
rdb a68ecb9765 Merge branch 'release/1.10.x' 2023-08-04 14:07:41 +02:00
Disyer 596ff9ddb8 python: Remove usage of private _PyUnicode C API calls 2023-08-03 21:35:33 +03:00
Aidan Noll 4097dc2e28 downloader: Fix issues with error codes with LibreSSL on Windows
Closes #1503

Co-authored-by: rdb <git@rdb.name>
2023-08-02 12:40:01 +02:00
rdb c34f2bbc64 Switch to UPPER_CASE convention for enum classes as per PEP-8
Old names are still kept around for compatibility reasons, but deprecated - fortunately there are not that many cases of enum classes yet
2023-08-02 11:16:54 +02:00
Max Rodriguez 70cdbae247 framework: Create aspect2d child nodes & update on win resize
Closes #1510
Fixes #1508
2023-08-02 08:21:40 +02:00
WMOkiishi ea84547805 general: Mark many constructors as `explicit`
Closes #1514
Fixes #1431
2023-08-02 08:18:43 +02:00
Max Rodriguez b6c427f2b4 putil: Deprecated MouseData alias for PointerData
Co-authored-by: rdb <git@rdb.name>

Closes #1513
2023-08-02 08:13:02 +02:00
rdb cc861cdaa1 Merge branch 'release/1.10.x' 2023-08-02 08:09:26 +02:00
rdb 262bde3082 grutil: Add clear_color method to CardMaker 2023-08-02 08:08:25 +02:00
rdb 3c9aea1ee1 text: Fix missing epvector.h include in textAssembler.h 2023-08-02 07:51:46 +02:00
rdb cc49825e00 pgraph: Mark all sub-classes of RenderAttrib as `final` 2023-07-27 08:40:52 +02:00
rdb f0a4e61fd9 Revert "general: Add headers explaining the renamed config_*.h"
This reverts commit 47f7d3f297.

These header files have been deprecated for years and can be safely removed now.
2023-07-26 20:02:49 +02:00
rdb 115a716a7d Implement support for custom TypedWritable subclasses in Python
Fixes #1495
2023-07-26 19:55:40 +02:00
rdb 71ee57bc92 linmath: Unroll LVecBase4 less-than operator implementation 2023-07-26 19:33:43 +02:00
rdb f5827963a3 pgraph: Refactor RenderAttrib return_new code a little bit
- Allows the compiler to devirtualize the get_hash_impl call, in theory
- Reduces the overhead of checking the configuration variables every time in return_new
- Avoids recalculating the hash on calling get_unique
2023-07-26 19:18:22 +02:00
rdb c6f930a379 Merge branch 'release/1.10.x' 2023-07-21 19:42:39 +02:00
rdb 787e14fade egg2pg: Fix infinite recursion when `<Collide>` used with `<Line>`
Fixes #1515
2023-07-19 11:10:49 +02:00
rdb 07f9f9d897 (multiview) texture preparation changes:
Multiview textures are now handled as a single texture context instead of as one texture context per view. This should be marginally more efficient, but more importantly, it paves the way for implementing multiview textures as subviews of an array texture down the line, which paves the way for hardware-accelerated stereo rendering (where the left and right views get rendered simultaneously to different layers of an array texture).

The difference between a multiview texture done this way and an array texture is that the views of a multiview texture will still be treated as individual textures from the shader's point of view, only the views will be sharing the same storage on the GPU.  This can be done by using a feature offered by graphics APIs that is (serendipitously) also called "texture views", where it's possible to create multiple texture objects that point to layer ranges of a bigger array texture.

That part has not yet been done as doing this in OpenGL will be a little tricky due to texture views being an optional feature (so both paths would need to be implemented), but texture views are native in Vulkan (and D3D10+ for that matter), so doing this now allows me to implement multiview textures natively on the Vulkan end right from the start, and OpenGL can follow later if desired.

Furthermore, this commit includes:
- OpenGL: Overhaul texture creation and binding
- OpenGL: Change how reloading a texture with mipmaps works
- OpenGL: Use DSA in a couple of places
- OpenGL ES: Add support for buffer textures
- OpenGL: Remove support for bindless textures for now; this was never implemented in a very useful way, not used to my knowledge, and it is better to re-implement it later after the new shader pipeline lands
- DirectX9: All views of a texture are uploaded at the same time
- TinyDisplay: Support multiview textures natively (consecutive storage in memory)
- General: Per-page texture update tracking is working properly now for multiview textures
2023-06-13 13:51:19 +02:00
rdb c3e9f1738e Merge branch 'release/1.10.x' 2023-06-13 13:45:51 +02:00
rdb 94ebd7c953 pstats: Fix exception when `__module__` is a descriptor
This comes up when using metaclasses

Fixes #1505
2023-06-12 09:54:25 +02:00
rdb b79d8efce6 Don't use RTTI features when building with `-fno-rtti`
This should make it possible to use `-fno-rtti` in a C++ application even when Panda has been compiled with RTTI enabled.
2023-05-25 14:11:51 +02:00
rdb d2e93cc185 gobj: Fix post_load_store_cache field being uninitialized on cycle
This is randomly causing textures to be downloaded, which can be a significant performance drain
2023-05-25 13:55:22 +02:00
rdb 7fb9942fc3 tinydisplay: Fix crash on window close on macOS
Fixes #1485
2023-05-16 18:14:57 +02:00
rdb cdc95acf81 Merge branch 'release/1.10.x' 2023-05-08 20:08:48 +02:00
rdb dee48cc201 CMake: Fix error linking OpenAL as framework 2023-05-08 20:01:22 +02:00
rdb c958919037 Make API documentation for Filename and VirtualFileSystem clearer
Mention specifically that Filename methods act on the physical disk whereas VirtualFileSystem methods act on the VFS

Fixes #1493

[skip ci]
2023-05-08 11:19:03 +02:00