IRenderDevice struct
Render device interface.
Contents
- Reference
Base classes
- struct IObject
- Base interface for all dynamic objects in the engine.
Derived classes
- struct IRenderDeviceD3D11
- Exposes Direct3D11-specific functionality of a render device.
- struct IRenderDeviceD3D12
- Exposes Direct3D12-specific functionality of a render device.
- struct IRenderDeviceGL
- Exposes OpenGL-specific functionality of a render device.
- class IRenderDeviceMtl
- Exposes Metal-specific functionality of a render device.
- struct IRenderDeviceVk
- Exposes Vulkan-specific functionality of a render device.
Public functions
- auto CreateBuffer(const BufferDesc& BuffDesc, const BufferData* pBuffData, IBuffer** ppBuffer) -> void METHOD() virtual
- Creates a new buffer object.
- auto CreateShader(const ShaderCreateInfo& ShaderCI, IShader** ppShader) -> void METHOD() virtual
- Creates a new shader object.
- auto CreateTexture(const TextureDesc& TexDesc, const TextureData* pData, ITexture** ppTexture) -> void METHOD() virtual
- Creates a new texture object.
- auto CreateSampler(const SamplerDesc& SamDesc, ISampler** ppSampler) -> void METHOD() virtual
- Creates a new sampler object.
- auto CreateResourceMapping(const ResourceMappingDesc& MappingDesc, IResourceMapping** ppMapping) -> void METHOD() virtual
- Creates a new resource mapping.
- auto CreateGraphicsPipelineState(const GraphicsPipelineStateCreateInfo& PSOCreateInfo, IPipelineState** ppPipelineState) -> void METHOD() virtual
- Creates a new graphics pipeline state object.
- auto CreateComputePipelineState(const ComputePipelineStateCreateInfo& PSOCreateInfo, IPipelineState** ppPipelineState) -> void METHOD() virtual
- Creates a new compute pipeline state object.
- auto CreateRayTracingPipelineState(const RayTracingPipelineStateCreateInfo& PSOCreateInfo, IPipelineState** ppPipelineState) -> void METHOD() virtual
- Creates a new ray tracing pipeline state object.
- auto CreateFence(const FenceDesc& Desc, IFence** ppFence) -> void METHOD() virtual
- Creates a new fence object.
- auto CreateQuery(const QueryDesc& Desc, IQuery** ppQuery) -> void METHOD() virtual
- Creates a new query object.
- auto CreateRenderPass(const RenderPassDesc& Desc, IRenderPass** ppRenderPass) -> void METHOD() virtual
- Creates a render pass object.
- auto CreateFramebuffer(const FramebufferDesc& Desc, IFramebuffer** ppFramebuffer) -> void METHOD() virtual
- Creates a framebuffer object.
- auto CreateBLAS(const BottomLevelASDesc& Desc, IBottomLevelAS** ppBLAS) -> void METHOD() virtual
- Creates a bottom-level acceleration structure object (BLAS).
- auto CreateTLAS(const TopLevelASDesc& Desc, ITopLevelAS** ppTLAS) -> void METHOD() virtual
- Creates a top-level acceleration structure object (TLAS).
- auto CreateSBT(const ShaderBindingTableDesc& Desc, IShaderBindingTable** ppSBT) -> void METHOD() virtual
- Creates a shader resource binding table object (SBT).
- auto CreatePipelineResourceSignature(const PipelineResourceSignatureDesc& Desc, IPipelineResourceSignature** ppSignature) -> void METHOD() virtual
- Creates a pipeline resource signature object.
- auto GetDeviceCaps() const -> const DeviceCaps&METHOD() virtual
- Gets the device capabilities, see Diligent::
DeviceCaps for details. - auto GetDeviceProperties() const -> const DeviceProperties&METHOD() virtual
- Gets the device properties, see Diligent::
DeviceProperties for details. -
auto GetTextureFormatInfo(TEXTURE_
FORMAT TexFormat) -> const TextureFormatInfo&METHOD() virtual - Returns the basic texture format information.
-
auto GetTextureFormatInfoExt(TEXTURE_
FORMAT TexFormat) -> const TextureFormatInfoExt&METHOD() virtual - Returns the extended texture format information.
- auto ReleaseStaleResources(bool ForceRelease = false) -> void METHOD() virtual
- Purges device release queues and releases all stale resources. This method is automatically called by ISwapChain::
Present() of the primary swap chain. - auto IdleGPU() -> void METHOD() virtual
- Waits until all outstanding operations on the GPU are complete.
- auto GetEngineFactory() const -> IEngineFactory*METHOD() virtual
- Returns engine factory this device was created from.
Function documentation
void METHOD() Diligent:: IRenderDevice:: CreateBuffer(const BufferDesc& BuffDesc,
const BufferData* pBuffData,
IBuffer** ppBuffer) virtual
Creates a new buffer object.
| Parameters | |
|---|---|
| BuffDesc in | - Buffer description, see Diligent:: |
| pBuffData in | - Pointer to Diligent:: |
| ppBuffer out | - Address of the memory location where the pointer to the buffer interface will be stored. The function calls AddRef(), so that the new buffer will have one reference and must be released by a call to Release(). |
void METHOD() Diligent:: IRenderDevice:: CreateShader(const ShaderCreateInfo& ShaderCI,
IShader** ppShader) virtual
Creates a new shader object.
| Parameters | |
|---|---|
| ShaderCI in | - Shader create info, see Diligent:: |
| ppShader out | - Address of the memory location where the pointer to the shader interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateTexture(const TextureDesc& TexDesc,
const TextureData* pData,
ITexture** ppTexture) virtual
Creates a new texture object.
| Parameters | |
|---|---|
| TexDesc in | - Texture description, see Diligent:: |
| pData in | - Pointer to Diligent:: |
| ppTexture out | - Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateSampler(const SamplerDesc& SamDesc,
ISampler** ppSampler) virtual
Creates a new sampler object.
| Parameters | |
|---|---|
| SamDesc in | - Sampler description, see Diligent:: |
| ppSampler out | - Address of the memory location where the pointer to the sampler interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateResourceMapping(const ResourceMappingDesc& MappingDesc,
IResourceMapping** ppMapping) virtual
Creates a new resource mapping.
| Parameters | |
|---|---|
| MappingDesc in | - Resource mapping description, see Diligent:: |
| ppMapping out | - Address of the memory location where the pointer to the resource mapping interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateGraphicsPipelineState(const GraphicsPipelineStateCreateInfo& PSOCreateInfo,
IPipelineState** ppPipelineState) virtual
Creates a new graphics pipeline state object.
| Parameters | |
|---|---|
| PSOCreateInfo in | - Graphics pipeline state create info, see Diligent:: |
| ppPipelineState out | - Address of the memory location where the pointer to the pipeline state interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateComputePipelineState(const ComputePipelineStateCreateInfo& PSOCreateInfo,
IPipelineState** ppPipelineState) virtual
Creates a new compute pipeline state object.
| Parameters | |
|---|---|
| PSOCreateInfo in | - Compute pipeline state create info, see Diligent:: |
| ppPipelineState out | - Address of the memory location where the pointer to the pipeline state interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateRayTracingPipelineState(const RayTracingPipelineStateCreateInfo& PSOCreateInfo,
IPipelineState** ppPipelineState) virtual
Creates a new ray tracing pipeline state object.
| Parameters | |
|---|---|
| PSOCreateInfo in | - Ray tracing pipeline state create info, see Diligent:: |
| ppPipelineState out | - Address of the memory location where the pointer to the pipeline state interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateFence(const FenceDesc& Desc,
IFence** ppFence) virtual
Creates a new fence object.
| Parameters | |
|---|---|
| Desc in | - Fence description, see Diligent:: |
| ppFence out | - Address of the memory location where the pointer to the fence interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateQuery(const QueryDesc& Desc,
IQuery** ppQuery) virtual
Creates a new query object.
| Parameters | |
|---|---|
| Desc in | - Query description, see Diligent:: |
| ppQuery out | - Address of the memory location where the pointer to the query interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateRenderPass(const RenderPassDesc& Desc,
IRenderPass** ppRenderPass) virtual
Creates a render pass object.
| Parameters | |
|---|---|
| Desc in | - Render pass description, see Diligent:: |
| ppRenderPass out | - Address of the memory location where the pointer to the render pass interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateFramebuffer(const FramebufferDesc& Desc,
IFramebuffer** ppFramebuffer) virtual
Creates a framebuffer object.
| Parameters | |
|---|---|
| Desc in | - Framebuffer description, see Diligent:: |
| ppFramebuffer out | - Address of the memory location where the pointer to the framebuffer interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateBLAS(const BottomLevelASDesc& Desc,
IBottomLevelAS** ppBLAS) virtual
Creates a bottom-level acceleration structure object (BLAS).
| Parameters | |
|---|---|
| Desc in | - BLAS description, see Diligent:: |
| ppBLAS out | - Address of the memory location where the pointer to the BLAS interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateTLAS(const TopLevelASDesc& Desc,
ITopLevelAS** ppTLAS) virtual
Creates a top-level acceleration structure object (TLAS).
| Parameters | |
|---|---|
| Desc in | - TLAS description, see Diligent:: |
| ppTLAS out | - Address of the memory location where the pointer to the TLAS interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreateSBT(const ShaderBindingTableDesc& Desc,
IShaderBindingTable** ppSBT) virtual
Creates a shader resource binding table object (SBT).
| Parameters | |
|---|---|
| Desc in | - SBT description, see Diligent:: |
| ppSBT out | - Address of the memory location where the pointer to the SBT interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
void METHOD() Diligent:: IRenderDevice:: CreatePipelineResourceSignature(const PipelineResourceSignatureDesc& Desc,
IPipelineResourceSignature** ppSignature) virtual
Creates a pipeline resource signature object.
| Parameters | |
|---|---|
| Desc in | - Resource signature description, see Diligent:: |
| ppSignature out | - Address of the memory location where the pointer to the pipeline resource signature interface will be stored. The function calls AddRef(), so that the new object will have one reference. |
const TextureFormatInfo&METHOD() Diligent:: IRenderDevice:: GetTextureFormatInfo(TEXTURE_ FORMAT TexFormat) virtual
Returns the basic texture format information.
| Parameters | |
|---|---|
| TexFormat in | - Texture format for which to provide the information |
| Returns | Const reference to the TextureFormatInfo structure containing the texture format description. |
See Diligent::
const TextureFormatInfoExt&METHOD() Diligent:: IRenderDevice:: GetTextureFormatInfoExt(TEXTURE_ FORMAT TexFormat) virtual
Returns the extended texture format information.
| Parameters | |
|---|---|
| TexFormat in | - Texture format for which to provide the information |
| Returns | Const reference to the TextureFormatInfoExt structure containing the extended texture format description. |
See Diligent::
void METHOD() Diligent:: IRenderDevice:: ReleaseStaleResources(bool ForceRelease = false) virtual
Purges device release queues and releases all stale resources. This method is automatically called by ISwapChain::
| Parameters | |
|---|---|
| ForceRelease in | - Forces release of all objects. Use this option with great care only if you are sure the resources are not in use by the GPU (such as when the device has just been idled). |
IEngineFactory*METHOD() Diligent:: IRenderDevice:: GetEngineFactory() const virtual
Returns engine factory this device was created from.