Add basic pyo3 module functionality / wrappers#35
Merged
catilac merged 3 commits intoprocessing:mainfrom Dec 9, 2025
Merged
Conversation
catilac
approved these changes
Dec 9, 2025
Contributor
catilac
left a comment
There was a problem hiding this comment.
Yay! I was still trying to figure out more of the details about pyo3, and was about to implement impl From<ProcessingError> which is obviously the wrong direction. I like how you put the Entity and GlfwContext into a class. Thats what I was missing... Thanks!
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.
Changes:
You can see the first commit for an attempt in which we just store the graphics in a TLS just like we do the Bevy
Appinprocessing_render. But then I thought, surely there's a way to stash it in the Python runtime itself, right? There is! If you addpass_moduleto all the wrappers, you get access to the module object itself which is effectively just a GIL controlled map.I did a bit of research into prior art and this is also what they are doing, i.e. module level
_graphicsmember. The user can theoretically access this if they want, but then all our module fns just forward to that object.TODO:
Surfaceclass post Refactor rendering crate to clarify primary Processing API #34