Scaffolding merge for the reconcile; the final series to master is
authored fresh. Rank plumbing resolves to our axis-IR model, the node
macro and the LaneSource render walk stay ours, master's vector
restructure and gradient vocabulary are adopted, and the paint and
appearance adoption is deliberately deferred behind our fill and stroke
markers.
* Let the Freehand tool continue a selected open path from its endpoint and show endpoint overlays in the Freehand and Spline tools
* Share the closest-point search with the open path endpoint lookup, tally endpoint connections in a single pass, and rename the endpoint overlay function
* Skip hidden layers and use the feeds-aware transform in path point searches, path overlays, and Freehand point placement
* Map the Spline tool's merge goal with the feeds-aware transform so it matches the endpoint candidates
* Highlight the hovered open path endpoint in the Freehand and Spline tools
* Give each Pen tool segment its own history step and keep drawing across undo/redo
* Test that undo during a Pen tool handle transform cancels it and rewinds
* Desktop: Make input routing aware of floating menus
* Desktop: Route mouse input like pen input
* Desktop: Model pointer input routing as a state machine
* Revert "Fix corrupted font resource loading in older documents"
This reverts commit 404d9f3047.
* Fix migrations for the Read Vector, Dot Product, Query JSON, and Sample Polyline nodes
* Fix text node migrations
* Provide resource storage to the resource message handler
* Refetch resources whose stored bytes are missing
* Add test for refetching resources with missing bytes
* Draw raster images with pad extension instead of repeat
* Add the GPU basic brush renderer
* Rework the brush tool around the GPU basic brush
* Remove the CPU brush implementation
Add event time to the editor pointer states
The brush trace's hot core is position plus per-sample time, and the
frame clock is too coarse for high-rate tablets: several samples share
one timestamp and speed dynamics see dt = 0. The desktop stamps
editor-routed pointer input with a monotonic arrival time since winit
does not surface hardware timestamps; the web path can thread the
PointerEvent timeStamp through later.
* Rename the editor mouse state types to Pointer* and the input_ modules
* Add optional pen attributes to the editor pointer state types
* Desktop: Send tablet pointer clicks to CEF as mouse clicks
* Desktop: End pointer lock and pending window drags on any left-equivalent release
* Desktop: Route pointer input carrying pen attributes directly to the editor
* Desktop: Route wheel and pinch input inside the viewport directly to the editor
* Desktop: Track double clicks on the direct editor route
* Desktop: Move the pointer lock position into InputState
* Restore the input state pointer position when pointer lock ends (review)
* Fix pen input being swallowed by Windows resize helper
* Update winit to 0.31.0-beta.2 from crates.io
* Make Data panel scalars selectable inline, denoise float display, and move breadcrumb truncation to Rust
* Code review fixes
* Remove denoising from f32