Commit Graph

1454 Commits

Author SHA1 Message Date
Disyer 596ff9ddb8 python: Remove usage of private _PyUnicode C API calls 2023-08-03 21:35:33 +03:00
rdb cc49825e00 pgraph: Mark all sub-classes of RenderAttrib as `final` 2023-07-27 08:40:52 +02:00
rdb 115a716a7d Implement support for custom TypedWritable subclasses in Python
Fixes #1495
2023-07-26 19:55:40 +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 cdc95acf81 Merge branch 'release/1.10.x' 2023-05-08 20:08:48 +02:00
rdb 45fbfab094 pgraph: Add file_version property to BamFile (like BamReader/Writer) 2023-05-05 10:52:46 +02:00
rdb eefb51f510 dtoolutil: Add small_vector implementation and use it
This vector implementation does is optimized for the case of having only a small number of elements, which are stored directly on the vector object rather than being allocated from the heap.  If the capacity exceeds this small number, then a heap allocation is done.

This should improve performance in a couple of cases where vectors typically store 1 element and rarely more than that.
2023-02-22 16:48:11 +01:00
rdb 818ed819f9 pgraph: Fix compiler warning for uninitialized variable 2023-02-20 19:05:05 +01:00
rdb 5e26aae1ff cleanup: Fix assorted issues uncovered by clang-tidy 2023-02-12 18:17:03 +01:00
rdb 1c37522026 Merge branch 'release/1.10.x' into master 2023-02-12 14:07:49 +01:00
rdb aaabb6a652 Fix assorted issues uncovered by clang-tidy 2023-02-12 13:55:59 +01:00
Disyer af4a1bc7a9 python: Use public PyErr_Occurred API instead of private macro
The _PyErr_OCCURRED macro was removed in Python 3.10, so we shouldn't keep any compat code left around for it
2023-02-12 02:36:57 +02:00
WMOkiishi 3f3c65917b Ensure classes using aligned types inherit from `MemoryBase` 2023-02-06 18:35:18 +01:00
rdb eacbc4f89a pgraph: Fix regression: assertion in `get_off_clip_planes()`
Occurs when using clip plane culling
2023-02-03 15:26:50 +01:00
rdb b09a8a84ec Merge branch 'release/1.10.x' 2023-02-03 14:52:39 +01:00
rdb 51d0a55264 general: Fix silly new clang warning about unprefixed `std::move()` 2023-01-31 15:38:02 +01:00
Frang 275fe32079
create PY_EXTENSION and friends (#1415) 2023-01-04 20:54:53 +01:00
Cary Sandvig 3247903d7b add more HAVE_PYTHON
Also add some more #endif comments.
2022-12-23 13:38:46 -05:00
rdb e1b4083d6d Merge branch 'release/1.10.x' 2022-12-12 17:19:10 +01:00
rdb cd984732b7 pgraph: Make `bounds_type` property writable 2022-12-10 19:45:29 +01:00
rdb 7a55c723ba Merge branch 'release/1.10.x' 2022-12-04 19:28:03 +01:00
rdb 41f0c9d48d pgraph: Support None as second arg of replace_texture/replace_material
This removes the relevant texture or material
2022-12-04 19:24:04 +01:00
rdb 8ca804086f pgraph: Fix a compiler warning in renderEffects.I
Initialization is unnecessary, but harmless
2022-12-04 16:58:49 +01:00
rdb 9bd66baa1c Merge branch 'release/1.10.x' 2022-11-21 19:02:50 +01:00
rdb 8a48c3b711 pgraph: Remove recursive lock grab in `Light.set_color()`
Harmless, but unnecessary
2022-11-21 18:26:19 +01:00
rdb e961ea99ac Merge branch 'release/1.10.x' 2022-11-13 12:10:38 +01:00
rdb fe94e43bc4 pgraph: Fix issues with flattening TexMatrixAttrib
If multiple texture stages reference the same texcoord set, Panda wouldn't flatten the tex matrices even if they were the exact same

Fixes #1392
2022-11-13 11:11:32 +01:00
rdb 63017864ab pgraph: Support any number of attribs in `RenderState::make()` in Python 2022-11-07 18:17:48 +01:00
rdb 502607e450 pgraph: Make CullTraverserData.view_frustum settable from Python
Perhaps useful for in cull callbacks
2022-11-06 11:19:56 +01:00
rdb 9d73c9b786 pgraph: Fix a missed `std::move` opportunity in ScissorEffect 2022-11-06 11:19:04 +01:00
rdb fea66ea087 pgraph: Fix rare case of assertion in cull with ScissorEffect
Fixes #1344
2022-11-06 11:13:42 +01:00
rdb 91191a9d75 pgraph: Fix weird comment formatting in renderAttrib.h 2022-11-03 13:49:08 +01:00
rdb 9768cbb6c2 Merge branch 'release/1.10.x' 2022-10-25 16:44:24 +02:00
rdb fc8c07a949 pgraph: Remove unused vertices during premunge phase
Disable with premunge-remove-unused-vertices config var - let me know if causes issues for you, performance or otherwise, though!
2022-10-25 16:34:28 +02:00
rdb 4d5d7047af pgraph: Slight efficiency refactoring of `remove_unused_vertices()` 2022-10-25 16:34:28 +02:00
rdb cc24b5373d pgraph: Fix `PandaNode::_nested_vertices` not updating properly
The problem was that `PandaNode::update_cached()` queries the node's `_internal_vertices` *before* calling `get_internal_bounds()` (which is what actually calculates it).
2022-10-25 11:35:29 +02:00
rdb 6f9897fe49 pgraph: Remove deprecated `PandaNode::set_bound()` method
It's been deprecated with warning for so long, with easy replacement
2022-10-24 13:25:41 +02:00
rdb 14f08361ce Merge branch 'release/1.10.x' 2022-10-24 13:24:03 +02:00
rdb d4b8bb63ba pgraph: Proper deprecated marking for `PandaNode::set_bound()`
[skip ci]
2022-10-24 01:42:03 +02:00
rdb a44d26bfbf pgraph: Allow moving a NodePath into a WorkingNodePath efficiently 2022-10-22 17:04:00 +02:00
rdb 4d2a13537a pgraph: Mark `RenderState::unref()` as final
This will allow the compiler to devirtualize these calls
2022-10-22 16:53:39 +02:00
rdb f0446a6e9c Merge remote-tracking branch 'origin/release/1.10.x' 2022-10-22 16:51:57 +02:00
rdb d0b7574384 pgraph: Add missing `PandaNodePipelineReader::get_into_collide_mask()` 2022-10-22 15:49:40 +02:00
rdb 8bed85740f pgraph: Fix race condition when destructing/constructing NodePaths
Fixes #1366
2022-10-22 15:48:23 +02: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 a0be50c769 general: Fix assorted compiler warnings 2022-03-01 16:09:07 +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 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