Owns the advanced editor's renderer-side orchestration: async rendering, overlay rasterization, composited drag presentation, and selection-bounds cache promotion.
More...
|
|
| RenderCoordinator (std::shared_ptr<::donner::geode::GeodeDevice > geodeDevice=nullptr) |
|
AsyncRenderer & | asyncRenderer () |
|
const AsyncRenderer & | asyncRenderer () const |
|
svg::Renderer & | renderer () |
|
const SelectionBoundsCache & | selectionBoundsCache () const |
|
CompositedPresentation & | compositedPresentation () |
|
const CompositedPresentation & | compositedPresentation () const |
|
std::uint64_t | displayedDocVersion () const |
|
const FrameCostBreakdown & | lastFrameCostBreakdown () const |
| | Latest editor rendering cost counters observed by this coordinator.
|
|
void | beginFrameCostTracking () |
| | Clear the per-frame cost accumulator before a new UI frame starts.
|
| bool | setSourceHoverElements (std::vector< svg::SVGElement > elements) |
| | Replace transient source-hover chrome elements.
|
| void | setLockedRejectionFlash (std::optional< SelectTool::LockedRejectionFlash > flash) |
| | Update the transient locked-rejection flash to draw on the next overlay capture. The flash fades as SelectTool ticks it; this should be pushed once per frame from the editor's per-frame path with selectTool.lockedRejectionFlash().
|
| bool | hasLockedRejectionFlash () const |
|
void | setPenLivePreviewElement (std::optional< svg::SVGElement > element) |
| | Set (or clear) the path element the Pen tool is actively editing. While set, every overlay capture also snapshots the element's live document-space geometry + solid paint into SelectionChromeSnapshot::livePathPreview, so the presented frame shows the edited path from the same DOM capture as the chrome instead of the stale async raster.
|
| const std::optional< svg::SVGElement > & | penLivePreviewElement () const |
|
void | setPenHoverChrome (std::optional< Path > previewSegmentDoc, std::optional< Vector2d > closeAffordanceDoc) |
| | Set (or clear) the Pen tool's hover chrome for the next overlay capture: the rubber-band preview of the segment a click would commit, and the close-path affordance point when the pointer is within closing range.
|
|
void | setTextEditingChrome (std::optional< SelectionChromeSnapshot::TextCaret > caretDoc, std::optional< std::array< Vector2d, 4 > > frameCornersDoc, float frameOpacity=1.0f) |
| | Set (or clear) the text tool's editing chrome for the next overlay capture: the caret bar and the session frame's oriented corners (local TL, TR, BR, BL mapped through the text's transform), in document space.
|
|
void | setTextBoxDragPreview (std::optional< SelectionChromeSnapshot::TextBoxDragPreview > previewDoc) |
| | Set (or clear) the text tool's drag-to-create preview chrome for the next overlay capture: the live box being dragged out plus its first baseline and I-beam marker, in document space.
|
|
void | resetForLoadedDocument () |
|
void | refreshSelectionBoundsCache (EditorApp &app) |
|
void | promoteSelectionBoundsIfReady () |
|
bool | rasterizeOverlayForCurrentSelection (EditorApp &app, const ViewportState &viewport, const std::optional< Box2d > &marqueeRectDoc, std::optional< SelectTool::ActiveDragPreview > representedDragPreview=std::nullopt, std::optional< SelectTool::ActiveTransformBoundsPreview > activeBoundsPreview=std::nullopt, std::optional< SelectionChromeDetail > selectionDetail=std::nullopt, std::optional< SelectTool::ActiveDragPreview > liveDragPreview=std::nullopt) |
| | Capture the editor chrome (path outlines, selection AABBs, marquee) for immediate presentation. marqueeRectDoc is the active marquee rectangle in document space (nullopt when the user isn't marquee-dragging). The snapshot is drawn directly by Donner's OverlayRenderer straight onto the Geode framebuffer, so selected chrome does not allocate, rasterize, snapshot, or upload an overlay texture.
|
| bool | rasterizeOverlayForPresentation (EditorApp &app, SelectTool &selectTool, const ViewportState &viewport, GlTextureCache &textures, std::optional< SelectTool::ActiveDragPreview > activeDragPreview, std::optional< SelectTool::ActiveDragPreview > representedDragPreview, std::optional< SelectionChromeDetail > selectionDetail=std::nullopt, bool allowLiveGeometryOverlay=false) |
| | Rasterize the current UI-frame overlay immediately before presentation.
|
|
void | pollRenderResult (EditorApp &app, const ViewportState &viewport, GlTextureCache &textures, FrameHistory *frameHistory=nullptr) |
| | Drain the latest async-render result into the editor's UI state. If a frameHistory is supplied, its latest slot is stamped with the backend (worker) ms reported by AsyncRenderer so the frame graph can plot backend time alongside ImGui frame time. nullptr is allowed for callers that don't care about backend timing.
|
|
void | maybeRequestRender (EditorApp &app, SelectTool &selectTool, const ViewportState &viewport, GlTextureCache *textures=nullptr) |
| void | invalidatePresentationAfterDocumentFlush (const AsyncSVGDocument::FlushResult &flushResult) |
| | Record that a document mutation requires a current-version presentation handoff.
|
| void | invalidatePresentationAfterDocumentFlush (EditorApp &app, const AsyncSVGDocument::FlushResult &flushResult) |
| | Record document-flush invalidation that depends on the live selected element.
|
| Entity | suppressedCompositedLayerEntity (EditorApp &app) |
| | Return the selected layer whose cached pixels should be hidden while editor chrome remains visible.
|
|
bool | selectedElementIsDisplayNone (EditorApp &app) const |
| | Return true when the live selected graphics element is hidden by display:none.
|
|
const std::optional< SelectionChromeSnapshot > & | immediateOverlaySnapshot () const |
| | Latest race-free overlay chrome snapshot for immediate screen-space presentation.
|
|
std::optional< std::uint64_t > | immediateOverlayDocumentVersionForDiagnostics () const |
| | Document version represented by immediateOverlaySnapshot, if one is currently cached.
|
|
Entity | pendingSelectedLayerRasterizationEntityForDiagnostics () const |
| | Pending selected-layer rasterization entity for replay diagnostics.
|
|
std::uint64_t | pendingSelectedLayerRasterizationVersionForDiagnostics () const |
| | Pending selected-layer rasterization document version for replay diagnostics.
|
|
std::uint64_t | displayedDocVersionForDiagnostics () const |
| | Last document version published to the visible presentation for replay diagnostics.
|
|
Entity | selectedCompositedEntityForDiagnostics (EditorApp &app) const |
| | Selected entity eligible for composited presentation for replay diagnostics.
|
Owns the advanced editor's renderer-side orchestration: async rendering, overlay rasterization, composited drag presentation, and selection-bounds cache promotion.