Conversation
catilac
approved these changes
Dec 16, 2025
Contributor
catilac
left a comment
There was a problem hiding this comment.
Gorgeous! Also thank you so much for the processing_pyo3/src/graphics.rs additions <3
Really exciting work!
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.
Closes #14
The actual transform stack part of this PR is pretty straight forward. We track a current matrix which the user mutates through a variety of commands. When they push a new matrix, we copy this one onto the transform stack, i.e. save the current state.
One minor thing worth knowing is that the A suffix in
glammeans that the matrix is 16-byte aligned and so will/should get SIMD'd.A second, slightly more complicated, change here is tracking
RenderStateas a component on theGraphicsentity, rather than a systemLocal. This was just a mistake from my initial implementation -- local's are cached inside the system state, and so this means that we could accidentally be leaking draw state between graphics. We don't currently support / test multiple graphics at the moment, but I realized in the course of implementing this feature that this was a booboo.We might need to revisit transform stuff when we do 3d retained, but I think it's likely fine?