oa::Renderer

Renderer class in the OA Ui public surface.

Public Methods

oa::Status oa::Renderer::abandonFrame(const RenderFrame & inFrame)
oa::Status oa::Renderer::beginFrame(const MeshData & inMesh, const CameraState & inCamera)
oa::Status oa::Renderer::beginFrame(const Scene & inScene, const CameraState & inCamera)
oa::Status oa::Renderer::beginFrame(oa::F32 inDeltaMs, oa::F32 inContentScale = 1.0F)
oa::Status oa::Renderer::cancelFrame()
oa::Status oa::Renderer::close()
oa::Status oa::Renderer::collect()
oa::Result<RenderReadback> oa::Renderer::consumeReadback(const RenderFrame & inFrame)
oa::Status oa::Renderer::markConsumed(const RenderFrame & inFrame, const oa::Event & inConsumer)
oa::Status oa::Renderer::resize(oa::U32 inWidth, oa::U32 inHeight)
oa::Status oa::Renderer::saveTo(const RenderFrame & inFrame, oa::StringView inPath, oa::U32 inQuality = 90U)
oa::Result<RenderFrame> oa::Renderer::submitFrame(oa::Span<const oa::Event> inDependencies = = {})
::oa::Ui * oa::Renderer::ui()
const ::oa::Ui * oa::Renderer::ui()

Static Public Methods

static oa::Result<oa::UniquePtr<Renderer>> oa::Renderer::create(oa::Engine & inEngine, const ::oa::UiRenderConfig & inConfig)
static oa::Result<oa::UniquePtr<Renderer>> oa::Renderer::create(oa::Engine & inEngine, const RendererConfig & inConfig = {})

Constructor & Destructor Documentation

void oa::Renderer::~Renderer()
No public source comment is attached to this declaration.

Public Method Documentation

oa::Status oa::Renderer::abandonFrame( const RenderFrame & inFrame )
No public source comment is attached to this declaration.

Parameters

inFrame
const RenderFrame &

Returns

oa::Status

The declared return value.

oa::Status oa::Renderer::beginFrame( const MeshData & inMesh, const CameraState & inCamera )
beginFrame copies the complete semantic mesh snapshot before returning. No caller-owned mesh memory is retained.

Parameters

inMesh
const MeshData &

inCamera
const CameraState &

Returns

oa::Status

The declared return value.

oa::Status oa::Renderer::beginFrame( const Scene & inScene, const CameraState & inCamera )
Scene compilation validates stable identities, hierarchy, transforms, and configured geometry capacity before recording. The semantic scene remains caller-owned and no caller memory is retained.

Parameters

inScene
const Scene &

inCamera
const CameraState &

Returns

oa::Status

The declared return value.

oa::Status oa::Renderer::beginFrame( oa::F32 inDeltaMs, oa::F32 inContentScale = 1.0F )
The UI overload starts immediate command collection. ui() is non-null only for a renderer created with oa::UiRenderConfig.

Parameters

inDeltaMs
oa::F32

inContentScale
oa::F32

Default: 1.0F

Returns

oa::Status

The declared return value.

oa::Status oa::Renderer::cancelFrame()
No public source comment is attached to this declaration.

Returns

oa::Status

The declared return value.

oa::Status oa::Renderer::close()
Mandatory explicit shutdown boundary. It waits only exact outstanding producer/consumer events and reports failures.

Returns

oa::Status

The declared return value.

oa::Status oa::Renderer::collect()
No public source comment is attached to this declaration.

Returns

oa::Status

The declared return value.

oa::Result<RenderReadback> oa::Renderer::consumeReadback( const RenderFrame & inFrame )
Normal submission keeps targets device-resident and records no host copy. consumeReadback is the explicit synchronous sink. markConsumed registers the exact graphics completion of an external image consumer. abandonFrame never waits; Collect recycles completed retired slots.

Parameters

inFrame
const RenderFrame &

Returns

oa::Result<RenderReadback>

The declared return value.

oa::Status oa::Renderer::markConsumed( const RenderFrame & inFrame, const oa::Event & inConsumer )
No public source comment is attached to this declaration.

Parameters

inFrame
const RenderFrame &

inConsumer
const oa::Event &

Returns

oa::Status

The declared return value.

oa::Status oa::Renderer::resize( oa::U32 inWidth, oa::U32 inHeight )
resize is non-waiting and requires all old-generation frames to have reached a reusable state.

Parameters

inWidth
oa::U32

inHeight
oa::U32

Returns

oa::Status

The declared return value.

oa::Status oa::Renderer::saveTo( const RenderFrame & inFrame, oa::StringView inPath, oa::U32 inQuality = 90U )
Explicit synchronous file sink. The frame is consumed before encoding; an encoder/filesystem failure does not resurrect its target lease.

Parameters

inFrame
const RenderFrame &

inPath
oa::StringView

inQuality
oa::U32

Default: 90U

Returns

oa::Status

The declared return value.

oa::Result<RenderFrame> oa::Renderer::submitFrame( oa::Span<const oa::Event> inDependencies = = {} )
No public source comment is attached to this declaration.

Parameters

inDependencies
oa::Span<const oa::Event>

Default: = {}

Returns

oa::Result<RenderFrame>

The declared return value.

::oa::Ui * oa::Renderer::ui()
No public source comment is attached to this declaration.

Returns

::oa::Ui *

The declared return value.

const ::oa::Ui * oa::Renderer::ui()
No public source comment is attached to this declaration.

Returns

const ::oa::Ui *

The declared return value.

static oa::Result<oa::UniquePtr<Renderer>> oa::Renderer::create( oa::Engine & inEngine, const ::oa::UiRenderConfig & inConfig )
No public source comment is attached to this declaration.

Parameters

inEngine
oa::Engine &

inConfig
const ::oa::UiRenderConfig &

Returns

oa::Result<oa::UniquePtr<Renderer>>

The declared return value.

static oa::Result<oa::UniquePtr<Renderer>> oa::Renderer::create( oa::Engine & inEngine, const RendererConfig & inConfig = {} )
No public source comment is attached to this declaration.

Parameters

inEngine
oa::Engine &

inConfig
const RendererConfig &

Default: {}

Returns

oa::Result<oa::UniquePtr<Renderer>>

The declared return value.