Donner SVG 0.8.0-pre
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::editor::FramebufferUnderlayPresenter Class Referencefinal

Presents document tiles by compositing them onto the window framebuffer underneath the ImGui UI. More...

#include "donner/editor/DocumentPresenter.h"

Inheritance diagram for donner::editor::FramebufferUnderlayPresenter:
[legend]

Public Member Functions

 FramebufferUnderlayPresenter (FramebufferUnderlayPlanSink planSink)
DocumentPresentationResult resolveExternalSurface (const DocumentPresentationFrame &frame) override
 Stage 1: open the frame and resolve the transform this frame's document pixels are placed with.
bool presentUnderlay (std::optional< FramebufferUnderlayPlan > plan) override
 Stage 2: install this frame's framebuffer underlay plan, or clear the underlay when there is nothing directly presentable.
std::uint64_t refusedUnderlayPresentCount () const override
 Count of stage-2 calls refused because no frame was open. Diagnostic only.

Detailed Description

Presents document tiles by compositing them onto the window framebuffer underneath the ImGui UI.

The only presenter, on every platform.

Constructor & Destructor Documentation

◆ FramebufferUnderlayPresenter()

donner::editor::FramebufferUnderlayPresenter::FramebufferUnderlayPresenter ( FramebufferUnderlayPlanSink planSink)
explicit
Parameters
planSinkInstalls or clears the window's underlay draw plan.

Member Function Documentation

◆ presentUnderlay()

bool donner::editor::FramebufferUnderlayPresenter::presentUnderlay ( std::optional< FramebufferUnderlayPlan > plan)
overridevirtual

Stage 2: install this frame's framebuffer underlay plan, or clear the underlay when there is nothing directly presentable.

Closes the frame.

Parameters
planTiles and placement for the underlay, or std::nullopt.
Returns
True when the underlay presents document pixels this frame.

Implements donner::editor::DocumentPresenter.

◆ refusedUnderlayPresentCount()

std::uint64_t donner::editor::FramebufferUnderlayPresenter::refusedUnderlayPresentCount ( ) const
inlinenodiscardoverridevirtual

Count of stage-2 calls refused because no frame was open. Diagnostic only.

Implements donner::editor::DocumentPresenter.

◆ resolveExternalSurface()

DocumentPresentationResult donner::editor::FramebufferUnderlayPresenter::resolveExternalSurface ( const DocumentPresentationFrame & frame)
overridevirtual

Stage 1: open the frame and resolve the transform this frame's document pixels are placed with.

Parameters
framePer-frame presentation inputs.
Returns
What this frame resolved to.

Implements donner::editor::DocumentPresenter.


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