Commit Graph

12094 Commits

Author SHA1 Message Date
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
max cc74efa79a Fix assorted instances of leftover Python 3 syntax
Closes #1490
2023-05-05 11:08:17 +02:00
rdb 45fbfab094 pgraph: Add file_version property to BamFile (like BamReader/Writer) 2023-05-05 10:52:46 +02:00
rdb 749e297a02 putil: Add file_version property to BamWriter (mirroring BamReader) 2023-05-05 10:51:24 +02:00
rdb 86804b3ed1 putil: Fix a faulty docstring in BamReader 2023-05-05 10:48:04 +02:00
rdb eb82dbc765 putil: Accept bytes in DatagramOutputFile::write_header() 2023-05-05 10:47:14 +02:00
rdb 87b46a61ed display: minor doc fix and code cleanup 2023-05-05 10:45:26 +02:00
rdb f5d5340ad3 egldisplay: make pbuffers resizeable 2023-04-08 10:37:13 +02:00
rdb 21d7a83bfc egldisplay: Fix GL_INVALID_OPERATION with headless pbuffer 2023-03-29 16:33:33 +02:00
LD 53f32e440e cocoadisplay: Fix compilation errors due to missing includes 2023-03-24 17:24:05 +01:00
rdb 52dc6dbd28 cocoadisplay: Remove accidentally checked-in file
[skip ci]
2023-03-23 08:57:02 +01:00
rdb a5fe1fa4bd tinydisplay: Add Cocoa-based backend
Adds support for tinydisplay rendering on macOS

Fixes #1285
2023-03-22 13:15:06 +01:00