Coalesce session presentation invalidations through a disposable frame queue
This commit is contained in:
@@ -296,3 +296,16 @@ its `ReactRendererDefinition`. The assembly exposes `previewNodeTypes` and
|
||||
app never constructs a fake editor merely to satisfy the hooks. Preview functions
|
||||
must render the supplied records without requiring CanvasProvider. Built-in preview
|
||||
renderers are registered explicitly. Framework definitions never enter core data.
|
||||
|
||||
Presentation scheduling:
|
||||
|
||||
`createFrameQueue(clock, publish)` accumulates dirty keys in a Set and requests
|
||||
one frame. `flush()` publishes now; reentrant invalidations wait for the next
|
||||
frame. `dispose()` cancels pending work, including late canceled callbacks.
|
||||
This queue never holds commands, undo units or requests. `createSessionFrameSource`
|
||||
wraps a session source with a per-subscription queue; reads still return the
|
||||
current session immediately, while preview notifications coalesce per frame.
|
||||
The application uses it for CanvasView sessions. Pointerup reads its final event
|
||||
and commits through the engine synchronously; persistence and Root notifications
|
||||
are not frame-throttled. This does not implement paint extent indexing or selective
|
||||
per-element drawing: dirty keys currently schedule a view notification.
|
||||
|
||||
Reference in New Issue
Block a user