Repository navigation
The clip a damaged node paints within is worked out alone, not with its place and effects - #601
Merged
Merged
Conversation
…ts place and effects shown_context, a node's paint past its clip, and scroll moves asked world for its clip and threw away the translation and effects it summed over every ancestor first. world_clip is world's clip loop alone (as before: each clipping ancestor at its box translated by its and its ancestors' translations, summed from it upwards), and world is its translation and effects with world_clip. Damage is the same. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Instruction counts (cachegrind, exact) against
|
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.
Several callers asked
Scene::worldfor the clip a node paints within (.2) and threw away the rest:shown_context, which damage runs for every subtree damaged alone;damage_node's parent clip, for a box painting past its own clip;resolve_moves.worldsums the node's translation and opacity over every ancestor before it works out the clip.world_clipisworld's clip loop alone, in the same shape: each clipping ancestor is taken at its box, translated by its own and its ancestors' translations summed from it upwards, with no storage.worldis its translation and effects plusworld_clip. The clip-only callers callworld_clip. The clip is bit-for-bit what it was, so damage is unchanged.The speed-of-light lane handed this over after #587 (one damage context shared between a setter's two damage calls). It found
worldat 21% of script-layout, from animated rows under clipping ancestors.Exactness: a hash of every frame's damage rects and scroll moves over 480 frames of heavy both, stream, scroll and animate matches main.
Numbers. Exact instruction counts (arm64 cachegrind, gate flags, against main 542ad4d, which includes #587):
Mount varies by about ±0.15 M between runs of the same binary, and no zgx function in it changes.
Checks: fmt, clippy 1.99
-D warnings, and the zgx, zgx-gpu and zgx-desktop tests (1,341 passed).🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.