Repository navigation
Conversation
Add an opt-in on_demand render policy for the custom renderer. Static windows skip builds (and, on Metal, draws) until input, animations, tooltips, refresh() or dispatcher work invalidate them. Continuous rendering stays the default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
The custom renderer builds the initial scene and then updates it when input, model actions, surface changes, animations, deadlines or queued worker work invalidate the window. Idle callbacks reuse the retained tree; on-demand scheduling is the renderer contract.
The coordinator coalesces requests, preserves invalidation raised during a frame, suspends visual work while iconified, restores the surface and rejects work posted through a closed window's dispatcher. Control setters request paint without rebuilding the application.
render_stats()exposes callbacks, builds, draws and pending work;ui_dispatcher()delivers worker callbacks on the UI thread.Metal skips idle draws. GL/EGL/D3D repaint the retained tree when their platform callback presents the swapchain. Native controls use their platform refresh mechanisms.
The scheduler, VML runner configurations and acceptance fixture now use automatic on-demand scheduling. The public guide explains invalidation and the backend presentation behavior; the branch includes the current upstream master.
Validation on macOS arm64 with V
e96232c, the C backend, default Boehm GC and compiler fallback disabled: