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) |
| | Construct rendering and presentation coordination for the selected backend.
|
|
AsyncRenderer & | asyncRenderer () |
| | Expose the background render worker.
|
|
const AsyncRenderer & | asyncRenderer () const |
| | Return the background render worker.
|
| void | setSchedulingClockForTesting (std::function< std::chrono::steady_clock::time_point()> clock) |
| | Replace the steady clock behind the coordinator's scheduling windows: the canvas-size commit throttle, the raster-viewport settle window, the pixel-capture commit wake and the nothing-to-present retry pacing.
|
|
svg::Renderer & | renderer () |
| | Expose the renderer owned by the worker bundle.
|
|
const SelectionBoundsCache & | selectionBoundsCache () const |
| | Return cached selection bounds and their document versions.
|
|
CompositedPresentation & | compositedPresentation () |
| | Expose composited presentation state for the UI thread.
|
|
const CompositedPresentation & | compositedPresentation () const |
| | Return composited presentation state.
|
|
std::uint64_t | displayedDocVersion () const |
| | Return the document version last accepted for visible presentation.
|
|
const FrameCostBreakdown & | lastFrameCostBreakdown () const |
| | Latest editor rendering cost counters observed by this coordinator.
|
| std::uint64_t | documentCanvasCommitTotal () const |
| | Document canvas-size commits this coordinator has made since startup.
|
| std::uint64_t | overviewInfillRenderTotal () const |
| | Overview-infill render requests posted since startup.
|
|
void | requestPresentationRefresh () |
| | Request one worker render even when document and viewport epochs are already current. The request is a new one even if an identical earlier request is being held back.
|
|
void | setDocumentPixelCaptureEnabled (bool enabled) |
| | Arm or disarm the worker-owned document pixel capture.
|
| void | setPointerTargetCaptureEnabled (bool enabled) |
| | Include immutable mouse targets in subsequent Preview renders.
|
|
bool | documentPixelCaptureEnabled () const |
| | Whether an editor session currently retains or requests document pixels.
|
|
const DocumentPixelCapture * | documentPixelCaptureFor (const EditorApp &app, const ViewportState &viewport) const |
| | Current capture, or null when the worker result has not matched the live presentation.
|
|
bool | documentPixelCaptureUnavailable () const |
| | True when the current capture attempt completed without a usable bitmap.
|
|
std::optional< float > | nextPixelCaptureCanvasCommitWakeSeconds () const |
| | Wake deadline for an armed picker waiting on a delayed semantic canvas-size commit.
|
|
std::optional< float > | nextViewportSettleWakeSeconds () |
| | Seconds until deferred viewport work is eligible, absent while its worker is busy. Registers a completion wake before hiding a deadline behind speculative warmup.
|
|
bool | hasPendingViewportSettle () const |
| | Pure pending-work observation, including deadlines hidden behind a busy worker.
|
|
std::optional< float > | nextNothingToPresentRetryWakeSeconds () const |
| | Wake deadline for the paced re-render of a request whose result had nothing to present.
|
|
bool | presentationRefreshPending () const |
| | Whether a renderer-presentation setting still needs a worker frame.
|
|
bool | frameRepairPending () const |
| | Request a missing coherent frame without invalidating already-running work.
|
|
bool | frameRepresentsCurrentIntent () const |
| | Whether the sealed frame represents the input considered by the latest UI frame.
|
|
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.
|
| void | setPenLivePreviewGeometry (std::shared_ptr< const Path > geometry) |
| | Latest owning element-space path, consumed with the cached pen paint and selection identity.
|
| 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< CapturedPresentation::TextEditing > text) |
| | Retain a text annotation together with the exact layout state used to measure it.
|
|
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 (std::uint64_t documentGeneration) |
| | Reset presentation state after loading a different document.
|
| void | refreshSelectionBoundsCache (EditorApp &app) |
| | Refresh selected-element bounds from the live document, or clear them if no document exists.
|
|
void | promoteSelectionBoundsIfReady () |
| | Promote pending selection bounds once their document version is displayed.
|
|
void | requestSelectionGeometryRefresh () |
| | Request annotation geometry from the next safe state matching the accepted raster.
|
|
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.
|
| bool | maybeRequestRender (EditorApp &app, SelectTool &selectTool, const ViewportState &viewport, GlTextureCache *textures=nullptr, bool supersedeInFlight=false, SelectionChromeDetail directSurfaceSelectionDetail=SelectionChromeDetail::Full, bool pendingCanvasSelectionPress=false) |
| | Post a worker render when document, viewport, and presentation state require one.
|
| 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.
|
|
std::shared_ptr< const FramePresentation > | buildFramePresentation (EditorApp &app, SelectTool &tool, const ViewportState &viewport, const Box2d &paneClipRect, SelectionChromeDetail detail, bool includeChrome=true, FramePresentationAdmission admit={}) |
| | Seal the resource, object-pose and selection decision used by every draw pass this frame.
|
|
std::shared_ptr< const FramePresentation > | framePresentation () const |
| | Last installed immutable frame, retained for diagnostics and render callbacks.
|
|
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.
|
|
std::uint64_t | nothingToPresentResultTotalForDiagnostics () const |
| | Cumulative count of worker results that had nothing to present. Diagnostics only: a count that keeps rising under a frozen canvas names a renderer that produces nothing, not a stalled worker.
|
|
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.