Donner SVG main
0.8.0 ยท 382bd0190.8.0 main
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::editor::RenderResult Struct Reference

Presentation payload plus the document version it was rendered from. More...

#include "donner/editor/AsyncRenderer.h"

Classes

struct  WorkerTimingBreakdown
 Internal timing split for one async worker iteration. More...
struct  CompositedTile
 One paint-order tile from the worker's compositor snapshot. Ids and generations let presentation reuse unchanged GL textures or Geode UI registrations, including regular immediate static segments. A matching published tile may carry metadata without a fresh payload. Geometry is in document units so the presenter follows live zoom while a new canvas raster is deferred. More...
struct  CompositedPreview
 Paint-ordered composited tiles and promoted interaction state. More...

Public Attributes

std::shared_ptr< const CapturedPresentation > capturedPresentation
 Geometry captured under the same document guard as the raster payload.
svg::RendererBitmap bitmap
 Optional CPU-readable full-canvas frame.
std::optional< CompositedPreview > compositedPreview
 Paint-ordered compositor tiles, when produced.
EditorRasterViewport rasterViewport
 Raster viewport used to produce this result.
ViewportState viewport
 Editor viewport copied from the request.
bool presentationCoverageRepair = false
 Request repairs a frame rejected for incompatible raster/pose coverage.
int presentationRepairReason = 0
 Missing presentation proof carried by the request.
bool overviewInfillOnly = false
 Update retained overview infill only.
std::uint64_t version = 0
 Document frame version represented by the result.
std::uint64_t cpuSnapshotRequestId = 0
 Nonzero explicit pixel-capture identity.
std::uint64_t documentGeneration = 0
 Document generation from the request.
std::uint64_t fontResourceRevision = 0
 Font-resource revision used by the worker.
std::vector< svg::FontFaceDependency > fontDependencies
 Faces pending before final pixel export.
double workerMs = 0.0
 Worker iteration latency in milliseconds, zero if unavailable.
WorkerTimingBreakdown workerTiming
 Phase and handoff timings for this worker iteration.
std::chrono::steady_clock::time_point workerCompletedAt
 Worker completion timestamp.

Detailed Description

Presentation payload plus the document version it was rendered from.


Class Documentation

◆ donner::editor::RenderResult::WorkerTimingBreakdown

struct donner::editor::RenderResult::WorkerTimingBreakdown

Internal timing split for one async worker iteration.

Class Members
double buildPreviewMs = 0.0 Time spent building composited-preview tile metadata/payloads.
int compositorReadbackCount = 0 GPU-to-CPU readbacks performed inside compositor rendering, before document unlock.
double dequeueToStartMs = 0.0 Worker-thread preflight between dequeue and the measured render iteration.
bool deviceLost = false True when the worker's backend device has been declared lost, either by the driver or by a bounded GPU wait exceeding its deadline.
double diagnosticsMs = 0.0 Time spent copying compositor diagnostics for editor panels.
double documentWriteLockMs = 0.0 Time the captured document remained unavailable for UI edits.
double finalSnapshotMs = 0.0 Time spent taking the final fallback canvas snapshot, when needed.
int finalSnapshotReadbackCount = 0 GPU-to-CPU map attempts while capturing the final frame, including explicit captures.
int fullCanvasTextureAllocationFailureCount = 0 Failed full-canvas GPU captures. The previous usable presentation is retained.
double idleCallbackMs = 0.0 Optional maintenance callback duration preceding this render.
double idleLockMs = 0.0 Time acquiring the worker-state lock after idle maintenance.
double idleWaitMs = 0.0 Condition-variable wait duration preceding this render, including time before submission.
double idleYieldMs = 0.0 Browser yield duration in the maintenance pass preceding this render.
bool nothingToPresent = false True when the iteration produced nothing to present: no compositor tile, and no full-canvas payload where one is permitted. The result then carries neither a preview nor a bitmap, and the UI keeps presenting its previous frame.
double pollDelayMs = 0.0 Time from worker result completion until the UI thread polls it.
double polledAtEpochMs = 0.0 Browser epoch milliseconds at the UI-thread poll, zero in native builds.
double queueWaitMs = 0.0 Time from UI-thread request submission until the worker dequeues the request.
int readbackCount = 0 GPU-to-CPU readbacks performed by the worker renderer and its offscreen instances.
int readbackPollIterations = 0 Legacy device-poll iterations used while waiting for those readbacks.
double renderFrameMs = 0.0 Time spent in CompositorController::renderFrame.
double setupMs = 0.0 Time before CompositorController::renderFrame, including compositor selection setup.
int tileHandoffReadbackCount = 0 GPU-to-CPU map attempts while preparing changed tile payloads after document unlock.
int timedOutWaitMs = 0 Wall time that wait spent before giving up, in milliseconds.
GpuWaitTimeoutSite timedOutWaitSite = svg::GpuWaitTimeoutSite::None Which bounded GPU wait declared that loss, when a deadline did.
bool usedTimedWaitAny = false True when browser readbacks used the event-driven timed WaitAny path.
double wakeToPollMs = 0.0 Portion of pollDelayMs spent waiting for the UI thread's next frame after the result became pollable. This is the handoff's animation-frame phase wait.

Member Data Documentation

◆ bitmap

svg::RendererBitmap donner::editor::RenderResult::bitmap

Optional CPU-readable full-canvas frame.

◆ capturedPresentation

std::shared_ptr<const CapturedPresentation> donner::editor::RenderResult::capturedPresentation

Geometry captured under the same document guard as the raster payload.

◆ compositedPreview

std::optional<CompositedPreview> donner::editor::RenderResult::compositedPreview

Paint-ordered compositor tiles, when produced.

◆ cpuSnapshotRequestId

std::uint64_t donner::editor::RenderResult::cpuSnapshotRequestId = 0

Nonzero explicit pixel-capture identity.

◆ documentGeneration

std::uint64_t donner::editor::RenderResult::documentGeneration = 0

Document generation from the request.

◆ fontDependencies

std::vector<svg::FontFaceDependency> donner::editor::RenderResult::fontDependencies

Faces pending before final pixel export.

◆ fontResourceRevision

std::uint64_t donner::editor::RenderResult::fontResourceRevision = 0

Font-resource revision used by the worker.

◆ overviewInfillOnly

bool donner::editor::RenderResult::overviewInfillOnly = false

Update retained overview infill only.

◆ presentationCoverageRepair

bool donner::editor::RenderResult::presentationCoverageRepair = false

Request repairs a frame rejected for incompatible raster/pose coverage.

◆ presentationRepairReason

int donner::editor::RenderResult::presentationRepairReason = 0

Missing presentation proof carried by the request.

◆ rasterViewport

EditorRasterViewport donner::editor::RenderResult::rasterViewport

Raster viewport used to produce this result.

◆ version

std::uint64_t donner::editor::RenderResult::version = 0

Document frame version represented by the result.

◆ viewport

ViewportState donner::editor::RenderResult::viewport

Editor viewport copied from the request.

◆ workerCompletedAt

std::chrono::steady_clock::time_point donner::editor::RenderResult::workerCompletedAt

Worker completion timestamp.

◆ workerMs

double donner::editor::RenderResult::workerMs = 0.0

Worker iteration latency in milliseconds, zero if unavailable.

◆ workerTiming

WorkerTimingBreakdown donner::editor::RenderResult::workerTiming

Phase and handoff timings for this worker iteration.


The documentation for this struct was generated from the following file: