Kanzi 4.0.0-beta2
kanzi::gfx::BackendLayer Class Reference

Base class for a backend layer. More...

#include <kanzi/gfx/backend_layer.hpp>

Inheritance diagram for kanzi::gfx::BackendLayer:
[legend]

Public Member Functions

 BackendLayer ()=default
 Constructor.
 
BackendInformation getBackendInformation () const override
 AbstractBackend::getBackendInformation() implementation.
 
uint32_t getDeviceProperty (DevicePropertyId property) const override
 AbstractBackend::getDeviceProperty() implementation.
 
HandleObjectgetHandleObject (BlendStateHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (BufferHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (CommandBufferHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (ComputePipelineHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (ComputeResourceSetHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (DepthStencilStateHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (FrameBufferHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (GpuFenceHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (ImageHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (RasterStateHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (RenderPassHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (RenderPipelineHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (RenderResourceSetHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (SamplerHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (ShaderHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
HandleObjectgetHandleObject (VertexInputStateHandle handle) override
 AbstractBackend::getHandleObject() implementation.
 
ObjectStatus getStatus (const RenderPipelineHandleGuard &handle) const override
 AbstractBackend::getStatus() implementation.
 
ObjectStatus getStatus (const ShaderHandleGuard &handle) const override
 AbstractBackend::getStatus() implementation.
 
bool isFeatureEnabled (FeatureId feature) const override
 AbstractBackend::isFeatureEnabled() implementation.
 
bool isNativeTextureHandleTypeSupported (const gfx::NativeTextureHandle &handle) const override
 AbstractBackend::isNativeTextureHandleTypeSupported() implementation.
 
bool isShaderFormatSupported (ShaderFormat format) const override
 AbstractBackend::isShaderFormatSupported() implementation.
 
span< const byte > peekCommandBufferMemory (const CommandBufferHandleGuard &handle) const override
 AbstractBackend::peekCommandBufferMemory() implementation.
 
void setNext (shared_ptr< AbstractBackend > next)
 Sets the next backend object in the execution chain.
 
- Public Member Functions inherited from kanzi::gfx::AbstractBackend
 AbstractBackend ()=default
 Constructor.
 
 AbstractBackend (AbstractBackend &&) noexcept=delete
 
 AbstractBackend (const AbstractBackend &)=delete
 
virtual span< byte > allocateCommandBufferMemory (const CommandBufferHandleGuard &buffer, uint32_t size)=0
 Allocates memory from the end of a command buffer.
 
virtual BlendStateHandleGuard create (const BlendStateCreateInfo &createInfo)=0
 Creates a blend state object.
 
virtual BufferHandleGuard create (const BufferCreateInfo &createInfo)=0
 Creates a buffer object.
 
virtual CommandBufferHandleGuard create (const CommandBufferCreateInfo &createInfo)=0
 Creates a command buffer object.
 
virtual ComputePipelineHandleGuard create (const ComputePipelineCreateInfo &createInfo)=0
 Creates a compute pipeline object.
 
virtual ComputeResourceSetHandleGuard create (const ComputeResourceSetCreateInfo &createInfo)=0
 Creates a compute resource set object.
 
virtual DepthStencilStateHandleGuard create (const DepthStencilStateCreateInfo &createInfo)=0
 Creates a depth stencil state object.
 
virtual FrameBufferHandleGuard create (const FrameBufferCreateInfo &createInfo)=0
 Creates a frame buffer object.
 
virtual GpuFenceHandleGuard create (const GpuFenceCreateInfo &createInfo)=0
 Creates a GPU fence object.
 
virtual ImageHandleGuard create (const ImageCreateInfo &createInfo)=0
 Creates an image object.
 
virtual RasterStateHandleGuard create (const RasterStateCreateInfo &createInfo)=0
 Creates a raster state object.
 
virtual RenderPassHandleGuard create (const RenderPassCreateInfo &createInfo)=0
 Creates a render pass object.
 
virtual RenderPipelineHandleGuard create (const RenderPipelineCreateInfo &createInfo)=0
 Creates a render pipeline object.
 
virtual RenderResourceSetHandleGuard create (const RenderResourceSetCreateInfo &createInfo)=0
 Creates a render resource set object.
 
virtual SamplerHandleGuard create (const SamplerCreateInfo &createInfo)=0
 Creates a sampler object.
 
virtual ShaderHandleGuard create (const ShaderCreateInfo &createInfo)=0
 Creates a shader object.
 
virtual VertexInputStateHandleGuard create (const VertexInputStateCreateInfo &createInfo)=0
 Creates a vertex input state object.
 
virtual void destroy (BlendStateHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (BufferHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (CommandBufferHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (ComputePipelineHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (ComputeResourceSetHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (DepthStencilStateHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (FrameBufferHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (GpuFenceHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (ImageHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (RasterStateHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (RenderPassHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (RenderPipelineHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (RenderResourceSetHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (SamplerHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (ShaderHandle handle)=0
 Destroys a buffer object.
 
virtual void destroy (VertexInputStateHandle handle)=0
 Destroys a buffer object.
 
virtual FormatFeatureFlag getFormatFeatures (Format format) const =0
 Gets device feature flags for a format.
 
virtual AttachmentDescriptionSet getFrameBufferAttachmentDescriptionSet (const FrameBufferHandleGuard &handle)=0
 Gets the AttachmentDescriptionSet for the requested FrameBuffer.
 
virtual bool initialize (const InitializationInfo &info)=0
 Initializes the backend.
 
virtual span< byte > mapBuffer (const BufferHandleGuard &handle, uint32_t offset, uint32_t size)=0
 Maps a buffer into CPU-accessible memory.
 
AbstractBackendoperator= (AbstractBackend &&) noexcept=delete
 
AbstractBackendoperator= (const AbstractBackend &)=delete
 
virtual void prepareForShutdown ()=0
 Prepares for backend shutdown.
 
virtual void processCommands (CommandBufferHandleGuard commands, TaskFn callback)=0
 Processes the commands in the command buffer.
 
virtual void resetGpuFence (const GpuFenceHandleGuard &handle)=0
 Resets the signal state of a GPU fence.
 
virtual void shutdown ()=0
 Shuts down the backend and frees any resources.
 
virtual void unmapBuffer (const BufferHandleGuard &handle, span< ByteRange > updatedRanges)=0
 Unmaps a previously mapped buffer.
 
virtual void updateSurfaceDimensions (const FrameBufferHandleGuard &handle, v2u32 dimensions)=0
 Updates the Surface dimensions.
 
virtual WaitResult waitForGpuFence (const GpuFenceHandleGuard &handle, chrono::nanoseconds timeout)=0
 Waits for a GPU fence to be signaled.
 
virtual ~AbstractBackend ()=default
 Destructor.
 

Protected Member Functions

AbstractBackendgetNext () const
 Accesses the next backend in the chain.
 

Detailed Description

Base class for a backend layer.

The Kanzi graphics library calls the layers in sequence, so that common features, such as logging or validation, are added to all backends.

Since
Kanzi 4.0.0

Constructor & Destructor Documentation

◆ BackendLayer()

kanzi::gfx::BackendLayer::BackendLayer ( )
default

Constructor.

Member Function Documentation

◆ getNext()

AbstractBackend * kanzi::gfx::BackendLayer::getNext ( ) const
inlineprotected

Accesses the next backend in the chain.

◆ setNext()

void kanzi::gfx::BackendLayer::setNext ( shared_ptr< AbstractBackend > next)
inline

Sets the next backend object in the execution chain.

This operation is part of initialization, and therefore not thread-safe with the next operation or other operations on the interface.

Parameters
nextThe next backend in the chain. This can be a real backend or another layer.

◆ getBackendInformation()

BackendInformation kanzi::gfx::BackendLayer::getBackendInformation ( ) const
inlineoverridevirtual

◆ isShaderFormatSupported()

bool kanzi::gfx::BackendLayer::isShaderFormatSupported ( ShaderFormat format) const
inlineoverridevirtual

◆ isNativeTextureHandleTypeSupported()

bool kanzi::gfx::BackendLayer::isNativeTextureHandleTypeSupported ( const gfx::NativeTextureHandle & handle) const
inlineoverridevirtual

◆ getDeviceProperty()

uint32_t kanzi::gfx::BackendLayer::getDeviceProperty ( DevicePropertyId property) const
inlineoverridevirtual

◆ isFeatureEnabled()

bool kanzi::gfx::BackendLayer::isFeatureEnabled ( FeatureId feature) const
inlineoverridevirtual

◆ peekCommandBufferMemory()

span< const byte > kanzi::gfx::BackendLayer::peekCommandBufferMemory ( const CommandBufferHandleGuard & handle) const
inlineoverridevirtual

◆ getStatus() [1/2]

ObjectStatus kanzi::gfx::BackendLayer::getStatus ( const ShaderHandleGuard & handle) const
inlineoverridevirtual

◆ getStatus() [2/2]

ObjectStatus kanzi::gfx::BackendLayer::getStatus ( const RenderPipelineHandleGuard & handle) const
inlineoverridevirtual

◆ getHandleObject() [1/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( BufferHandle handle)
inlineoverridevirtual

◆ getHandleObject() [2/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( ImageHandle handle)
inlineoverridevirtual

◆ getHandleObject() [3/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( FrameBufferHandle handle)
inlineoverridevirtual

◆ getHandleObject() [4/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( VertexInputStateHandle handle)
inlineoverridevirtual

◆ getHandleObject() [5/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( DepthStencilStateHandle handle)
inlineoverridevirtual

◆ getHandleObject() [6/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( BlendStateHandle handle)
inlineoverridevirtual

◆ getHandleObject() [7/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( RasterStateHandle handle)
inlineoverridevirtual

◆ getHandleObject() [8/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( RenderResourceSetHandle handle)
inlineoverridevirtual

◆ getHandleObject() [9/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( ComputeResourceSetHandle handle)
inlineoverridevirtual

◆ getHandleObject() [10/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( SamplerHandle handle)
inlineoverridevirtual

◆ getHandleObject() [11/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( ShaderHandle handle)
inlineoverridevirtual

◆ getHandleObject() [12/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( ComputePipelineHandle handle)
inlineoverridevirtual

◆ getHandleObject() [13/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( RenderPipelineHandle handle)
inlineoverridevirtual

◆ getHandleObject() [14/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( RenderPassHandle handle)
inlineoverridevirtual

◆ getHandleObject() [15/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( CommandBufferHandle handle)
inlineoverridevirtual

◆ getHandleObject() [16/16]

HandleObject * kanzi::gfx::BackendLayer::getHandleObject ( GpuFenceHandle handle)
inlineoverridevirtual

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