More python support - #149
Merged
Merged
Conversation
kunitoki
force-pushed
the
dev/extended_python
branch
from
September 6, 2026 23:58
501795b to
050c3cc
Compare
kunitoki
force-pushed
the
dev/extended_python
branch
from
September 7, 2026 00:15
5392dcd to
1bb5f50
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces several important bug fixes and feature enhancements across the GPU/RHI, graphics, and UI subsystems, as well as improvements to Python bindings and memory management. The changes focus on making GPU resource management safer, improving developer ergonomics, fixing subtle memory and correctness bugs, and enhancing Python integration.
Key changes include:
Python Bindings Enhancements
GpuColor,GpuLoadOp,GpuStoreOp, and related render options, improving scripting and automation capabilities. ([CHANGELOG.mdR111-R112](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR111-R112))GPU/RHI and Memory Safety Improvements
yup_rhidescriptor classes now own their data instead of referencing caller-managed memory, making GPU resource management safer and simplifying usage patterns. This affects types likeGpuVertexBufferLayout,GpuPipelineOptions,GpuShaderSource, and others. ([CHANGELOG.mdR19-R38](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR19-R38))GpuDevice's move constructor and move assignment are now deleted to prevent accidental refcount corruption, addressing a critical memory safety issue. ([CHANGELOG.mdR19-R38](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR19-R38))GpuBuffer::Impland related methods were made private, with backend factories given friend access, further encapsulating internal implementation details. ([CHANGELOG.mdR19-R38](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR19-R38))GPU/Graphics Bug Fixes and Feature Additions
GpuSamplerDesc::labelandGpuTextureDesc::labelare now ownedStrings to prevent dangling pointers; pipeline entry-point names are now owned, resolving lifetime issues; and the WebGPU compute path now respects shader source length. ([CHANGELOG.mdR57-R65](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR57-R65))GpuFrameDescriptorto decouple public APIs from Rive types, and extendedGpuCanvas::beginDraw()to allow more control over frame options. ([CHANGELOG.mdR57-R65](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR57-R65))Image::getWidth()andgetHeight()now safely return 0 for invalid images instead of asserting, improving robustness. ([CHANGELOG.mdR19-R38](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR19-R38))Graphics and Image Management
ImageFormatReaderandImageFormatWriternow accept adeleteSourceWhenDestroyedparameter, allowing more flexible and leak-free management of stream ownership, especially for Python integrations. ([CHANGELOG.mdR147-R151](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR147-R151))UI and Exception Safety
SDLComponentNative::renderFrame(). ([CHANGELOG.mdR147-R151](https://github.com/kunitoki/yup/pull/149/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR147-R151))These changes collectively improve the safety, usability, and extensibility of the codebase, especially around GPU resource management and Python integration.