Toast Engine
Loading...
Searching...
No Matches
renderer::SharedTextureOutputTarget Class Referencefinal
Inheritance diagram for renderer::SharedTextureOutputTarget:
Collaboration diagram for renderer::SharedTextureOutputTarget:

Classes

struct  Interop

Public Member Functions

 SharedTextureOutputTarget (const VulkanCore &core, vk::Extent2D preferred_extent, uint32_t image_count=3)
 SharedTextureOutputTarget (const SharedTextureOutputTarget &)=delete
auto operator= (const SharedTextureOutputTarget &) -> SharedTextureOutputTarget &=delete
 SharedTextureOutputTarget (SharedTextureOutputTarget &&)=delete
auto operator= (SharedTextureOutputTarget &&) -> SharedTextureOutputTarget &=delete
auto getExtent () const -> vk::Extent2D override
auto getColorFormat () const -> vk::Format override
auto getImageCount () const -> uint32_t override
auto getColorImage (uint32_t index) const -> const vk::Image &override
auto getColorAttachment (uint32_t index) const -> const vk::raii::ImageView &override
auto acquireNextImage (uint64_t timeout, vk::Semaphore image_available, vk::Fence in_flight_fence) -> vk::ResultValue< uint32_t > override
auto present (uint32_t image_index, vk::Semaphore render_finished) -> vk::Result override
auto usesAcquirePresentSemaphores () const -> bool override
void recordFinalize (vk::CommandBuffer command_buffer, uint32_t image_index) override
void onImageRenderComplete (uint32_t image_index) override
auto submitSync (uint32_t image_index) -> OutputSubmitSync override
void recreate (vk::Extent2D extent) override
auto copyLatestFrame (void *dst, uint32_t dst_capacity, ViewportFrameDesc *out) -> int
void requestReadback ()
 Reads the next frame back to the CPU even while textures are shared.
auto enableSharedTextures (uint64_t adapter_luid, const uint8_t *adapter_uuid) -> bool
 Hands frames over as shared textures from the next acquired image on, and stops reading every frame back.
void disableSharedTextures ()
auto sharedFrame (ViewportSharedFrameDesc *out) -> int
auto exportSharedSlot (uint64_t generation, uint32_t slot, ViewportSharedHandles *out) -> bool
auto holdSharedSlot (uint64_t generation, uint32_t slot) -> bool
void releaseSharedSlot (uint64_t generation, uint32_t slot, bool consumed)
Public Member Functions inherited from renderer::IOutputTarget
virtual auto isPresentable () const -> bool

Member Function Documentation

◆ acquireNextImage()

auto renderer::SharedTextureOutputTarget::acquireNextImage ( uint64_t timeout,
vk::Semaphore image_available,
vk::Fence in_flight_fence ) -> vk::ResultValue< uint32_t >
nodiscardoverridevirtual

◆ copyLatestFrame()

auto renderer::SharedTextureOutputTarget::copyLatestFrame ( void * dst,
uint32_t dst_capacity,
ViewportFrameDesc * out ) -> int
nodiscard
Returns
1 when copied 0 when no frame is ready -1 when dst_capacity is too small

◆ enableSharedTextures()

auto renderer::SharedTextureOutputTarget::enableSharedTextures ( uint64_t adapter_luid,
const uint8_t * adapter_uuid ) -> bool

Hands frames over as shared textures from the next acquired image on, and stops reading every frame back.

Parameters
adapter_luidThe compositor's adapter LUID, 0 when it has none (checked on Windows)
adapter_uuidThe compositor's device UUID, null when it has none (checked elsewhere)
Returns
false when this device cannot share textures with that adapter

◆ getColorAttachment()

auto renderer::SharedTextureOutputTarget::getColorAttachment ( uint32_t index) const -> const vk::raii::ImageView &
nodiscardoverridevirtual

◆ getColorFormat()

auto renderer::SharedTextureOutputTarget::getColorFormat ( ) const -> vk::Format
inlinenodiscardoverridevirtual

◆ getColorImage()

auto renderer::SharedTextureOutputTarget::getColorImage ( uint32_t index) const -> const vk::Image &
nodiscardoverridevirtual

◆ getExtent()

auto renderer::SharedTextureOutputTarget::getExtent ( ) const -> vk::Extent2D
inlinenodiscardoverridevirtual

◆ getImageCount()

auto renderer::SharedTextureOutputTarget::getImageCount ( ) const -> uint32_t
inlinenodiscardoverridevirtual

◆ onImageRenderComplete()

void renderer::SharedTextureOutputTarget::onImageRenderComplete ( uint32_t image_index)
overridevirtual

Reimplemented from renderer::IOutputTarget.

◆ present()

auto renderer::SharedTextureOutputTarget::present ( uint32_t image_index,
vk::Semaphore render_finished ) -> vk::Result
nodiscardoverridevirtual

◆ recordFinalize()

void renderer::SharedTextureOutputTarget::recordFinalize ( vk::CommandBuffer command_buffer,
uint32_t image_index )
overridevirtual

◆ recreate()

void renderer::SharedTextureOutputTarget::recreate ( vk::Extent2D extent)
overridevirtual

◆ submitSync()

auto renderer::SharedTextureOutputTarget::submitSync ( uint32_t image_index) -> OutputSubmitSync
nodiscardoverridevirtual

Reimplemented from renderer::IOutputTarget.

◆ usesAcquirePresentSemaphores()

auto renderer::SharedTextureOutputTarget::usesAcquirePresentSemaphores ( ) const -> bool
inlinenodiscardoverridevirtual

Reimplemented from renderer::IOutputTarget.


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