Diligent namespace
The library uses Direct3D-style math:
Unique identification structures.
Namespace for the OpenGL implementation of the graphics engine.
This file must be included after D3D11TypeDefinitions.h or D3D12TypeDefinitions.h.
Graphics engine namespace.
- Matrices are multiplied left to right in the order corresponding transforms are applied:
- WorldViewProj = World * View * Proj
- Vectors are row-vectors and multiplied by matrices as v * m:
- ClipPos = WorldPos * WorldViewProj
- Matrices are stored using row-major layout: m = {row0, row1, row2, row3}
- Note that GL-style math libraries use column-vectors and column-major matrix layout. As a result, matrices that perform similar transforms use exactly the same element order. However, matrix multiplication order is reversed: M1_D3D * M2_D3D = M2_GL * M1_GL
Diligent Engine shaders always use column-major matrices for the purposes of data storage. This means that if you use D3D-style math in shaders (ClipPos = mul(WorldPos, WorldViewProj)), you need to transpose the host-side matrix before writing it to GPU memory.
If you use GL-style math in shaders (ClipPos = mul(WorldViewProj, WorldPos)), you do not need to transpose the host-side matrix and should write it to GPU memory as is. Since the matrix rows will be written to the GPU matrix columns, this will have the effect of transposing the matrix. Since mul(WorldViewProj, WorldPos) == mul(WorldPos, transpose(WorldViewProj)), the results will be consistent with D3D case.
Classes
- struct APIInfo
- Diligent API Info. This tructure can be used to verify API compatibility.
- struct AttachmentReference
- Attachment reference description.
- class BasicFileStream
- Basic file stream implementation.
- struct BeginRenderPassAttribs
- BeginRenderPass command attributes.
- struct BindingTableVk
- This structure contains the data that can be used as input arguments for vkCmdTraceRaysKHR() command.
- struct BLASBoundingBoxDesc
- Defines bottom level acceleration structure axis-aligned bounding boxes description.
- struct BLASBuildBoundingBoxData
- AABB geometry data description.
- struct BLASBuildTriangleData
- Triangle geometry data description.
- struct BLASTriangleDesc
- Defines bottom level acceleration structure triangles description.
- struct BlendStateDesc
- Blend state description.
-
template<typename EngineImplTraits>class BottomLevelASBase
- Template class implementing base functionality of the bottom-level acceleration structure object.
- class BottomLevelASD3D12Impl
- Bottom-level acceleration structure object implementation in Direct3D12 backend.
- struct BottomLevelASDesc
- Bottom-level AS description.
- struct Box
- Box.
-
template<typename EngineImplTraits>class BufferBase
- Template class implementing base functionality of the buffer object.
- class BufferD3D11Impl
- Buffer object implementation in Direct3D11 backend.
- class BufferD3D12Impl
- Buffer object implementation in Direct3D12 backend.
- struct BufferData
- Describes the buffer initial data.
- struct BufferDesc
- Buffer description.
- struct BufferFormat
- Buffer format description.
- class BufferGLImpl
- Buffer object implementation in OpenGL backend.
- struct BufferSuballocatorCreateInfo
- Buffer suballocator create information.
- struct BufferToTextureCopyInfo
- Information required to perform a copy operation between a buffer and a texture.
-
template<typename EngineImplTraits>class BufferViewBase
- Template class implementing base functionality of the buffer view object.
- class BufferViewD3D11Impl
- Buffer view implementation in Direct3D11 backend.
- class BufferViewD3D12Impl
- Buffer view implementation in Direct3D12 backend.
- struct BufferViewDesc
- Buffer view description.
- class BufferViewGLImpl
- Buffer view implementation in OpenGL backend.
- class BufferViewVkImpl
- Buffer view implementation in Vulkan backend.
- class BufferVkImpl
- Buffer object implementation in Vulkan backend.
- struct BuildBLASAttribs
- This structure is used by IDeviceContext::
BuildBLAS(). - struct BuildTLASAttribs
- This structure is used by IDeviceContext::
BuildTLAS(). - class ComErrorDesc
- Helper class that provides description of a COM error.
-
template<typename EngineImplTraits>class CommandListBase
- Template class implementing base functionality of the command list object.
- class CommandListD3D11Impl
- Command list implementation in Direct3D11 backend.
- class CommandListD3D12Impl
- Command list implementation in Direct3D12 backend.
- class CommandListVkImpl
- Command list implementation in Vulkan backend.
- class CommandQueueD3D12Impl
- Implementation of the Diligent::
ICommandQueueD3D12 interface. - class CommandQueueVkImpl
- Implementation of the Diligent::
ICommandQueueVk interface. - struct ComputePipelineStateCreateInfo
- Compute pipeline state description.
- struct CopyBLASAttribs
- This structure is used by IDeviceContext::
CopyBLAS(). - struct CopyTextureAttribs
- Defines copy texture command attributes.
- struct CopyTLASAttribs
- This structure is used by IDeviceContext::
CopyTLAS(). - struct D3D11ResourceBindPoints
- Resource binding points in all shader stages.
- struct D3D11ResourceRangeCounters
- Shader resource counters for one specific resource range.
- class D3D12ResourceBase
- Base implementation of a D3D12 resource.
- class DataBlobImpl
- Base interface for a data blob.
- struct DepthStencilClearValue
- Defines optimized depth-stencil clear value.
- struct DepthStencilStateDesc
- Depth stencil state description.
- struct DeviceCaps
- Device capabilities.
-
template<typename EngineImplTraits>class DeviceContextBase
- Base implementation of the device context.
- class DeviceContextD3D11Impl
- Device context implementation in Direct3D11 backend.
- class DeviceContextD3D12Impl
- Device context implementation in Direct3D12 backend.
- class DeviceContextGLImpl
- Device context implementation in OpenGL backend.
-
template<typename EngineImplTraits>class DeviceContextNextGenBase
- Base implementation of the device context for next-generation backends.
- class DeviceContextVkImpl
- Device context implementation in Vulkan backend.
- struct DeviceFeatures
- Describes the device features.
- struct DeviceObjectAttribs
- Describes common device object attributes.
-
template<class BaseInterface, typename RenderDeviceImplType, typename ObjectDescType>class DeviceObjectBase
- Template class implementing base functionality of the device object.
- struct DeviceProperties
- Device properties.
- struct DispatchComputeAttribs
- Describes dispatch command arguments.
- struct DispatchComputeIndirectAttribs
- Describes dispatch command arguments.
- struct DisplayModeAttribs
- Display mode attributes.
- struct DrawAttribs
- Defines the draw command attributes.
- struct DrawIndexedAttribs
- Defines the indexed draw command attributes.
- struct DrawIndexedIndirectAttribs
- Defines the indexed indirect draw command attributes.
- struct DrawIndirectAttribs
- Defines the indirect draw command attributes.
- struct DrawMeshAttribs
- Defines the mesh draw command attributes.
- struct DrawMeshIndirectAttribs
- Defines the mesh indirect draw command attributes.
- struct DrawMeshIndirectCountAttribs
- Defines the mesh indirect draw count command attributes.
- class DurationQueryHelper
- Helper class to manage duration queries. One DurationQueryHelper instance must be used once per frame.
- class DynamicAtlasManager
- Dynamic 2D atlas manager.
- class DynamicBuffer
- Dynamically resizable buffer.
- class DynamicLinearAllocator
- Implementation of a linear allocator on fixed memory pages.
- class DynamicStaleResourceWrapper
- Helper class that wraps stale resources of different types.
- struct DynamicTextureAtlasCreateInfo
- Dynamic texture atlas create information.
- struct EngineCreateInfo
- Engine creation attibutes.
- struct EngineD3D11CreateInfo
- Attributes specific to D3D11 engine.
- struct EngineD3D12CreateInfo
- Attributes specific to D3D12 engine.
-
template<class BaseInterface>class EngineFactoryBase
- Template class implementing base functionality of the engine factory.
- class EngineFactoryD3D11Impl
- Engine factory for D3D11 implementation.
- class EngineFactoryD3D12Impl
- Engine factory for D3D12 implementation.
- class EngineFactoryOpenGLImpl
- Engine factory for OpenGL implementation.
- class EngineFactoryVkImpl
- Engine factory for Vk implementation.
- struct EngineGLCreateInfo
- Attributes of the OpenGL-based engine implementation.
- struct EngineMtlCreateInfo
- Attributes of the Metal-based engine implementation.
- struct EngineVkCreateInfo
- Attributes specific to Vulkan engine.
- class FastRand
- Fast random number generator.
- class FastRandInt
- Generates an integer random number in [Min, Max] range.
-
template<typename Type>class FastRandReal
- Generates a real random number in [Min, Max] range.
-
template<typename EngineImplTraits>class FenceBase
- Template class implementing base functionality of the fence object.
- class FenceD3D11Impl
- Fence implementation in Direct3D11 backend.
- class FenceD3D12Impl
- Fence implementation in Direct3D12 backend.
- struct FenceDesc
- Fence description.
- class FenceGLImpl
- Fence object implementation in OpenGL backend.
- class FenceVkImpl
- Fence implementation in Vulkan backend.
- class FixedBlockMemoryAllocator
- Memory allocator that allocates memory in a fixed-size chunks.
- class FixedLinearAllocator
- Implementation of a linear allocator on a fixed-size memory page.
-
template<typename EngineImplTraits>class FramebufferBase
- Template class implementing base functionality of the framebuffer object.
- class FramebufferD3D11Impl
- Render pass implementation in Direct3D11 backend.
- class FramebufferD3D12Impl
- Render pass implementation in Direct3D12 backend.
- struct FramebufferDesc
- Framebuffer description.
- class FramebufferGLImpl
- Framebuffer implementation in OpenGL backend.
- class FramebufferVkImpl
- Framebuffer implementation in Vulkan backend.
- struct FullScreenModeDesc
- Full screen mode description.
- struct GraphicsAdapterInfo
- Graphics adapter properties.
- struct GraphicsPipelineDesc
- Graphics pipeline state description.
- struct GraphicsPipelineStateCreateInfo
- Graphics pipeline state creation attributes.
- struct HashMapStringKey
- This helper structure is intended to facilitate using strings as a hash table key. It provides constructors that can make a copy of the source string or just keep a pointer to it, which enables searching in the hash using raw const Char* pointers.
- class HLSL2GLSLConverterImpl
- HLSL to GLSL shader source code converter implementation.
- class HLSL2GLSLConverterObject
- Implementation of the Diligent::
IHLSL2GLSLConverter interface. - struct HLSLShaderResourceDesc
- HLSL resource description.
- struct IBottomLevelAS
- Bottom-level AS interface.
- struct IBottomLevelASD3D12
- Exposes Direct3D12-specific functionality of a bottom-level acceleration structure object.
- struct IBottomLevelASVk
- Exposes Vulkan-specific functionality of a Bottom-level acceleration structure object.
- struct IBuffer
- Buffer interface.
- struct IBufferD3D11
- Exposes Direct3D11-specific functionality of a buffer object.
- struct IBufferD3D12
- Exposes Direct3D12-specific functionality of a buffer object.
- struct IBufferGL
- Exposes OpenGL-specific functionality of a buffer object.
- class IBufferMtl
- Exposes Metal-specific functionality of a buffer object.
- struct IBufferSuballocation
- Buffer suballocation.
- struct IBufferSuballocator
- Buffer suballocator.
- struct IBufferView
- Buffer view interface.
- struct IBufferViewD3D11
- Exposes Direct3D11-specific functionality of a buffer view object.
- struct IBufferViewD3D12
- Exposes Direct3D12-specific functionality of a buffer view object.
- struct IBufferViewGL
- Exposes OpenGL-specific functionality of a buffer view object.
- class IBufferViewMtl
- Exposes Metal-specific functionality of a buffer view object.
- struct IBufferViewVk
- Exposes Vulkan-specific functionality of a buffer view object.
- struct IBufferVk
- Exposes Vulkan-specific functionality of a buffer object.
- class ICommandList
- Command list interface.
- struct ICommandQueueD3D12
- Command queue interface.
- struct ICommandQueueVk
- Command queue interface.
- struct IDataBlob
- Base interface for a file stream.
- struct IDeviceContext
- Device context interface.
- struct IDeviceContextD3D11
- Exposes Direct3D11-specific functionality of a device context.
- struct IDeviceContextD3D12
- Exposes Direct3D12-specific functionality of a device context.
- struct IDeviceContextGL
- Exposes OpenGL-specific functionality of a device context.
- class IDeviceContextMtl
- Exposes Metal-specific functionality of a device context.
- struct IDeviceContextVk
- Exposes Vulkan-specific functionality of a device context.
- struct IDeviceObject
- Base interface for all objects created by the render device Diligent::
IRenderDevice. - class IDXCompiler
- DXC compiler interface.
- struct IDynamicTextureAtlas
- Dynamic texture atlas.
- struct IEngineFactory
- Engine factory base interface.
- struct IEngineFactoryD3D11
- Engine factory for Direct3D11 rendering backend.
- struct IEngineFactoryD3D12
- Engine factory for Direct3D12 rendering backend.
- struct IFence
- Fence interface.
- class IFenceD3D11
- Exposes Direct3D11-specific functionality of a fence object.
- struct IFenceD3D12
- Exposes Direct3D12-specific functionality of a fence object.
- struct IFenceGL
- Exposes OpenGL-specific functionality of a fence object.
- class IFenceMtl
- Exposes Metal-specific functionality of a fence object.
- struct IFenceVk
- Exposes Vulkan-specific functionality of a fence object.
- struct IFileStream
- Base interface for a file stream.
- class IFramebuffer
- Framebuffer interface.
- struct IFramebufferVk
- Exposes Vulkan-specific functionality of a Framebuffer object.
- struct IHLSL2GLSLConverter
- Interface to the buffer object implemented in OpenGL.
- struct IMemoryAllocator
- Base interface for a raw memory allocator.
- struct ImmutableSamplerDesc
- Immutable sampler description.
- struct InputLayoutDesc
- Layout description.
- struct InstanceMatrix
- Row-major matrix.
- struct INTERFACE_ID
- Unique interface identifier.
- struct IObject
- Base interface for all dynamic objects in the engine.
- struct IPipelineResourceSignature
- Pipeline resource signature interface.
- struct IPipelineState
- Pipeline state interface.
- struct IPipelineStateD3D11
- Exposes Direct3D11-specific functionality of a pipeline state object.
- struct IPipelineStateD3D12
- Exposes Direct3D12-specific functionality of a pipeline state object.
- struct IPipelineStateGL
- Exposes OpenGL-specific functionality of a pipeline state object.
- class IPipelineStateMtl
- Exposes Metal-specific functionality of a pipeline state object.
- struct IPipelineStateVk
- Exposes Vulkan-specific functionality of a pipeline state object.
- struct IQuery
- Query interface.
- struct IQueryD3D11
- Exposes Direct3D11-specific functionality of a Query object.
- struct IQueryD3D12
- Exposes Direct3D12-specific functionality of a Query object.
- struct IQueryGL
- Exposes OpenGL-specific functionality of a Query object.
- class IQueryMtl
- Exposes Metal-specific functionality of a Query object.
- struct IQueryVk
- Exposes Vulkan-specific functionality of a Query object.
- class IReferenceCounters
- Base interface for a reference counter object that stores the number of strong and weak references and the pointer to the object. It is necessary to separate reference counters from the object to support weak pointers.
- struct IRenderDevice
- Render device interface.
- 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 IRenderDeviceGLES
- Interface to the render device object implemented in OpenGLES.
- class IRenderDeviceMtl
- Exposes Metal-specific functionality of a render device.
- struct IRenderDeviceVk
- Exposes Vulkan-specific functionality of a render device.
- class IRenderPass
- Render pass interface.
- struct IRenderPassVk
- Exposes Vulkan-specific functionality of a RenderPass object.
- struct IResourceMapping
- Resouce mapping.
- struct ISampler
- Texture sampler interface.
- struct ISamplerD3D11
- Exposes Direct3D11-specific functionality of a sampler object.
- struct ISamplerD3D12
- Exposes Direct3D12-specific functionality of a sampler object.
- struct ISamplerGL
- Exposes OpenGL-specific functionality of a sampler object.
- class ISamplerMtl
- Exposes Metal-specific functionality of a sampler object.
- struct ISamplerVk
- Exposes Vulkan-specific functionality of a sampler object.
- struct IShader
- Shader interface.
- struct IShaderBindingTable
- Shader binding table interface.
- struct IShaderBindingTableD3D12
- Exposes Direct3D12-specific functionality of a shader binding table object.
- struct IShaderBindingTableVk
- Exposes Vulkan-specific functionality of a Shader binding table object.
- struct IShaderD3D
- Exposes Direct3D-specific functionality of a shader object.
- struct IShaderD3D11
- Exposes Direct3D11-specific functionality of a shader object.
- struct IShaderD3D12
- Exposes Direct3D12-specific functionality of a shader object.
- struct IShaderGL
- Exposes OpenGL-specific functionality of a shader object.
- class IShaderMtl
- Exposes Metal-specific functionality of a shader object.
- struct IShaderResourceBinding
- Shader resource binding interface.
- struct IShaderResourceBindingD3D11
- Exposes Direct3D11-specific functionality of a shader resource binding object.
- struct IShaderResourceBindingD3D12
- Exposes Direct3D12-specific functionality of a shader resource binding.
- struct IShaderResourceBindingGL
- Exposes OpenGL-specific functionality of a shader resource binding object.
- class IShaderResourceBindingMtl
- Exposes Metal-specific functionality of a shader resource binding object.
- struct IShaderResourceBindingVk
- Exposes Vulkan-specific functionality of a shader resource binding object.
- struct IShaderResourceVariable
- Shader resource variable.
- class IShaderResourceVariableD3D
- Interface to the Direct3D ShaderResourceVariable resource variable.
- struct IShaderSourceInputStreamFactory
- Shader source stream factory interface.
- class IShaderVk
- Exposes Vulkan-specific functionality of a shader object.
- struct ISwapChain
- Swap chain interface.
- struct ISwapChainD3D11
- Exposes Direct3D11-specific functionality of a swap chain.
- struct ISwapChainD3D12
- Exposes Direct3D12-specific functionality of a swap chain.
- struct ISwapChainGL
- Exposes OpenGL-specific functionality of a swap chain.
- class ISwapChainMtl
- Exposes Metal-specific functionality of a swap chain.
- struct ISwapChainVk
- Exposes Vulkan-specific functionality of a swap chain.
- struct ITexture
- Texture inteface.
- struct ITextureAtlasSuballocation
- Dynamic texture atlas suballocation.
- struct ITextureD3D11
- Exposes Direct3D11-specific functionality of a texture object.
- struct ITextureD3D12
- Exposes Direct3D12-specific functionality of a texture object.
- struct ITextureGL
- Exposes OpenGL-specific functionality of a texture object.
- class ITextureMtl
- Exposes Metal-specific functionality of a texture object.
- class ITextureUploader
- Asynchronous texture uplader.
- struct ITextureView
- Texture view interface.
- struct ITextureViewD3D11
- Exposes Direct3D11-specific functionality of a texture view object.
- struct ITextureViewD3D12
- Exposes Direct3D12-specific functionality of a texture view object.
- struct ITextureViewGL
- Exposes OpenGL-specific functionality of a texture view object.
- class ITextureViewMtl
- Exposes Metal-specific functionality of a texture view object.
- struct ITextureViewVk
- Exposes Vulkan-specific functionality of a texture view object.
- struct ITextureVk
- Exposes Vulkan-specific functionality of a texture object.
- struct ITopLevelAS
- Top-level AS interface.
- struct ITopLevelASD3D12
- Exposes Direct3D12-specific functionality of a top-level acceleration structure object.
- struct ITopLevelASVk
- Exposes Vulkan-specific functionality of a Top-level acceleration structure object.
- struct LayoutElement
- Description of a single element of the input layout.
- struct LinearTexFilterSampleInfo
- Linear texture filter sample info.
-
template<typename DataType, bool KeepStrongReferences = false>class MapHelper
- Facilitates resource mapping.
- class MemoryFileStream
- Memory file stream implementation.
- struct MipLevelProperties
- Describes the mip level properties.
-
template<typename BaseInterface>class ObjectBase
- Template class implementing base functionality for an object.
- struct OptimizedClearValue
- Defines optimized clear value.
- class PipelineLayoutVk
- Implementation of the Diligent::
PipelineLayoutVk class. - struct PipelineResourceDesc
- Pipeline resource description.
- struct PipelineResourceLayoutDesc
- Pipeline layout description.
-
template<typename EngineImplTraits>class PipelineResourceSignatureBase
- Template class implementing base functionality of the pipeline resource signature object.
- class PipelineResourceSignatureD3D11Impl
- Implementation of the Diligent::
PipelineResourceSignatureD3D11Impl class. - class PipelineResourceSignatureD3D12Impl
- Implementation of the Diligent::
PipelineResourceSignatureD3D12Impl class. - struct PipelineResourceSignatureDesc
- Pipeline resource signature description.
- class PipelineResourceSignatureGLImpl
- Implementation of the Diligent::
PipelineResourceSignatureGLImpl class. - class PipelineResourceSignatureVkImpl
- Implementation of the Diligent::
PipelineResourceSignatureVkImpl class. -
template<typename EngineImplTraits>class PipelineStateBase
- Template class implementing base functionality of the pipeline state object.
- struct PipelineStateCreateInfo
- Pipeline state creation attributes.
- class PipelineStateD3D11Impl
- Pipeline state object implementation in Direct3D11 backend.
- class PipelineStateD3D12Impl
- Pipeline state object implementation in Direct3D12 backend.
- struct PipelineStateDesc
- Pipeline state description.
- class PipelineStateGLImpl
- Pipeline state object implementation in OpenGL backend.
- class PipelineStateVkImpl
- Pipeline state object implementation in Vulkan backend.
-
template<typename EngineImplTraits>class QueryBase
- Template class implementing base functionality of the query object.
- class QueryD3D11Impl
- Query implementation in Direct3D11 backend.
- class QueryD3D12Impl
- Query implementation in Direct3D12 backend.
- struct QueryDataBinaryOcclusion
- Binary occlusion query data. This structure is filled by IQuery::
GetData() for Diligent:: QUERY_TYPE_BINARY_OCCLUSION query type. - struct QueryDataDuration
- Duration query data. This structure is filled by IQuery::
GetData() for Diligent:: QUERY_TYPE_DURATION query type. - struct QueryDataOcclusion
- Occlusion query data. This structure is filled by IQuery::
GetData() for Diligent:: QUERY_TYPE_OCCLUSION query type. - struct QueryDataPipelineStatistics
- Pipeline statistics query data. This structure is filled by IQuery::
GetData() for Diligent:: QUERY_TYPE_PIPELINE_STATISTICS query type. - struct QueryDataTimestamp
- Timestamp query data. This structure is filled by IQuery::
GetData() for Diligent:: QUERY_TYPE_TIMESTAMP query type. - struct QueryDesc
- Query description.
- class QueryGLImpl
- Query object implementation in OpenGL backend.
- class QueryVkImpl
- Query implementation in Vulkan backend.
- struct RasterizerStateDesc
- Rasterizer state description.
- struct RayTracingGeneralShaderGroup
- Ray tracing general shader group description.
- struct RayTracingPipelineDesc
- This structure describes the ray tracing pipeline state and is part of the RayTracingPipelineStateCreateInfo structure.
- struct RayTracingPipelineStateCreateInfo
- Ray tracing pipeline state description.
- struct RayTracingProceduralHitShaderGroup
- Ray tracing procedural hit shader group description.
- struct RayTracingTriangleHitShaderGroup
- Ray tracing triangle hit shader group description.
- struct Rect
- Describes the rectangle.
-
template<typename T>class RefCntAutoPtr
- Template class that implements reference counting.
-
template<typename T>class RefCntWeakPtr
- Implementation of weak pointers.
-
template<typename Base>class RefCountedObject
- Base class for all reference counting objects.
-
template<typename EngineImplTraits>class RenderDeviceBase
- Base implementation of a render device.
- class RenderDeviceD3D11Impl
- Render device implementation in Direct3D11 backend.
- class RenderDeviceD3D12Impl
- Render device implementation in Direct3D12 backend.
-
template<typename EngineImplTraits>class RenderDeviceD3DBase
- Base implementation of a D3D render device.
- class RenderDeviceGLImpl
- Render device implementation in OpenGL backend.
-
template<class TBase, typename CommandQueueType>class RenderDeviceNextGenBase
- Base implementation of the render device for next-generation backends.
- class RenderDeviceVkImpl
- Render device implementation in Vulkan backend.
- struct RenderPassAttachmentDesc
- Render pass attachment description.
-
template<typename EngineImplTraits>class RenderPassBase
- Template class implementing base functionality of the render pass object.
- class RenderPassD3D11Impl
- Render pass implementation in Direct3D11 backend.
- class RenderPassD3D12Impl
- Render pass implementation in Direct3D12 backend.
- struct RenderPassDesc
- Render pass description.
- class RenderPassGLImpl
- Render pass implementation in OpenGL backend.
- class RenderPassVkImpl
- Render pass implementation in Vulkan backend.
- struct RenderTargetBlendDesc
- Describes a blend state for a single render target.
- struct ResolveTextureSubresourceAttribs
- Describes multi-sampled texture resolve command arguments.
- struct ResourceMappingDesc
- Resource mapping description.
- struct ResourceMappingEntry
- Describes the resourse mapping object entry.
- class ResourceMappingImpl
- Implementation of the resource mapping.
-
template<typename ResourceWrapperType>class ResourceReleaseQueue
- Facilitates safe resource destruction in D3D12 and Vulkan.
- class RingBuffer
- Implementation of a ring buffer. The class is not thread-safe.
- class RootParamsManager
- Container for root parameters.
- class RootSignatureCacheD3D12
- Root signature cache that deduplicates RootSignatureD3D12 objects.
- class RootSignatureD3D12
- Implementation of the Diligent::RootSignature class.
- struct SampleDesc
- Sample description.
-
template<typename EngineImplTraits>class SamplerBase
- Template class implementing base functionality of the sampler object.
- struct SamplerCaps
- Texture sampler capabilities.
- class SamplerD3D11Impl
- Sampler implementation in Direct3D11 backend.
- class SamplerD3D12Impl
- Sampler object implementation in Direct3D12 backend.
- struct SamplerDesc
- Sampler description.
- class SamplerGLImpl
- Sampler implementation in OpenGL backend.
- class SamplerVkImpl
- Sampler object object implementation in Vulkan backend.
- class ScopedQueryHelper
- Helper class to manage scoped queries. One scoped query instance must be used once per frame.
- struct ScratchBufferSizes
- Defines the scratch buffer info for acceleration structure.
-
template<typename EngineImplTraits>class ShaderBase
- Template class implementing base functionality of the shader object.
-
template<typename EngineImplTraits>class ShaderBindingTableBase
- Template class implementing base functionality of the shader binding table object.
- class ShaderBindingTableD3D12Impl
- Shader binding table object implementation in Direct3D12 backend.
- struct ShaderBindingTableDesc
- Shader binding table description.
- struct ShaderCreateInfo
- Shader creation attributes.
- class ShaderD3D11Impl
- Shader implementation in Direct3D11 backend.
- class ShaderD3D12Impl
- Implementation of a shader object in Direct3D12 backend.
- class ShaderD3DBase
- Base implementation of a D3D shader.
- struct ShaderDesc
- Shader description.
- class ShaderGLImpl
- Shader object implementation in OpenGL backend.
-
template<typename EngineImplTraits>class ShaderResourceBindingBase
- Template class implementing base functionality of the shader resource binding.
- class ShaderResourceBindingD3D11Impl
- Implementation of shader resource binding object in Direct3D11 backend.
- class ShaderResourceBindingD3D12Impl
- Implementation of the Diligent::
IShaderResourceBindingD3D12 interface. - class ShaderResourceBindingGLImpl
- Shader resource binding object implementation in OpenGL backend.
- class ShaderResourceBindingVkImpl
- Implementation of the Diligent::
IShaderResourceBindingVk interface. - class ShaderResourceCacheD3D11
- The class implements a cache that holds resources bound to all shader stages.
- class ShaderResourceCacheGL
- The class implements a cache that holds resources bound to a specific GL program.
- struct ShaderResourceDesc
- Shader resource description.
- class ShaderResources
- Diligent::
ShaderResources class. - class ShaderResourcesD3D11
- Diligent::
ShaderResourcesD3D11 class. - class ShaderResourcesD3D12
- Diligent::
ShaderResourcesD3D12 class. - struct ShaderResourceVariableDesc
- Describes shader variable.
-
template<typename ThisImplType, typename VarManagerType, typename ResourceVariableBaseInterface = IShaderResourceVariable>struct ShaderVariableBase
- Base implementation of a shader variable.
- class ShaderVariableManagerD3D11
- Diligent::
ShaderVariableManagerD3D11 class. - struct ShaderVersion
- Shader version.
- class ShaderVkImpl
- Shader object object implementation in Vulkan backend.
- class SPIRVShaderResources
- Diligent::
SPIRVShaderResources class. -
template<typename ResourceDescType>class StateObjectsRegistry
- Template class implementing state object registry.
- struct StateTransitionDesc
- Resource state transition barrier description.
-
template<typename ResourceType>class StaticStaleResourceWrapper
- Helper class that wraps stale resources of the same type.
- struct StencilOpDesc
- Describes stencil operations that are performed based on the results of depth test.
- class StringDataBlobImpl
- Base interface for a file stream.
- class StringPool
- Implementation of a simple fixed-size string pool.
- struct SubpassDependencyDesc
- Subpass dependency description.
- struct SubpassDesc
- Render pass subpass decription.
-
template<class BaseInterface>class SwapChainBase
- Base implementation of the swap chain.
- class SwapChainD3D11Impl
- Swap chain implementation in Direct3D11 backend.
- class SwapChainD3D12Impl
- Swap chain implementation in Direct3D12 backend.
-
template<class BaseInterface, typename DXGISwapChainType>class SwapChainD3DBase
- Base implementation of a D3D swap chain.
- struct SwapChainDesc
- Swap chain description.
-
template<class BaseInterface>class SwapChainGLBase
- Base implementation of a swap chain for OpenGL.
- class SwapChainGLImpl
- Swap chain implementation in OpenGL backend.
- class SwapChainGLIOS
- Implementation of the Diligent::
ISwapChainGL interface on IOS. - class SwapChainVkImpl
- Swap chain implementation in Vulkan backend.
- class Texture1D_D3D11
- Implementation of a 1D texture in Direct3D11 backend.
- class Texture1D_GL
- 1D texture implementation in OpenGL backend.
- class Texture1DArray_GL
- 1D texture array implementation in OpenGL backend.
- class Texture2D_D3D11
- Implementation of a 2D texture in Direct3D11 backend.
- class Texture2D_GL
- 2D texture implementation in OpenGL backend.
- class Texture2DArray_GL
- 2D texture array implementation in OpenGL backend.
- class Texture3D_D3D11
- Implementation of a 3D texture in Direct3D11 backend.
- class Texture3D_GL
- 3D texture implementation in OpenGL backend.
-
template<typename EngineImplTraits>class TextureBase
- Base implementation of the ITexture interface.
- class TextureBaseD3D11
- Base implementation of a texture object in Direct3D11 backend.
- class TextureBaseGL
- Base implementation of a texture object in OpenGL backend.
- struct TextureCaps
- Texture capabilities.
- class TextureCube_GL
- Cube texture implementation in OpenGL backend.
- class TextureCubeArray_GL
- Cube array texture implementation in OpenGL backend.
- class TextureD3D12Impl
- Implementation of a texture object in Direct3D12 backend.
- struct TextureData
- Describes the initial data to store in the texture.
- struct TextureDesc
- Texture description.
- struct TextureFormatAttribs
- Describes invariant texture format attributes. These attributes are intrinsic to the texture format itself and do not depend on the format support.
- struct TextureFormatInfo
- Basic texture format description.
- struct TextureFormatInfoExt
- Extended texture format information.
- struct TextureSubResData
- Describes data for one subresource.
- struct TextureUploaderDesc
- Texture uploader description.
- struct TextureUploaderStats
- Texture uploader statistics.
-
template<typename EngineImplTraits>class TextureViewBase
- Template class implementing base functionality of the texture view interface.
- class TextureViewD3D11Impl
- Texture view implementation in Direct3D11 backend.
- class TextureViewD3D12Impl
- Texture view object implementation in Direct3D12 backend.
- struct TextureViewDesc
- Texture view description.
- class TextureViewGLImpl
- Texture view implementation in OpenGL backend.
- class TextureViewVkImpl
- Texture view implementation in Vulkan backend.
- class TextureVkImpl
- Texture object implementation in Vulkan backend.
- struct TLASBuildInfo
- Defines TLAS state that was used in the last build.
- struct TLASBuildInstanceData
- This structure is used by BuildTLASAttribs.
- struct TLASInstanceDesc
- Top-level AS instance description.
-
template<typename EngineImplTraits>class TopLevelASBase
- Template class implementing base functionality of the top-level acceleration structure object.
- class TopLevelASD3D12Impl
- Top-level acceleration structure object implementation in Direct3D12 backend.
- struct TopLevelASDesc
- Top-level AS description.
- struct TraceRaysAttribs
- This structure is used by IDeviceContext::
TraceRays(). - struct TraceRaysIndirectAttribs
- This structure is used by IDeviceContext::
TraceRaysIndirect(). - struct UpdateIndirectRTBufferAttribs
- This structure is used by IDeviceContext::
UpdateSBT(). - struct UploadBufferDesc
- Upload buffer description.
-
template<VALUE_struct VALUE_TYPE2CType
TYPE ValType> - Template structure to convert VALUE_TYPE enumeration into C-type.
-
template<>struct VALUE_TYPE2CType<VT_FLOAT16>
- VALUE_TYPE2CType<> template specialization for half-precision 16-bit floating-point value type.
-
template<>struct VALUE_TYPE2CType<VT_FLOAT32>
- VALUE_TYPE2CType<> template specialization for full-precision 32-bit floating-point value type.
-
template<>struct VALUE_TYPE2CType<VT_INT16>
- VALUE_TYPE2CType<> template specialization for 16-bit integer value type.
-
template<>struct VALUE_TYPE2CType<VT_INT32>
- VALUE_TYPE2CType<> template specialization for 32-bit integer value type.
-
template<>struct VALUE_TYPE2CType<VT_INT8>
- VALUE_TYPE2CType<> template specialization for 8-bit integer value type.
-
template<>struct VALUE_TYPE2CType<VT_UINT16>
- VALUE_TYPE2CType<> template specialization for 16-bit unsigned-integer value type.
-
template<>struct VALUE_TYPE2CType<VT_UINT32>
- VALUE_TYPE2CType<> template specialization for 32-bit unsigned-integer value type.
-
template<>struct VALUE_TYPE2CType<VT_UINT8>
- VALUE_TYPE2CType<> template specialization for 8-bit unsigned-integer value type.
-
template<typename BufferImplType>struct VertexStreamInfo
- Describes input vertex stream.
- struct Viewport
- Describes the viewport.
- struct VulkanDescriptorPoolSize
- Descriptor pool size.
- struct WaveOpProperties
- Wave operation properties.
- struct WriteBLASCompactedSizeAttribs
- This structure is used by IDeviceContext::
WriteBLASCompactedSize(). - struct WriteTLASCompactedSizeAttribs
- This structure is used by IDeviceContext::
WriteTLASCompactedSize().
Enums
- enum class ResourceCacheContentType: Uint8 { Signature, SRB }
- The type of the content that is stored in the shader resource cache.
- enum BLEND_FACTOR: Int8 { BLEND_FACTOR_UNDEFINED = 0, BLEND_FACTOR_ZERO, BLEND_FACTOR_ONE, BLEND_FACTOR_SRC_COLOR, BLEND_FACTOR_INV_SRC_COLOR, BLEND_FACTOR_SRC_ALPHA, BLEND_FACTOR_INV_SRC_ALPHA, BLEND_FACTOR_DEST_ALPHA, BLEND_FACTOR_INV_DEST_ALPHA, BLEND_FACTOR_DEST_COLOR, BLEND_FACTOR_INV_DEST_COLOR, BLEND_FACTOR_SRC_ALPHA_SAT, BLEND_FACTOR_BLEND_FACTOR, BLEND_FACTOR_INV_BLEND_FACTOR, BLEND_FACTOR_SRC1_COLOR, BLEND_FACTOR_INV_SRC1_COLOR, BLEND_FACTOR_SRC1_ALPHA, BLEND_FACTOR_INV_SRC1_ALPHA, BLEND_FACTOR_NUM_FACTORS }
- Blend factors.
- enum BLEND_OPERATION: Int8 { BLEND_OPERATION_UNDEFINED = 0, BLEND_OPERATION_ADD, BLEND_OPERATION_SUBTRACT, BLEND_OPERATION_REV_SUBTRACT, BLEND_OPERATION_MIN, BLEND_OPERATION_MAX, BLEND_OPERATION_NUM_OPERATIONS }
- Blending operation.
- enum COLOR_MASK: Int8 { COLOR_MASK_NONE = 0, COLOR_MASK_RED = 1, COLOR_MASK_GREEN = 2, COLOR_MASK_BLUE = 4, COLOR_MASK_ALPHA = 8, COLOR_MASK_ALL = (((COLOR_MASK_RED | COLOR_MASK_GREEN) | COLOR_MASK_BLUE) | COLOR_MASK_ALPHA) }
- Color component write flags.
- enum LOGIC_OPERATION: Int8 { LOGIC_OP_CLEAR = 0, LOGIC_OP_SET, LOGIC_OP_COPY, LOGIC_OP_COPY_INVERTED, LOGIC_OP_NOOP, LOGIC_OP_INVERT, LOGIC_OP_AND, LOGIC_OP_NAND, LOGIC_OP_OR, LOGIC_OP_NOR, LOGIC_OP_XOR, LOGIC_OP_EQUIV, LOGIC_OP_AND_REVERSE, LOGIC_OP_AND_INVERTED, LOGIC_OP_OR_REVERSE, LOGIC_OP_OR_INVERTED, LOGIC_OP_NUM_OPERATIONS }
- Logic operation.
- enum RAYTRACING_BUILD_AS_FLAGS: Uint8 { RAYTRACING_BUILD_AS_NONE = 0, RAYTRACING_BUILD_AS_ALLOW_UPDATE = 0x01, RAYTRACING_BUILD_AS_ALLOW_COMPACTION = 0x02, RAYTRACING_BUILD_AS_PREFER_FAST_TRACE = 0x04, RAYTRACING_BUILD_AS_PREFER_FAST_BUILD = 0x08, RAYTRACING_BUILD_AS_LOW_MEMORY = 0x10, RAYTRACING_BUILD_AS_FLAGS_LAST = RAYTRACING_BUILD_AS_LOW_MEMORY }
- Defines acceleration structures build flags.
- enum BUFFER_MODE: Uint8 { BUFFER_MODE_UNDEFINED = 0, BUFFER_MODE_FORMATTED, BUFFER_MODE_STRUCTURED, BUFFER_MODE_RAW, BUFFER_MODE_NUM_MODES }
- Describes the buffer access mode.
- enum STENCIL_OP: Int8 { STENCIL_OP_UNDEFINED = 0, STENCIL_OP_KEEP = 1, STENCIL_OP_ZERO = 2, STENCIL_OP_REPLACE = 3, STENCIL_OP_INCR_SAT = 4, STENCIL_OP_DECR_SAT = 5, STENCIL_OP_INVERT = 6, STENCIL_OP_INCR_WRAP = 7, STENCIL_OP_DECR_WRAP = 8, STENCIL_OP_NUM_OPS }
- Stencil operation.
- enum DRAW_FLAGS: Uint8 { DRAW_FLAG_NONE = 0x00, DRAW_FLAG_VERIFY_STATES = 0x01, DRAW_FLAG_VERIFY_DRAW_ATTRIBS = 0x02, DRAW_FLAG_VERIFY_RENDER_TARGETS = 0x04, DRAW_FLAG_VERIFY_ALL = DRAW_FLAG_VERIFY_STATES | DRAW_FLAG_VERIFY_DRAW_ATTRIBS | DRAW_FLAG_VERIFY_RENDER_TARGETS, DRAW_FLAG_DYNAMIC_RESOURCE_BUFFERS_INTACT = 0x08 }
- Draw command flags.
- enum RESOURCE_STATE_TRANSITION_MODE: Uint8 { RESOURCE_STATE_TRANSITION_MODE_NONE = 0, RESOURCE_STATE_TRANSITION_MODE_TRANSITION, RESOURCE_STATE_TRANSITION_MODE_VERIFY }
- Defines resource state transition mode performed by various commands.
- enum CLEAR_DEPTH_STENCIL_FLAGS: Uint32 { CLEAR_DEPTH_FLAG_NONE = 0x00, CLEAR_DEPTH_FLAG = 0x01, CLEAR_STENCIL_FLAG = 0x02 }
- Defines which parts of the depth-stencil buffer to clear.
- enum SET_VERTEX_BUFFERS_FLAGS: Uint8 { SET_VERTEX_BUFFERS_FLAG_NONE = 0x00, SET_VERTEX_BUFFERS_FLAG_RESET = 0x01 }
- Defines allowed flags for IDeviceContext::
SetVertexBuffers() function. - enum RAYTRACING_INSTANCE_FLAGS: Uint8 { RAYTRACING_INSTANCE_NONE = 0, RAYTRACING_INSTANCE_TRIANGLE_FACING_CULL_DISABLE = 0x01, RAYTRACING_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x02, RAYTRACING_INSTANCE_FORCE_OPAQUE = 0x04, RAYTRACING_INSTANCE_FORCE_NO_OPAQUE = 0x08, RAYTRACING_INSTANCE_FLAGS_LAST = RAYTRACING_INSTANCE_FORCE_NO_OPAQUE }
- TLAS instance flags that are used in IDeviceContext::
BuildTLAS(). - enum COPY_AS_MODE: Uint8 { COPY_AS_MODE_CLONE = 0, COPY_AS_MODE_COMPACT, COPY_AS_MODE_LAST = COPY_AS_MODE_COMPACT }
- Defines acceleration structure copy mode.
- enum RAYTRACING_GEOMETRY_FLAGS: Uint8 { RAYTRACING_GEOMETRY_FLAG_NONE = 0, RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x01, RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANY_HIT_INVOCATION = 0x02, RAYTRACING_GEOMETRY_FLAGS_LAST = RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANY_HIT_INVOCATION }
- Defines geometry flags for ray tracing.
- enum VALUE_TYPE: Uint8 { VT_UNDEFINED = 0, VT_INT8, VT_INT16, VT_INT32, VT_UINT8, VT_UINT16, VT_UINT32, VT_FLOAT16, VT_FLOAT32, VT_NUM_TYPES }
- Value type.
- enum SHADER_TYPE: Uint32 { SHADER_TYPE_UNKNOWN = 0x0000, SHADER_TYPE_VERTEX = 0x0001, SHADER_TYPE_PIXEL = 0x0002, SHADER_TYPE_GEOMETRY = 0x0004, SHADER_TYPE_HULL = 0x0008, SHADER_TYPE_DOMAIN = 0x0010, SHADER_TYPE_COMPUTE = 0x0020, SHADER_TYPE_AMPLIFICATION = 0x0040, SHADER_TYPE_MESH = 0x0080, SHADER_TYPE_RAY_GEN = 0x0100, SHADER_TYPE_RAY_MISS = 0x0200, SHADER_TYPE_RAY_CLOSEST_HIT = 0x0400, SHADER_TYPE_RAY_ANY_HIT = 0x0800, SHADER_TYPE_RAY_INTERSECTION = 0x1000, SHADER_TYPE_CALLABLE = 0x2000, SHADER_TYPE_LAST = SHADER_TYPE_CALLABLE, SHADER_TYPE_ALL_GRAPHICS = SHADER_TYPE_VERTEX | SHADER_TYPE_PIXEL | SHADER_TYPE_GEOMETRY | SHADER_TYPE_HULL | SHADER_TYPE_DOMAIN, SHADER_TYPE_ALL_MESH = SHADER_TYPE_AMPLIFICATION | SHADER_TYPE_MESH | SHADER_TYPE_PIXEL, SHADER_TYPE_ALL_RAY_TRACING = SHADER_TYPE_RAY_GEN | SHADER_TYPE_RAY_MISS | SHADER_TYPE_RAY_CLOSEST_HIT | SHADER_TYPE_RAY_ANY_HIT | SHADER_TYPE_RAY_INTERSECTION | SHADER_TYPE_CALLABLE }
- Describes the shader type.
- enum BIND_FLAGS: Uint32 { BIND_NONE = 0x0, BIND_VERTEX_BUFFER = 0x1, BIND_INDEX_BUFFER = 0x2, BIND_UNIFORM_BUFFER = 0x4, BIND_SHADER_RESOURCE = 0x8, BIND_STREAM_OUTPUT = 0x10, BIND_RENDER_TARGET = 0x20, BIND_DEPTH_STENCIL = 0x40, BIND_UNORDERED_ACCESS = 0x80, BIND_INDIRECT_DRAW_ARGS = 0x100, BIND_INPUT_ATTACHMENT = 0x200, BIND_RAY_TRACING = 0x400, BIND_FLAGS_LAST = 0x400 }
- Resource binding flags.
- enum USAGE: Uint8 { USAGE_IMMUTABLE = 0, USAGE_DEFAULT, USAGE_DYNAMIC, USAGE_STAGING, USAGE_UNIFIED, USAGE_NUM_USAGES }
- Resource usage.
- enum CPU_ACCESS_FLAGS: Uint8 { CPU_ACCESS_NONE = 0x00, CPU_ACCESS_READ = 0x01, CPU_ACCESS_WRITE = 0x02 }
- Allowed CPU access mode flags when mapping a resource.
- enum MAP_TYPE: Uint8 { MAP_READ = 0x01, MAP_WRITE = 0x02, MAP_READ_WRITE = 0x03 }
- Resource mapping type.
- enum MAP_FLAGS: Uint8 { MAP_FLAG_NONE = 0x000, MAP_FLAG_DO_NOT_WAIT = 0x001, MAP_FLAG_DISCARD = 0x002, MAP_FLAG_NO_OVERWRITE = 0x004 }
- Special map flags.
- enum RESOURCE_DIMENSION: Uint8 { RESOURCE_DIM_UNDEFINED = 0, RESOURCE_DIM_BUFFER, RESOURCE_DIM_TEX_1D, RESOURCE_DIM_TEX_1D_ARRAY, RESOURCE_DIM_TEX_2D, RESOURCE_DIM_TEX_2D_ARRAY, RESOURCE_DIM_TEX_3D, RESOURCE_DIM_TEX_CUBE, RESOURCE_DIM_TEX_CUBE_ARRAY, RESOURCE_DIM_NUM_DIMENSIONS }
- Describes resource dimension.
- enum TEXTURE_VIEW_TYPE: Uint8 { TEXTURE_VIEW_UNDEFINED = 0, TEXTURE_VIEW_SHADER_RESOURCE, TEXTURE_VIEW_RENDER_TARGET, TEXTURE_VIEW_DEPTH_STENCIL, TEXTURE_VIEW_UNORDERED_ACCESS, TEXTURE_VIEW_NUM_VIEWS }
- Texture view type.
- enum BUFFER_VIEW_TYPE: Uint8 { BUFFER_VIEW_UNDEFINED = 0, BUFFER_VIEW_SHADER_RESOURCE, BUFFER_VIEW_UNORDERED_ACCESS, BUFFER_VIEW_NUM_VIEWS }
- Buffer view type.
- enum TEXTURE_FORMAT: Uint16 { TEX_FORMAT_UNKNOWN = 0, TEX_FORMAT_RGBA32_TYPELESS, TEX_FORMAT_RGBA32_FLOAT, TEX_FORMAT_RGBA32_UINT, TEX_FORMAT_RGBA32_SINT, TEX_FORMAT_RGB32_TYPELESS, TEX_FORMAT_RGB32_FLOAT, TEX_FORMAT_RGB32_UINT, TEX_FORMAT_RGB32_SINT, TEX_FORMAT_RGBA16_TYPELESS, TEX_FORMAT_RGBA16_FLOAT, TEX_FORMAT_RGBA16_UNORM, TEX_FORMAT_RGBA16_UINT, TEX_FORMAT_RGBA16_SNORM, TEX_FORMAT_RGBA16_SINT, TEX_FORMAT_RG32_TYPELESS, TEX_FORMAT_RG32_FLOAT, TEX_FORMAT_RG32_UINT, TEX_FORMAT_RG32_SINT, TEX_FORMAT_R32G8X24_TYPELESS, TEX_FORMAT_D32_FLOAT_S8X24_UINT, TEX_FORMAT_R32_FLOAT_X8X24_TYPELESS, TEX_FORMAT_X32_TYPELESS_G8X24_UINT, TEX_FORMAT_RGB10A2_TYPELESS, TEX_FORMAT_RGB10A2_UNORM, TEX_FORMAT_RGB10A2_UINT, TEX_FORMAT_R11G11B10_FLOAT, TEX_FORMAT_RGBA8_TYPELESS, TEX_FORMAT_RGBA8_UNORM, TEX_FORMAT_RGBA8_UNORM_SRGB, TEX_FORMAT_RGBA8_UINT, TEX_FORMAT_RGBA8_SNORM, TEX_FORMAT_RGBA8_SINT, TEX_FORMAT_RG16_TYPELESS, TEX_FORMAT_RG16_FLOAT, TEX_FORMAT_RG16_UNORM, TEX_FORMAT_RG16_UINT, TEX_FORMAT_RG16_SNORM, TEX_FORMAT_RG16_SINT, TEX_FORMAT_R32_TYPELESS, TEX_FORMAT_D32_FLOAT, TEX_FORMAT_R32_FLOAT, TEX_FORMAT_R32_UINT, TEX_FORMAT_R32_SINT, TEX_FORMAT_R24G8_TYPELESS, TEX_FORMAT_D24_UNORM_S8_UINT, TEX_FORMAT_R24_UNORM_X8_TYPELESS, TEX_FORMAT_X24_TYPELESS_G8_UINT, TEX_FORMAT_RG8_TYPELESS, TEX_FORMAT_RG8_UNORM, TEX_FORMAT_RG8_UINT, TEX_FORMAT_RG8_SNORM, TEX_FORMAT_RG8_SINT, TEX_FORMAT_R16_TYPELESS, TEX_FORMAT_R16_FLOAT, TEX_FORMAT_D16_UNORM, TEX_FORMAT_R16_UNORM, TEX_FORMAT_R16_UINT, TEX_FORMAT_R16_SNORM, TEX_FORMAT_R16_SINT, TEX_FORMAT_R8_TYPELESS, TEX_FORMAT_R8_UNORM, TEX_FORMAT_R8_UINT, TEX_FORMAT_R8_SNORM, TEX_FORMAT_R8_SINT, TEX_FORMAT_A8_UNORM, TEX_FORMAT_R1_UNORM, TEX_FORMAT_RGB9E5_SHAREDEXP, TEX_FORMAT_RG8_B8G8_UNORM, TEX_FORMAT_G8R8_G8B8_UNORM, TEX_FORMAT_BC1_TYPELESS, TEX_FORMAT_BC1_UNORM, TEX_FORMAT_BC1_UNORM_SRGB, TEX_FORMAT_BC2_TYPELESS, TEX_FORMAT_BC2_UNORM, TEX_FORMAT_BC2_UNORM_SRGB, TEX_FORMAT_BC3_TYPELESS, TEX_FORMAT_BC3_UNORM, TEX_FORMAT_BC3_UNORM_SRGB, TEX_FORMAT_BC4_TYPELESS, TEX_FORMAT_BC4_UNORM, TEX_FORMAT_BC4_SNORM, TEX_FORMAT_BC5_TYPELESS, TEX_FORMAT_BC5_UNORM, TEX_FORMAT_BC5_SNORM, TEX_FORMAT_B5G6R5_UNORM, TEX_FORMAT_B5G5R5A1_UNORM, TEX_FORMAT_BGRA8_UNORM, TEX_FORMAT_BGRX8_UNORM, TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM, TEX_FORMAT_BGRA8_TYPELESS, TEX_FORMAT_BGRA8_UNORM_SRGB, TEX_FORMAT_BGRX8_TYPELESS, TEX_FORMAT_BGRX8_UNORM_SRGB, TEX_FORMAT_BC6H_TYPELESS, TEX_FORMAT_BC6H_UF16, TEX_FORMAT_BC6H_SF16, TEX_FORMAT_BC7_TYPELESS, TEX_FORMAT_BC7_UNORM, TEX_FORMAT_BC7_UNORM_SRGB, TEX_FORMAT_NUM_FORMATS }
- Texture formats.
- enum FILTER_TYPE: Uint8 { FILTER_TYPE_UNKNOWN = 0, FILTER_TYPE_POINT, FILTER_TYPE_LINEAR, FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_COMPARISON_POINT, FILTER_TYPE_COMPARISON_LINEAR, FILTER_TYPE_COMPARISON_ANISOTROPIC, FILTER_TYPE_MINIMUM_POINT, FILTER_TYPE_MINIMUM_LINEAR, FILTER_TYPE_MINIMUM_ANISOTROPIC, FILTER_TYPE_MAXIMUM_POINT, FILTER_TYPE_MAXIMUM_LINEAR, FILTER_TYPE_MAXIMUM_ANISOTROPIC, FILTER_TYPE_NUM_FILTERS }
- Filter type.
- enum TEXTURE_ADDRESS_MODE: Uint8 { TEXTURE_ADDRESS_UNKNOWN = 0, TEXTURE_ADDRESS_WRAP = 1, TEXTURE_ADDRESS_MIRROR = 2, TEXTURE_ADDRESS_CLAMP = 3, TEXTURE_ADDRESS_BORDER = 4, TEXTURE_ADDRESS_MIRROR_ONCE = 5, TEXTURE_ADDRESS_NUM_MODES }
- Texture address mode.
- enum COMPARISON_FUNCTION: Uint8 { COMPARISON_FUNC_UNKNOWN = 0, COMPARISON_FUNC_NEVER, COMPARISON_FUNC_LESS, COMPARISON_FUNC_EQUAL, COMPARISON_FUNC_LESS_EQUAL, COMPARISON_FUNC_GREATER, COMPARISON_FUNC_NOT_EQUAL, COMPARISON_FUNC_GREATER_EQUAL, COMPARISON_FUNC_ALWAYS, COMPARISON_FUNC_NUM_FUNCTIONS }
- Comparison function.
- enum MISC_TEXTURE_FLAGS: Uint8 { MISC_TEXTURE_FLAG_NONE = 0x00, MISC_TEXTURE_FLAG_GENERATE_MIPS = 0x01 }
- Miscellaneous texture flags.
- enum PRIMITIVE_TOPOLOGY: Uint8 { PRIMITIVE_TOPOLOGY_UNDEFINED = 0, PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, PRIMITIVE_TOPOLOGY_POINT_LIST, PRIMITIVE_TOPOLOGY_LINE_LIST, PRIMITIVE_TOPOLOGY_LINE_STRIP, PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES }
- Input primitive topology.
- enum ADAPTER_TYPE: Uint8 { ADAPTER_TYPE_UNKNOWN = 0, ADAPTER_TYPE_SOFTWARE, ADAPTER_TYPE_HARDWARE }
- Hardware adapter type.
- enum SCALING_MODE { SCALING_MODE_UNSPECIFIED = 0, SCALING_MODE_CENTERED = 1, SCALING_MODE_STRETCHED = 2 }
- Flags indicating how an image is stretched to fit a given monitor's resolution.
- enum SCANLINE_ORDER { SCANLINE_ORDER_UNSPECIFIED = 0, SCANLINE_ORDER_PROGRESSIVE = 1, SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, SCANLINE_ORDER_LOWER_FIELD_FIRST = 3 }
- Flags indicating the method the raster uses to create an image on a surface.
- enum SWAP_CHAIN_USAGE_FLAGS: Uint32 { SWAP_CHAIN_USAGE_NONE = 0x00L, SWAP_CHAIN_USAGE_RENDER_TARGET = 0x01L, SWAP_CHAIN_USAGE_SHADER_INPUT = 0x02L, SWAP_CHAIN_USAGE_COPY_SOURCE = 0x04L, SWAP_CHAIN_USAGE_LAST = SWAP_CHAIN_USAGE_COPY_SOURCE }
- Defines allowed swap chain usage flags.
- enum SURFACE_TRANSFORM: Uint32 { SURFACE_TRANSFORM_OPTIMAL = 0, SURFACE_TRANSFORM_IDENTITY, SURFACE_TRANSFORM_ROTATE_90, SURFACE_TRANSFORM_ROTATE_180, SURFACE_TRANSFORM_ROTATE_270, SURFACE_TRANSFORM_HORIZONTAL_MIRROR, SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90, SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180, SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270 }
- The transform applied to the image content prior to presentation.
- enum QUERY_TYPE { QUERY_TYPE_UNDEFINED = 0, QUERY_TYPE_OCCLUSION, QUERY_TYPE_BINARY_OCCLUSION, QUERY_TYPE_TIMESTAMP, QUERY_TYPE_PIPELINE_STATISTICS, QUERY_TYPE_DURATION, QUERY_TYPE_NUM_TYPES }
- Query type.
- enum RENDER_DEVICE_TYPE { RENDER_DEVICE_TYPE_UNDEFINED = 0, RENDER_DEVICE_TYPE_D3D11, RENDER_DEVICE_TYPE_D3D12, RENDER_DEVICE_TYPE_GL, RENDER_DEVICE_TYPE_GLES, RENDER_DEVICE_TYPE_VULKAN, RENDER_DEVICE_TYPE_METAL }
- Device type.
- enum DEVICE_FEATURE_STATE: Uint8 { DEVICE_FEATURE_STATE_DISABLED = 0, DEVICE_FEATURE_STATE_ENABLED = 1, DEVICE_FEATURE_STATE_OPTIONAL = 2 }
- Device feature state.
- enum ADAPTER_VENDOR: Uint8 { ADAPTER_VENDOR_UNKNOWN = 0, ADAPTER_VENDOR_NVIDIA, ADAPTER_VENDOR_AMD, ADAPTER_VENDOR_INTEL, ADAPTER_VENDOR_ARM, ADAPTER_VENDOR_QUALCOMM, ADAPTER_VENDOR_IMGTECH, ADAPTER_VENDOR_MSFT }
- Graphics adapter vendor.
- enum WAVE_FEATURE: Uint32 { WAVE_FEATURE_UNKNOWN = 0x00, WAVE_FEATURE_BASIC = 0x01, WAVE_FEATURE_VOTE = 0x02, WAVE_FEATURE_ARITHMETIC = 0x04, WAVE_FEATURE_BALLOUT = 0x08, WAVE_FEATURE_SHUFFLE = 0x10, WAVE_FEATURE_SHUFFLE_RELATIVE = 0x20, WAVE_FEATURE_CLUSTERED = 0x40, WAVE_FEATURE_QUAD = 0x80, WAVE_FEATURE_LAST = WAVE_FEATURE_QUAD }
- Describes the wave feature types. In Vulkan backend, you should check which features are supported by device. In Direct3D12 backend, all shader model 6.0 wave functions are supported if WaveOp feature is enabled. see doc/WaveOp.md.
- enum D3D11_DEBUG_FLAGS: Uint32 { D3D11_DEBUG_FLAG_NONE = 0x00, D3D11_DEBUG_FLAG_CREATE_DEBUG_DEVICE = 0x01, D3D11_DEBUG_FLAG_VERIFY_COMMITTED_SHADER_RESOURCES = 0x02, D3D11_DEBUG_FLAG_VERIFY_COMMITTED_RESOURCE_RELEVANCE = 0x04 }
- Debug flags that can be specified when creating Direct3D11-based engine implementation.
- enum DIRECT3D_FEATURE_LEVEL: Uint8 { DIRECT3D_FEATURE_LEVEL_10_0, DIRECT3D_FEATURE_LEVEL_10_1, DIRECT3D_FEATURE_LEVEL_11_0, DIRECT3D_FEATURE_LEVEL_11_1, DIRECT3D_FEATURE_LEVEL_12_0, DIRECT3D_FEATURE_LEVEL_12_1 }
- Direct3D11/12 feature level.
- enum COMPONENT_TYPE: Uint8 { COMPONENT_TYPE_UNDEFINED, COMPONENT_TYPE_FLOAT, COMPONENT_TYPE_SNORM, COMPONENT_TYPE_UNORM, COMPONENT_TYPE_UNORM_SRGB, COMPONENT_TYPE_SINT, COMPONENT_TYPE_UINT, COMPONENT_TYPE_DEPTH, COMPONENT_TYPE_DEPTH_STENCIL, COMPONENT_TYPE_COMPOUND, COMPONENT_TYPE_COMPRESSED }
- Describes texture format component type.
- enum RESOURCE_DIMENSION_SUPPORT: Uint32 { RESOURCE_DIMENSION_SUPPORT_NONE = 0, RESOURCE_DIMENSION_SUPPORT_BUFFER = 1 << RESOURCE_DIM_BUFFER, RESOURCE_DIMENSION_SUPPORT_TEX_1D = 1 << RESOURCE_DIM_TEX_1D, RESOURCE_DIMENSION_SUPPORT_TEX_1D_ARRAY = 1 << RESOURCE_DIM_TEX_1D_ARRAY, RESOURCE_DIMENSION_SUPPORT_TEX_2D = 1 << RESOURCE_DIM_TEX_2D, RESOURCE_DIMENSION_SUPPORT_TEX_2D_ARRAY = 1 << RESOURCE_DIM_TEX_2D_ARRAY, RESOURCE_DIMENSION_SUPPORT_TEX_3D = 1 << RESOURCE_DIM_TEX_3D, RESOURCE_DIMENSION_SUPPORT_TEX_CUBE = 1 << RESOURCE_DIM_TEX_CUBE, RESOURCE_DIMENSION_SUPPORT_TEX_CUBE_ARRAY = 1 << RESOURCE_DIM_TEX_CUBE_ARRAY }
- Describes device support of a particular resource dimension for a given texture format.
- enum PIPELINE_STAGE_FLAGS: Uint32 { PIPELINE_STAGE_FLAG_UNDEFINED = 0x00000000, PIPELINE_STAGE_FLAG_TOP_OF_PIPE = 0x00000001, PIPELINE_STAGE_FLAG_DRAW_INDIRECT = 0x00000002, PIPELINE_STAGE_FLAG_VERTEX_INPUT = 0x00000004, PIPELINE_STAGE_FLAG_VERTEX_SHADER = 0x00000008, PIPELINE_STAGE_FLAG_HULL_SHADER = 0x00000010, PIPELINE_STAGE_FLAG_DOMAIN_SHADER = 0x00000020, PIPELINE_STAGE_FLAG_GEOMETRY_SHADER = 0x00000040, PIPELINE_STAGE_FLAG_PIXEL_SHADER = 0x00000080, PIPELINE_STAGE_FLAG_EARLY_FRAGMENT_TESTS = 0x00000100, PIPELINE_STAGE_FLAG_LATE_FRAGMENT_TESTS = 0x00000200, PIPELINE_STAGE_FLAG_RENDER_TARGET = 0x00000400, PIPELINE_STAGE_FLAG_COMPUTE_SHADER = 0x00000800, PIPELINE_STAGE_FLAG_TRANSFER = 0x00001000, PIPELINE_STAGE_FLAG_BOTTOM_OF_PIPE = 0x00002000, PIPELINE_STAGE_FLAG_HOST = 0x00004000, PIPELINE_STAGE_FLAG_CONDITIONAL_RENDERING = 0x00040000, PIPELINE_STAGE_FLAG_SHADING_RATE_TEXTURE = 0x00400000, PIPELINE_STAGE_FLAG_RAY_TRACING_SHADER = 0x00200000, PIPELINE_STAGE_FLAG_ACCELERATION_STRUCTURE_BUILD = 0x02000000, PIPELINE_STAGE_FLAG_TASK_SHADER = 0x00080000, PIPELINE_STAGE_FLAG_MESH_SHADER = 0x00100000, PIPELINE_STAGE_FLAG_FRAGMENT_DENSITY_PROCESS = 0x00800000, PIPELINE_STAGE_FLAG_DEFAULT = 0x80000000 }
- Pipeline stage flags.
- enum ACCESS_FLAGS: Uint32 { ACCESS_FLAG_NONE = 0x00000000, ACCESS_FLAG_INDIRECT_COMMAND_READ = 0x00000001, ACCESS_FLAG_INDEX_READ = 0x00000002, ACCESS_FLAG_VERTEX_READ = 0x00000004, ACCESS_FLAG_UNIFORM_READ = 0x00000008, ACCESS_FLAG_INPUT_ATTACHMENT_READ = 0x00000010, ACCESS_FLAG_SHADER_READ = 0x00000020, ACCESS_FLAG_SHADER_WRITE = 0x00000040, ACCESS_FLAG_RENDER_TARGET_READ = 0x00000080, ACCESS_FLAG_RENDER_TARGET_WRITE = 0x00000100, ACCESS_FLAG_DEPTH_STENCIL_READ = 0x00000200, ACCESS_FLAG_DEPTH_STENCIL_WRITE = 0x00000400, ACCESS_FLAG_COPY_SRC = 0x00000800, ACCESS_FLAG_COPY_DST = 0x00001000, ACCESS_FLAG_HOST_READ = 0x00002000, ACCESS_FLAG_HOST_WRITE = 0x00004000, ACCESS_FLAG_MEMORY_READ = 0x00008000, ACCESS_FLAG_MEMORY_WRITE = 0x00010000, ACCESS_FLAG_CONDITIONAL_RENDERING_READ = 0x00100000, ACCESS_FLAG_SHADING_RATE_TEXTURE_READ = 0x00800000, ACCESS_FLAG_ACCELERATION_STRUCTURE_READ = 0x00200000, ACCESS_FLAG_ACCELERATION_STRUCTURE_WRITE = 0x00400000, ACCESS_FLAG_FRAGMENT_DENSITY_MAP_READ = 0x01000000, ACCESS_FLAG_DEFAULT = 0x80000000 }
- Access flag.
- enum RESOURCE_STATE: Uint32 { RESOURCE_STATE_UNKNOWN = 0x00000, RESOURCE_STATE_UNDEFINED = 0x00001, RESOURCE_STATE_VERTEX_BUFFER = 0x00002, RESOURCE_STATE_CONSTANT_BUFFER = 0x00004, RESOURCE_STATE_INDEX_BUFFER = 0x00008, RESOURCE_STATE_RENDER_TARGET = 0x00010, RESOURCE_STATE_UNORDERED_ACCESS = 0x00020, RESOURCE_STATE_DEPTH_WRITE = 0x00040, RESOURCE_STATE_DEPTH_READ = 0x00080, RESOURCE_STATE_SHADER_RESOURCE = 0x00100, RESOURCE_STATE_STREAM_OUT = 0x00200, RESOURCE_STATE_INDIRECT_ARGUMENT = 0x00400, RESOURCE_STATE_COPY_DEST = 0x00800, RESOURCE_STATE_COPY_SOURCE = 0x01000, RESOURCE_STATE_RESOLVE_DEST = 0x02000, RESOURCE_STATE_RESOLVE_SOURCE = 0x04000, RESOURCE_STATE_INPUT_ATTACHMENT = 0x08000, RESOURCE_STATE_PRESENT = 0x10000, RESOURCE_STATE_BUILD_AS_READ = 0x20000, RESOURCE_STATE_BUILD_AS_WRITE = 0x40000, RESOURCE_STATE_RAY_TRACING = 0x80000, RESOURCE_STATE_MAX_BIT = RESOURCE_STATE_RAY_TRACING, RESOURCE_STATE_GENERIC_READ = RESOURCE_STATE_VERTEX_BUFFER | RESOURCE_STATE_CONSTANT_BUFFER | RESOURCE_STATE_INDEX_BUFFER | RESOURCE_STATE_SHADER_RESOURCE | RESOURCE_STATE_INDIRECT_ARGUMENT | RESOURCE_STATE_COPY_SOURCE }
- Resource usage state.
- enum STATE_TRANSITION_TYPE: Uint8 { STATE_TRANSITION_TYPE_IMMEDIATE = 0, STATE_TRANSITION_TYPE_BEGIN, STATE_TRANSITION_TYPE_END }
- State transition barrier type.
- enum INPUT_ELEMENT_FREQUENCY { INPUT_ELEMENT_FREQUENCY_UNDEFINED = 0, INPUT_ELEMENT_FREQUENCY_PER_VERTEX, INPUT_ELEMENT_FREQUENCY_PER_INSTANCE, INPUT_ELEMENT_FREQUENCY_NUM_FREQUENCIES }
- Input frequency.
- enum PIPELINE_RESOURCE_FLAGS: Uint8 { PIPELINE_RESOURCE_FLAG_UNKNOWN = 0x00, PIPELINE_RESOURCE_FLAG_NO_DYNAMIC_BUFFERS = 0x01, PIPELINE_RESOURCE_FLAG_COMBINED_SAMPLER = 0x02, PIPELINE_RESOURCE_FLAG_FORMATTED_BUFFER = 0x04, PIPELINE_RESOURCE_FLAG_RUNTIME_ARRAY = 0x08, PIPELINE_RESOURCE_FLAG_LAST = PIPELINE_RESOURCE_FLAG_RUNTIME_ARRAY }
- Flags that define pipeline resource properties.
- enum PIPELINE_TYPE: Uint8 { PIPELINE_TYPE_GRAPHICS, PIPELINE_TYPE_COMPUTE, PIPELINE_TYPE_MESH, PIPELINE_TYPE_RAY_TRACING, PIPELINE_TYPE_LAST = PIPELINE_TYPE_RAY_TRACING, PIPELINE_TYPE_INVALID = 0xFF }
- Pipeline type.
- enum PSO_CREATE_FLAGS: Uint32 { PSO_CREATE_FLAG_NONE = 0x00, PSO_CREATE_FLAG_IGNORE_MISSING_VARIABLES = 0x01, PSO_CREATE_FLAG_IGNORE_MISSING_IMMUTABLE_SAMPLERS = 0x02 }
- Pipeline state creation flags.
- enum FILL_MODE: Int8 { FILL_MODE_UNDEFINED = 0, FILL_MODE_WIREFRAME, FILL_MODE_SOLID, FILL_MODE_NUM_MODES }
- Fill mode.
- enum CULL_MODE: Int8 { CULL_MODE_UNDEFINED = 0, CULL_MODE_NONE, CULL_MODE_FRONT, CULL_MODE_BACK, CULL_MODE_NUM_MODES }
- Cull mode.
- enum ATTACHMENT_LOAD_OP: Uint8 { ATTACHMENT_LOAD_OP_LOAD = 0, ATTACHMENT_LOAD_OP_CLEAR, ATTACHMENT_LOAD_OP_DISCARD }
- Render pass attachment load operation Vulkan counterpart: VkAttachmentLoadOp. D3D12 counterpart: D3D12_
RENDER_ PASS_ BEGINNING_ ACCESS_ TYPE. - enum ATTACHMENT_STORE_OP: Uint8 { ATTACHMENT_STORE_OP_STORE = 0, ATTACHMENT_STORE_OP_DISCARD }
- Render pass attachment store operation Vulkan counterpart: VkAttachmentStoreOp. D3D12 counterpart: D3D12_
RENDER_ PASS_ ENDING_ ACCESS_ TYPE. - enum SHADER_SOURCE_LANGUAGE: Uint32 { SHADER_SOURCE_LANGUAGE_DEFAULT = 0, SHADER_SOURCE_LANGUAGE_HLSL, SHADER_SOURCE_LANGUAGE_GLSL, SHADER_SOURCE_LANGUAGE_MSL, SHADER_SOURCE_LANGUAGE_GLSL_VERBATIM }
- Describes the shader source code language.
- enum SHADER_COMPILER: Uint32 { SHADER_COMPILER_DEFAULT = 0, SHADER_COMPILER_GLSLANG, SHADER_COMPILER_DXC, SHADER_COMPILER_FXC, SHADER_COMPILER_LAST = SHADER_COMPILER_FXC }
- Describes the shader compiler that will be used to compile the shader source code.
- enum CREATE_SHADER_SOURCE_INPUT_STREAM_FLAGS: Uint32 { CREATE_SHADER_SOURCE_INPUT_STREAM_FLAG_NONE = 0x00, CREATE_SHADER_SOURCE_INPUT_STREAM_FLAG_SILENT = 0x01 }
- Describes the flags that can be passed over to IShaderSourceInputStreamFactory::
CreateInputStream2() function. - enum SHADER_COMPILE_FLAGS: Uint32 { SHADER_COMPILE_FLAG_NONE = 0x0, SHADER_COMPILE_FLAG_ENABLE_UNBOUNDED_ARRAYS = 0x01, SHADER_COMPILE_FLAG_LAST = SHADER_COMPILE_FLAG_ENABLE_UNBOUNDED_ARRAYS }
- Shader compilation flags.
- enum SHADER_RESOURCE_TYPE: Uint8 { SHADER_RESOURCE_TYPE_UNKNOWN = 0, SHADER_RESOURCE_TYPE_CONSTANT_BUFFER, SHADER_RESOURCE_TYPE_TEXTURE_SRV, SHADER_RESOURCE_TYPE_BUFFER_SRV, SHADER_RESOURCE_TYPE_TEXTURE_UAV, SHADER_RESOURCE_TYPE_BUFFER_UAV, SHADER_RESOURCE_TYPE_SAMPLER, SHADER_RESOURCE_TYPE_INPUT_ATTACHMENT, SHADER_RESOURCE_TYPE_ACCEL_STRUCT, SHADER_RESOURCE_TYPE_LAST = SHADER_RESOURCE_TYPE_ACCEL_STRUCT }
- Describes shader resource type.
- enum VERIFY_SBT_FLAGS: Uint32 { VERIFY_SBT_FLAG_SHADER_ONLY = 0x1, VERIFY_SBT_FLAG_SHADER_RECORD = 0x2, VERIFY_SBT_FLAG_TLAS = 0x4, VERIFY_SBT_FLAG_ALL = VERIFY_SBT_FLAG_SHADER_ONLY | VERIFY_SBT_FLAG_SHADER_RECORD | VERIFY_SBT_FLAG_TLAS }
- Defines shader binding table validation flags, see IShaderBindingTable::
Verify(). - enum SHADER_RESOURCE_VARIABLE_TYPE: Uint8 { SHADER_RESOURCE_VARIABLE_TYPE_STATIC = 0, SHADER_RESOURCE_VARIABLE_TYPE_MUTABLE, SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC, SHADER_RESOURCE_VARIABLE_TYPE_NUM_TYPES }
- Describes the type of the shader resource variable.
- enum BIND_SHADER_RESOURCES_FLAGS: Uint32 { BIND_SHADER_RESOURCES_UPDATE_STATIC = (0x01 << SHADER_RESOURCE_VARIABLE_TYPE_STATIC), BIND_SHADER_RESOURCES_UPDATE_MUTABLE = (0x01 << SHADER_RESOURCE_VARIABLE_TYPE_MUTABLE), BIND_SHADER_RESOURCES_UPDATE_DYNAMIC = (0x01 << SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC), BIND_SHADER_RESOURCES_UPDATE_ALL = (BIND_SHADER_RESOURCES_UPDATE_STATIC | BIND_SHADER_RESOURCES_UPDATE_MUTABLE | BIND_SHADER_RESOURCES_UPDATE_DYNAMIC), BIND_SHADER_RESOURCES_KEEP_EXISTING = 0x08, BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED = 0x10 }
- Shader resource binding flags.
- enum UAV_ACCESS_FLAG: Uint8 { UAV_ACCESS_UNSPECIFIED = 0x00, UAV_ACCESS_FLAG_READ = 0x01, UAV_ACCESS_FLAG_WRITE = 0x02, UAV_ACCESS_FLAG_READ_WRITE = UAV_ACCESS_FLAG_READ | UAV_ACCESS_FLAG_WRITE }
- Describes allowed unordered access view mode.
- enum TEXTURE_VIEW_FLAGS: Uint8 { TEXTURE_VIEW_FLAG_NONE = 0x00, TEXTURE_VIEW_FLAG_ALLOW_MIP_MAP_GENERATION = 0x01 }
- Texture view flags.
- enum HIT_GROUP_BINDING_MODE: Uint8 { HIT_GROUP_BINDING_MODE_PER_GEOMETRY = 0, HIT_GROUP_BINDING_MODE_PER_INSTANCE, HIT_GROUP_BINDING_MODE_PER_TLAS, HIT_GROUP_BINDING_MODE_USER_DEFINED, HIT_GROUP_BINDING_MODE_LAST = HIT_GROUP_BINDING_MODE_USER_DEFINED }
- Defines hit group binding mode used by the top-level AS.
- enum DEBUG_MESSAGE_SEVERITY { DEBUG_MESSAGE_SEVERITY_INFO = 0, DEBUG_MESSAGE_SEVERITY_WARNING, DEBUG_MESSAGE_SEVERITY_ERROR, DEBUG_MESSAGE_SEVERITY_FATAL_ERROR }
- Describes debug message severity.
Typedefs
-
using D3D11ShaderResourceCounters = std::array<D3D11ResourceRangeCounters, D3D11_
RESOURCE_ RANGE_ COUNT> - Resource counters for all shader stages and all resource types.
- using Float32 = float
- 32-bit float
- using Int64 = int64_t
- 64-bit signed integer
- using Int32 = int32_t
- 32-bit signed integer
- using Int16 = int16_t
- 16-bit signed integer
- using Int8 = int8_t
- 8-bit signed integer
- using Uint64 = uint64_t
- 64-bit unsigned integer
- using Uint32 = uint32_t
- 32-bit unsigned integer
- using Uint16 = uint16_t
- 16-bit unsigned integer
- using Uint8 = uint8_t
- 8-bit unsigned integer
- using Bool = bool
- Boolean.
- using String = std::basic_string<Char>
- String variable.
- using DebugMessageCallbackType = void(*)(enum DEBUG_MESSAGE_SEVERITY Severity, const Char*Message, const Char*Function, const Char*File, int Line)
- Type of the debug messag callback function.
Functions
- auto GetBoxNearestCorner(const float3& Direction, const BoundBox& Box) -> float3
- Returns the nearest bounding box corner along the given direction.
- auto GetBoxFarthestCorner(const float3& Direction, const BoundBox& Box) -> float3
- Returns the farthest bounding box corner along the given direction.
- auto IntersectRayBox3D(const float3& RayOrigin, const float3& RayDirection, float3 BoxMin, float3 BoxMax, float& EnterDist, float& ExitDist) -> bool
- Intersects a ray with 3D box and computes distances to intersections.
- auto IntersectRayAABB(const float3& RayOrigin, const float3& RayDirection, const BoundBox& AABB, float& EnterDist, float& ExitDist) -> bool
- Intersects a ray with the axis-aligned bounding box and computes distances to intersections.
- auto IntersectRayBox2D(const float2& RayOrigin, const float2& RayDirection, float2 BoxMin, float2 BoxMax, float& EnterDist, float& ExitDist) -> bool
- Intersects a 2D ray with the 2D axis-aligned bounding box and computes distances to intersections.
- auto IntersectRayTriangle(const float3& V0, const float3& V1, const float3& V2, const float3& RayOrigin, const float3& RayDirection, bool CullBackFace = false) -> float
- Intersects a ray with the trianlge using Moller-Trumbore algorithm and returns the distance along the ray to the intesrsection point. If the intersection point is behind the ray origin, the distance will be negative. If there is no intersection, returns +FLT_MAX.
-
template<typename TCallback>void TraceLineThroughGrid(float2 f2Start, float2 f2End, int2 i2GridSize, TCallback Callback)
- Traces a 2D line through the square cell grid and enumerates all cells the line touches.
-
template<typename T, typename IntermediateType>auto IsPointInsideTriangle(const Vector2<T>& V0, const Vector2<T>& V1, const Vector2<T>& V2, const Vector2<T>& Point, bool AllowEdges) -> bool
- Tests if a point is inside triangle.
-
template<typename T, class TCallback>void RasterizeTriangle(Vector2<T> V0, Vector2<T> V1, Vector2<T> V2, TCallback Callback)
- Rasterizes a triangle and calls the callback function for every sample covered.
-
template<bool AllowTouch, typename T>auto CheckBox2DBox2DOverlap(const Vector2<T>& Box0Min, const Vector2<T>& Box0Max, const Vector2<T>& Box1Min, const Vector2<T>& Box1Max) -> bool
- Checks if two 2D-boxes overlap.
-
template<typename T>auto ExtractLSB(T& bits) -> std::enable_if<std::is_integral<T>::value, T>::type
- Returns the least-signficant bit and clears it in the input argument.
-
template<typename T>auto ExtractLSB(T& bits) -> std::enable_if<std::is_enum<T>::value, T>::type
- Returns the enum value representing the least-signficant bit and clears it in the input argument.
-
template<TEXTURE_ADDRESS_MODE AddressMode, bool IsNormalizedCoord>auto GetLinearTexFilterSampleInfo(Uint32 Width, float u) -> LinearTexFilterSampleInfo
- Returns linear texture filter sample info, see Diligent::
LinearTexFilterSampleInfo. -
template<typename SrcType, typename DstType, TEXTURE_ADDRESS_MODE AddressModeU, TEXTURE_ADDRESS_MODE AddressModeV, bool IsNormalizedCoord>auto FilterTexture2DBilinear(Uint32 Width, Uint32 Height, const SrcType* pData, size_t Stride, float u, float v) -> DstType
- Samples 2D texture using bilinear filter.
-
template<typename SrcType, typename DstType>auto FilterTexture2DBilinearClamp(Uint32 Width, Uint32 Height, const SrcType* pData, size_t Stride, float u, float v) -> DstType
- Specialization of FilterTexture2DBilinear function that uses CLAMP texture address mode and takes normalized texture coordinates.
-
template<typename SrcType, typename DstType>auto FilterTexture2DBilinearClampUC(Uint32 Width, Uint32 Height, const SrcType* pData, size_t Stride, float u, float v) -> DstType
- Specialization of FilterTexture2DBilinear function that uses CLAMP texture address mode and takes unnormalized texture coordinates.
- auto GetRawAllocator() -> IMemoryAllocator&
- Returns raw memory allocator.
- auto CountFloatNumberChars(const char* str) -> size_t
- Returns the number of chararcters at the beginning of the string that form a floating point number.
-
auto GetValueSize(VALUE_
TYPE Val) -> Uint32 - Returns the size of the specified value type.
-
auto GetValueTypeString(VALUE_
TYPE Val) -> const Char* - Returns the string representing the specified value type.
-
auto GetTextureFormatAttribs(TEXTURE_
FORMAT Format) -> const TextureFormatAttribs& - Returns invariant texture format attributes, see TextureFormatAttribs for details.
-
auto GetDefaultTextureViewFormat(TEXTURE_
FORMAT TextureFormat, TEXTURE_ VIEW_ TYPE ViewType, Uint32 BindFlags) -> TEXTURE_ FORMAT - Returns the default format for a specified texture view type.
-
auto GetDefaultTextureViewFormat(const TextureDesc& TexDesc,
TEXTURE_
VIEW_ TYPE ViewType) -> TEXTURE_ FORMAT - Returns the default format for a specified texture view type.
-
auto GetTexViewTypeLiteralName(TEXTURE_
VIEW_ TYPE ViewType) -> const Char* - Returns the literal name of a texture view type. For instance, for a shader resource view, "TEXTURE_VIEW_SHADER_RESOURCE" will be returned.
-
auto GetBufferViewTypeLiteralName(BUFFER_
VIEW_ TYPE ViewType) -> const Char* - Returns the literal name of a buffer view type. For instance, for an unordered access view, "BUFFER_VIEW_UNORDERED_ACCESS" will be returned.
-
auto GetShaderTypeLiteralName(SHADER_
TYPE ShaderType) -> const Char* - Returns the literal name of a shader type. For instance, for a pixel shader, "SHADER_TYPE_PIXEL" will be returned.
-
auto GetShaderStagesString(SHADER_
TYPE ShaderStages) -> String -
auto GetShaderVariableTypeLiteralName(SHADER_
RESOURCE_ VARIABLE_ TYPE VarType, bool bGetFullName = false) -> const Char* - Returns the literal name of a shader variable type. For instance, for SHADER_RESOURCE_VARIABLE_TYPE_STATIC, if bGetFullName == true, "SHADER_RESOURCE_VARIABLE_TYPE_STATIC" will be returned; if bGetFullName == false, "static" will be returned.
-
auto GetShaderResourceTypeLiteralName(SHADER_
RESOURCE_ TYPE ResourceType, bool bGetFullName = false) -> const Char* - Returns the literal name of a shader resource type. For instance, for SHADER_RESOURCE_TYPE_CONSTANT_BUFFER, if bGetFullName == true, "SHADER_RESOURCE_TYPE_CONSTANT_BUFFER" will be returned; if bGetFullName == false, "constant buffer" will be returned.
-
auto GetViewTypeLiteralName(TEXTURE_
VIEW_ TYPE TexViewType) -> const Char* - Overloaded function that returns the literal name of a texture view type. see GetTexViewTypeLiteralName().
-
auto GetViewTypeLiteralName(BUFFER_
VIEW_ TYPE BuffViewType) -> const Char* - Overloaded function that returns the literal name of a buffer view type. see GetBufferViewTypeLiteralName().
-
auto GetFilterTypeLiteralName(FILTER_
TYPE FilterType, bool bGetFullName) -> const Char* - Returns the literal name of a filter type. For instance, for FILTER_TYPE_POINT, if bGetFullName == true, "FILTER_TYPE_POINT" will be returned; if bGetFullName == false, "point" will be returned.
-
auto GetTextureAddressModeLiteralName(TEXTURE_
ADDRESS_ MODE AddressMode, bool bGetFullName) -> const Char* - Returns the literal name of a texture address mode. For instance, for TEXTURE_ADDRESS_WRAP, if bGetFullName == true, "TEXTURE_ADDRESS_WRAP" will be returned; if bGetFullName == false, "wrap" will be returned.
-
auto GetComparisonFunctionLiteralName(COMPARISON_
FUNCTION ComparisonFunc, bool bGetFullName) -> const Char* - Returns the literal name of a comparison function. For instance, for COMPARISON_FUNC_LESS, if bGetFullName == true, "COMPARISON_FUNC_LESS" will be returned; if bGetFullName == false, "less" will be returned.
-
auto GetStencilOpLiteralName(STENCIL_
OP StencilOp) -> const Char* - Returns the literal name of a stencil operation.
-
auto GetBlendFactorLiteralName(BLEND_
FACTOR BlendFactor) -> const Char* - Returns the literal name of a blend factor.
-
auto GetBlendOperationLiteralName(BLEND_
OPERATION BlendOp) -> const Char* - Returns the literal name of a blend operation.
-
auto GetFillModeLiteralName(FILL_
MODE FillMode) -> const Char* - Returns the literal name of a fill mode.
-
auto GetCullModeLiteralName(CULL_
MODE CullMode) -> const Char* - Returns the literal name of a cull mode.
-
auto GetMapTypeString(MAP_
TYPE MapType) -> const Char* - Returns the string containing the map type.
- auto GetUsageString(USAGE Usage) -> const Char*
- Returns the string containing the usage.
-
auto GetResourceDimString(RESOURCE_
DIMENSION TexType) -> const Char* - Returns the string containing the texture type.
- auto GetBindFlagString(Uint32 BindFlag) -> const Char*
- Returns the string containing single bind flag.
- auto GetBindFlagsString(Uint32 BindFlags, const char* Delimeter = "|") -> String
- Returns the string containing the bind flags.
- auto GetCPUAccessFlagsString(Uint32 CpuAccessFlags) -> String
- Returns the string containing the CPU access flags.
- auto GetTextureDescString(const TextureDesc& Desc) -> String
- Returns the string containing the texture description.
- auto GetBufferFormatString(const BufferFormat& Fmt) -> String
- Returns the string containing the buffer format description.
-
auto GetBufferModeString(BUFFER_
MODE Mode) -> const Char* - Returns the string containing the buffer mode description.
- auto GetBufferDescString(const BufferDesc& Desc) -> String
- Returns the string containing the buffer description.
-
auto GetResourceStateFlagString(RESOURCE_
STATE State) -> const Char* - Returns the string containing the buffer mode description.
-
template<typename TObjectDescType>auto GetObjectDescString(const TObjectDescType&) -> String
- Helper template function that converts object description into a string.
-
template<>auto GetObjectDescString(const TextureDesc& TexDesc) -> String
- Template specialization for texture description.
-
template<>auto GetObjectDescString(const BufferDesc& BuffDesc) -> String
- Template specialization for buffer description.
- auto GetStagingTextureLocationOffset(const TextureDesc& TexDesc, Uint32 ArraySlice, Uint32 MipLevel, Uint32 Alignment, Uint32 LocationX, Uint32 LocationY, Uint32 LocationZ) -> Uint32
- Returns an offset from the beginning of the buffer backing a staging texture to the specified location within the given subresource.
- auto GetStagingTextureSubresourceOffset(const TextureDesc& TexDesc, Uint32 ArraySlice, Uint32 MipLevel, Uint32 Alignment) -> Uint32
- Returns an offset from the beginning of the buffer backing a staging texture to the given subresource. Texels within subresources are assumed to be tightly packed. There is no padding except between whole subresources.
- void CopyTextureSubresource(const TextureSubResData& SrcSubres, Uint32 NumRows, Uint32 NumDepthSlices, Uint32 RowSize, void* pDstData, Uint32 DstRowStride, Uint32 DstDepthStride)
- Copies texture subresource data on the CPU.
- void ValidateBottomLevelASDesc(const BottomLevelASDesc& Desc) noexcept(…)
- Validates bottom-level AS description and throws an exception in case of an error.
- void CopyBLASGeometryDesc(const BottomLevelASDesc& SrcDesc, BottomLevelASDesc& DstDesc, FixedLinearAllocator& MemPool, const BLASNameToIndex* pSrcNameToIndex, BLASNameToIndex& DstNameToIndex) noexcept(…)
- Copies bottom-level AS geometry description using MemPool to allocate required space.
- void ValidateBufferDesc(const BufferDesc& Desc, const DeviceCaps& deviceCaps) noexcept(…)
- Validates buffer description and throws an exception in case of an error.
- void ValidateBufferInitData(const BufferDesc& Desc, const BufferData* pBuffData) noexcept(…)
- Validates initial buffer data parameters and throws an exception in case of an error.
- void ValidateAndCorrectBufferViewDesc(const BufferDesc& BuffDesc, BufferViewDesc& ViewDesc) noexcept(…)
- Validates and corrects buffer view description; throws an exception in case of an error.
- void CreateDefaultShaderSourceStreamFactory(const Char* SearchDirectories, IShaderSourceInputStreamFactory** ppShaderSourceStreamFactory)
- Creates a default shader source stream factory.
- void SetRawAllocator(IMemoryAllocator* pRawAllocator)
- Sets raw memory allocator. This function must be called before any memory allocation/deallocation function is called.
- void ValidatePipelineResourceSignatureDesc(const PipelineResourceSignatureDesc& Desc, const DeviceFeatures& Features) noexcept(…)
- Validates pipeline resource signature description and throws an exception in case of an error.
-
auto FindImmutableSampler(const ImmutableSamplerDesc* ImtblSamplers,
Uint32 NumImtblSamplers,
SHADER_
TYPE ShaderStages, const char* ResourceName, const char* SamplerSuffix) -> Uint32 - Finds an immutable sampler for the resource name 'ResourceName' that is defined in shader stages 'ShaderStages'. If 'SamplerSuffix' is not null, it will be appended to the 'ResourceName'. Returns an index of the sampler in ImtblSamplers array, or InvalidImmutableSamplerIndex if there is no suitable sampler.
- auto PipelineResourceSignaturesCompatible(const PipelineResourceSignatureDesc& Desc0, const PipelineResourceSignatureDesc& Desc1) -> bool noexcept
- Returns true if two pipeline resource signature descriptions are compatible, and false otherwise.
- auto CalculatePipelineResourceSignatureDescHash(const PipelineResourceSignatureDesc& Desc) -> size_t noexcept
- Calculates hash of the pipeline resource signature description.
-
void ValidatePipelineResourceCompatibility(const PipelineResourceDesc& ResDesc,
SHADER_
RESOURCE_ TYPE Type, PIPELINE_ RESOURCE_ FLAGS ResourceFlags, Uint32 ArraySize, const char* ShaderName, const char* SignatureName) noexcept(…) - Validates that pipeline resource description 'ResDesc' is compatible with the actual resource attributes and throws an exception in case of an error.
-
void CopyRTShaderGroupNames(std::unordered_map<HashMapStringKey, Uint32, HashMapStringKey::
Hasher>& NameToGroupIndex, const RayTracingPipelineStateCreateInfo& CreateInfo, FixedLinearAllocator& MemPool) noexcept - Copies ray tracing shader group names and also initializes the mapping from the group name to its index.
-
auto FindPipelineResourceLayoutVariable(const PipelineResourceLayoutDesc& LayoutDesc,
const char* Name,
SHADER_
TYPE ShaderStage, const char* CombinedSamplerSuffix) -> Uint32 - Finds a pipeline resource layout variable with the name 'Name' in shader stage 'ShaderStage' in the list of variables of 'LayoutDesc'. If CombinedSamplerSuffix != null, the variable is treated as a combined sampler and the suffix is added to the names of variables from 'LayoutDesc' when comparing with 'Name'. If the variable is found, returns its index in LayoutDesc.Variables. Otherwise returns InvalidPipelineResourceLayoutVariableIndex.
- void ValidateShaderBindingTableDesc(const ShaderBindingTableDesc& Desc, Uint32 ShaderGroupHandleSize, Uint32 MaxShaderRecordStride) noexcept(…)
- Validates SBT description and throws an exception in case of an error.
- void ValidateTextureDesc(const TextureDesc& TexDesc) noexcept(…)
- Validates texture description and throws an exception in case of an error.
- void ValidatedAndCorrectTextureViewDesc(const TextureDesc& TexDesc, TextureViewDesc& ViewDesc) noexcept(…)
- Validates and corrects texture view description; throws an exception in case of an error.
- void ValidateUpdateTextureParams(const TextureDesc& TexDesc, Uint32 MipLevel, Uint32 Slice, const Box& DstBox, const TextureSubResData& SubresData)
- Validates update texture command paramters.
- void ValidateCopyTextureParams(const CopyTextureAttribs& CopyAttribs)
- Validates copy texture command paramters.
-
void ValidateMapTextureParams(const TextureDesc& TexDesc,
Uint32 MipLevel,
Uint32 ArraySlice,
MAP_
TYPE MapType, Uint32 MapFlags, const Box* pMapRegion) - Validates map texture command paramters.
- void ValidateTopLevelASDesc(const TopLevelASDesc& Desc) noexcept(…)
- Validates top-level AS description and throws an exception in case of an error.
- auto PipelineResourcesCompatible(const PipelineResourceDesc& lhs, const PipelineResourceDesc& rhs) -> bool
- Returns true if two pipeline resources are compatible.
- void VerifyD3DResourceMerge(const PipelineStateDesc& PSODesc, const D3DShaderResourceAttribs& ExistingRes, const D3DShaderResourceAttribs& NewResAttribs) noexcept(…)
- Verifies that two pipeline resources are compatible and throws an exception in case of an error.
- void CreateBufferSuballocator(IRenderDevice* pDevice, const BufferSuballocatorCreateInfo& CreateInfo, IBufferSuballocator** ppBufferSuballocator)
- Creates a new buffer suballocator.
- void CreateDynamicTextureAtlas(IRenderDevice* pDevice, const DynamicTextureAtlasCreateInfo& CreateInfo, IDynamicTextureAtlas** ppAtlas)
- Creates a new dynamic texture atlas.
-
auto GetShaderTypeMacros(SHADER_
TYPE Type) -> const ShaderMacro* - Returns shader type definition macro(s), e.g., for a vertex shader:
- void AppendShaderMacros(std::string& Source, const ShaderMacro* Macros)
- Appends shader macro definitions to the end of the source string:
-
void AppendShaderTypeDefinitions(std::string& Source,
SHADER_
TYPE Type) - Appends the shader type definition macro(s), e.g., for a vertex shader:
- auto ReadShaderSourceFile(const char* SourceCode, IShaderSourceInputStreamFactory* pShaderSourceStreamFactory, const char* FilePath, RefCntAutoPtr<IDataBlob>& pFileData, size_t& SourceCodeLen) -> const char* noexcept(…)
- Reads shader source code from a file or uses the one from the shader create info.
- void AppendShaderSourceCode(std::string& Source, const ShaderCreateInfo& ShaderCI) noexcept(…)
- Appends shader source code to the source string.
- void SetDebugMessageCallback(DebugMessageCallbackType DbgMessageCallback)
- Sets the debug message callback function.
Variables
- static Uint32 MAX_SHADERS_IN_PIPELINE constexpr
- The maximum number of shader stages in a pipeline. (Vertex, Hull, Domain, Geometry, Pixel) or (Amplification, Mesh, Pixel), or (Compute) or (RayGen, Miss, ClosestHit, AnyHit, Intersection, Callable)
- static const Uint32 TLAS_INSTANCE_OFFSET_AUTO
- Can be used to calculate the TLASBuildInstanceData::
ContributionToHitGroupIndex depending on instance count, geometry count in each instance (in TLASBuildInstanceData:: pBLAS) and shader binding mode in BuildTLASAttribs:: BindingMode. - static const Uint32 TLAS_INSTANCE_DATA_SIZE
- Top-level AS instance size in bytes in GPU side. Used to calculate size of BuildTLASAttribs::
pInstanceBuffer. -
static const struct INTERFACE_
ID IID_FileStream - IFileStream interface unique identifier.
-
static const INTERFACE_
ID IID_Unknown - Unknown interface.
Enum documentation
enum class Diligent:: ResourceCacheContentType: Uint8
The type of the content that is stored in the shader resource cache.
| Enumerators | |
|---|---|
| Signature |
Static resources of a pipeline resource signature. |
| SRB |
Resources of a shader resource binding. |
enum Diligent:: BLEND_FACTOR: Int8
Blend factors.
This enumeration defines blend factors for alpha-blending. It generatlly mirrors D3D11_
| Enumerators | |
|---|---|
| BLEND_FACTOR_UNDEFINED |
Undefined blend factor. |
| BLEND_FACTOR_ZERO |
The blend factor is zero. |
| BLEND_FACTOR_ONE |
The blend factor is one. |
| BLEND_FACTOR_SRC_COLOR |
The blend factor is RGB data from a pixel shader. |
| BLEND_FACTOR_INV_SRC_COLOR |
The blend factor is 1-RGB, where RGB is the data from a pixel shader. |
| BLEND_FACTOR_SRC_ALPHA |
The blend factor is alpha (A) data from a pixel shader. |
| BLEND_FACTOR_INV_SRC_ALPHA |
The blend factor is 1-A, where A is alpha data from a pixel shader. |
| BLEND_FACTOR_DEST_ALPHA |
The blend factor is alpha (A) data from a render target. |
| BLEND_FACTOR_INV_DEST_ALPHA |
The blend factor is 1-A, where A is alpha data from a render target. |
| BLEND_FACTOR_DEST_COLOR |
The blend factor is RGB data from a render target. |
| BLEND_FACTOR_INV_DEST_COLOR |
The blend factor is 1-RGB, where RGB is the data from a render target. |
| BLEND_FACTOR_SRC_ALPHA_SAT |
The blend factor is (f,f,f,1), where f = min(As, 1-Ad), As is alpha data from a pixel shader, and Ad is alpha data from a render target. |
| BLEND_FACTOR_BLEND_FACTOR |
The blend factor is the constant blend factor set with IDeviceContext:: |
| BLEND_FACTOR_INV_BLEND_FACTOR |
The blend factor is one minus constant blend factor set with IDeviceContext:: |
| BLEND_FACTOR_SRC1_COLOR |
The blend factor is the second RGB data output from a pixel shader. |
| BLEND_FACTOR_INV_SRC1_COLOR |
The blend factor is 1-RGB, where RGB is the second RGB data output from a pixel shader. |
| BLEND_FACTOR_SRC1_ALPHA |
The blend factor is the second alpha (A) data output from a pixel shader. |
| BLEND_FACTOR_INV_SRC1_ALPHA |
The blend factor is 1-A, where A is the second alpha data output from a pixel shader. |
| BLEND_FACTOR_NUM_FACTORS |
Helper value that stores the total number of blend factors in the enumeration. |
enum Diligent:: BLEND_OPERATION: Int8
Blending operation.
This enumeration describes blending operation for RGB or Alpha channels and generally mirrors D3D11_
| Enumerators | |
|---|---|
| BLEND_OPERATION_UNDEFINED |
Undefined blend operation. |
| BLEND_OPERATION_ADD |
Add source and destination color components. |
| BLEND_OPERATION_SUBTRACT |
Subtract destination color components from source color components. |
| BLEND_OPERATION_REV_SUBTRACT |
Subtract source color components from destination color components. |
| BLEND_OPERATION_MIN |
Compute the minimum of source and destination color components. |
| BLEND_OPERATION_MAX |
Compute the maximum of source and destination color components. |
| BLEND_OPERATION_NUM_OPERATIONS |
Helper value that stores the total number of blend operations in the enumeration. |
enum Diligent:: COLOR_MASK: Int8
Color component write flags.
These flags are used by RenderTargetBlendDesc structure to define writable components of the render target
| Enumerators | |
|---|---|
| COLOR_MASK_NONE |
Do not store any components. |
| COLOR_MASK_RED |
Allow data to be stored in the red component. |
| COLOR_MASK_GREEN |
Allow data to be stored in the green component. |
| COLOR_MASK_BLUE |
Allow data to be stored in the blue component. |
| COLOR_MASK_ALPHA |
Allow data to be stored in the alpha component. |
| COLOR_MASK_ALL |
Allow data to be stored in all components. |
enum Diligent:: LOGIC_OPERATION: Int8
Logic operation.
This enumeration describes logic operation and generally mirrors D3D12_
| Enumerators | |
|---|---|
| LOGIC_OP_CLEAR |
Clear the render target. |
| LOGIC_OP_SET |
Set the render target. |
| LOGIC_OP_COPY |
Copy the render target. |
| LOGIC_OP_COPY_INVERTED |
Perform an inverted-copy of the render target. |
| LOGIC_OP_NOOP |
No operation is performed on the render target. |
| LOGIC_OP_INVERT |
Invert the render target. |
| LOGIC_OP_AND |
Perform a logical AND operation on the render target. |
| LOGIC_OP_NAND |
Perform a logical NAND operation on the render target. |
| LOGIC_OP_OR |
Perform a logical OR operation on the render target. |
| LOGIC_OP_NOR |
Perform a logical NOR operation on the render target. |
| LOGIC_OP_XOR |
Perform a logical XOR operation on the render target. |
| LOGIC_OP_EQUIV |
Perform a logical equal operation on the render target. |
| LOGIC_OP_AND_REVERSE |
Perform a logical AND and reverse operation on the render target. |
| LOGIC_OP_AND_INVERTED |
Perform a logical AND and invert operation on the render target. |
| LOGIC_OP_OR_REVERSE |
Perform a logical OR and reverse operation on the render target. |
| LOGIC_OP_OR_INVERTED |
Perform a logical OR and invert operation on the render target. |
| LOGIC_OP_NUM_OPERATIONS |
Helper value that stores the total number of logical operations in the enumeration. |
enum Diligent:: RAYTRACING_BUILD_AS_FLAGS: Uint8
Defines acceleration structures build flags.
| Enumerators | |
|---|---|
| RAYTRACING_BUILD_AS_NONE | |
| RAYTRACING_BUILD_AS_ALLOW_UPDATE |
Indicates that the specified acceleration structure can be updated via IDeviceContext:: |
| RAYTRACING_BUILD_AS_ALLOW_COMPACTION |
Indicates that the specified acceleration structure can act as the source for a copy acceleration structure command IDeviceContext:: |
| RAYTRACING_BUILD_AS_PREFER_FAST_TRACE |
Indicates that the given acceleration structure build should prioritize trace performance over build time. |
| RAYTRACING_BUILD_AS_PREFER_FAST_BUILD |
Indicates that the given acceleration structure build should prioritize build time over trace performance. |
| RAYTRACING_BUILD_AS_LOW_MEMORY |
Indicates that this acceleration structure should minimize the size of the scratch memory and the final result build, potentially at the expense of build time or trace performance. |
| RAYTRACING_BUILD_AS_FLAGS_LAST |
enum Diligent:: BUFFER_MODE: Uint8
Describes the buffer access mode.
This enumeration is used by BufferDesc structure.
| Enumerators | |
|---|---|
| BUFFER_MODE_UNDEFINED |
Undefined mode. |
| BUFFER_MODE_FORMATTED |
Formated buffer. Access to the buffer will use format conversion operations. In this mode, ElementByteStride member of BufferDesc defines the buffer element size. Buffer views can use different formats, but the format size must match ElementByteStride. |
| BUFFER_MODE_STRUCTURED |
Structured buffer. In this mode, ElementByteStride member of BufferDesc defines the structure stride. |
| BUFFER_MODE_RAW |
Raw buffer. In this mode, the buffer is accessed as raw bytes. Formatted views of a raw buffer can also be created similar to formatted buffer. If formatted views are to be created, the ElementByteStride member of BufferDesc must specify the size of the format. |
| BUFFER_MODE_NUM_MODES |
Helper value storing the total number of modes in the enumeration. |
enum Diligent:: STENCIL_OP: Int8
Stencil operation.
This enumeration describes the stencil operation and generally mirrors D3D11_
| Enumerators | |
|---|---|
| STENCIL_OP_UNDEFINED |
Undefined operation. |
| STENCIL_OP_KEEP |
Keep the existing stencil data. |
| STENCIL_OP_ZERO |
Set the stencil data to 0. |
| STENCIL_OP_REPLACE |
Set the stencil data to the reference value set by calling IDeviceContext:: |
| STENCIL_OP_INCR_SAT |
Increment the current stencil value, and clamp to the maximum representable unsigned value. |
| STENCIL_OP_DECR_SAT |
Decrement the current stencil value, and clamp to 0. |
| STENCIL_OP_INVERT |
Bitwise invert the current stencil buffer value. |
| STENCIL_OP_INCR_WRAP |
Increment the current stencil value, and wrap the value to zero when incrementing the maximum representable unsigned value. |
| STENCIL_OP_DECR_WRAP |
Decrement the current stencil value, and wrap the value to the maximum representable unsigned value when decrementing a value of zero. |
| STENCIL_OP_NUM_OPS |
Helper value that stores the total number of stencil operations in the enumeration. |
enum Diligent:: DRAW_FLAGS: Uint8
Draw command flags.
| Enumerators | |
|---|---|
| DRAW_FLAG_NONE |
No flags. |
| DRAW_FLAG_VERIFY_STATES |
Verify the sate of index and vertex buffers (if any) used by the draw command. State validation is only performed in debug and development builds and the flag has no effect in release build. |
| DRAW_FLAG_VERIFY_DRAW_ATTRIBS |
Verify correctness of parameters passed to the draw command. |
| DRAW_FLAG_VERIFY_RENDER_TARGETS |
Verify that render targets bound to the context are consistent with the pipeline state. |
| DRAW_FLAG_VERIFY_ALL |
Perform all state validation checks. |
| DRAW_FLAG_DYNAMIC_RESOURCE_BUFFERS_INTACT |
Indicates that none of the dynamic resource buffers used by the draw command have been modified by the CPU since the last command. Details D3D12 and Vulkan back-ends have to perform some work to make data in buffers available to draw commands. When a dynamic buffer is mapped, the engine allocates new memory and assigns a new GPU address to this buffer. When a draw command is issued, this GPU address needs to be used. By default the engine assumes that the CPU may map the buffer before any command (to write new transformation matrices for example) and that all GPU addresses need to always be refreshed. This is not always the case, and the application may use the flag to inform the engine that the data in the buffer stay intact to avoid extra work. Implementation details Vulkan backend allocates VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC descriptors for all uniform (constant), buffers and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC descriptors for storage buffers. Note that HLSL structured buffers are mapped to read-only storage buffers in SPIRV and RW buffers are mapped to RW-storage buffers. By default, all dynamic descriptor sets that have dynamic buffers bound are updated every time a draw command is issued (see PipelineStateVkImpl::BindDescriptorSetsWithDynamicOffsets). When DRAW_FLAG_DYNAMIC_RESOURCE_BUFFERS_INTACT is specified, dynamic descriptor sets are only bound by the first draw command that uses the PSO and the SRB. The flag avoids binding descriptors with the same offsets if none of the dynamic offsets have changed. Direct3D12 backend binds constant buffers to root views. By default the engine assumes that virtual GPU addresses of all dynamic buffers may change between the draw commands and always binds dynamic buffers to root views (see RootSignature::CommitRootViews). When DRAW_FLAG_DYNAMIC_RESOURCE_BUFFERS_INTACT is set, root views are only bound by the first draw command that uses the PSO + SRB pair. The flag avoids setting the same GPU virtual addresses when they stay unchanged. |
enum Diligent:: RESOURCE_STATE_TRANSITION_MODE: Uint8
Defines resource state transition mode performed by various commands.
Refer to http:/
| Enumerators | |
|---|---|
| RESOURCE_STATE_TRANSITION_MODE_NONE |
Perform no state transitions and no state validation. Resource states are not accessed (either read or written) by the command. |
| RESOURCE_STATE_TRANSITION_MODE_TRANSITION |
Transition resources to the states required by the specific command. Resources in unknown state are ignored. |
| RESOURCE_STATE_TRANSITION_MODE_VERIFY |
Do not transition, but verify that states are correct. No validation is performed if the state is unknown to the engine. This mode only has effect in debug and development builds. No validation is performed in release build. |
enum Diligent:: CLEAR_DEPTH_STENCIL_FLAGS: Uint32
Defines which parts of the depth-stencil buffer to clear.
These flags are used by IDeviceContext::
| Enumerators | |
|---|---|
| CLEAR_DEPTH_FLAG_NONE |
Perform no clear. |
| CLEAR_DEPTH_FLAG |
Clear depth part of the buffer. |
| CLEAR_STENCIL_FLAG |
Clear stencil part of the buffer. |
enum Diligent:: SET_VERTEX_BUFFERS_FLAGS: Uint8
Defines allowed flags for IDeviceContext::
| Enumerators | |
|---|---|
| SET_VERTEX_BUFFERS_FLAG_NONE |
No extra operations. |
| SET_VERTEX_BUFFERS_FLAG_RESET |
Reset the vertex buffers to only the buffers specified in this call. All buffers previously bound to the pipeline will be unbound. |
enum Diligent:: RAYTRACING_INSTANCE_FLAGS: Uint8
TLAS instance flags that are used in IDeviceContext::
| Enumerators | |
|---|---|
| RAYTRACING_INSTANCE_NONE | |
| RAYTRACING_INSTANCE_TRIANGLE_FACING_CULL_DISABLE |
Disables face culling for this instance. |
| RAYTRACING_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE |
Indicates that the front face of the triangle for culling purposes is the face that is counter clockwise in object space relative to the ray origin. Because the facing is determined in object space, an instance transform matrix does not change the winding, but a geometry transform does. |
| RAYTRACING_INSTANCE_FORCE_OPAQUE |
Causes this instance to act as though RAYTRACING_GEOMETRY_FLAGS_OPAQUE were specified on all geometries referenced by this instance. This behavior can be overridden in the shader with ray flags. |
| RAYTRACING_INSTANCE_FORCE_NO_OPAQUE |
Causes this instance to act as though RAYTRACING_GEOMETRY_FLAGS_OPAQUE were not specified on all geometries referenced by this instance. This behavior can be overridden in the shader with ray flags. |
| RAYTRACING_INSTANCE_FLAGS_LAST |
enum Diligent:: COPY_AS_MODE: Uint8
Defines acceleration structure copy mode.
These the flags used by IDeviceContext::
| Enumerators | |
|---|---|
| COPY_AS_MODE_CLONE |
Creates a direct copy of the acceleration structure specified in pSrc into the one specified by pDst. The pDst acceleration structure must have been created with the same parameters as pSrc. |
| COPY_AS_MODE_COMPACT |
Creates a more compact version of an acceleration structure pSrc into pDst. The acceleration structure pDst must have been created with a CompactedSize corresponding to the one returned by IDeviceContext:: |
| COPY_AS_MODE_LAST |
enum Diligent:: RAYTRACING_GEOMETRY_FLAGS: Uint8
Defines geometry flags for ray tracing.
| Enumerators | |
|---|---|
| RAYTRACING_GEOMETRY_FLAG_NONE | |
| RAYTRACING_GEOMETRY_FLAG_OPAQUE |
Indicates that this geometry does not invoke the any-hit shaders even if present in a hit group. |
| RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANY_HIT_INVOCATION |
Indicates that the implementation must only call the any-hit shader a single time for each primitive in this geometry. If this bit is absent an implementation may invoke the any-hit shader more than once for this geometry. |
| RAYTRACING_GEOMETRY_FLAGS_LAST |
enum Diligent:: VALUE_TYPE: Uint8
Value type.
This enumeration describes value type. It is used by
- BufferDesc structure to describe value type of a formatted buffer
- DrawAttribs structure to describe index type for an indexed draw call
| Enumerators | |
|---|---|
| VT_UNDEFINED |
Undefined type. |
| VT_INT8 |
Signed 8-bit integer. |
| VT_INT16 |
Signed 16-bit integer. |
| VT_INT32 |
Signed 32-bit integer. |
| VT_UINT8 |
Unsigned 8-bit integer. |
| VT_UINT16 |
Unsigned 16-bit integer. |
| VT_UINT32 |
Unsigned 32-bit integer. |
| VT_FLOAT16 |
Half-precision 16-bit floating point. |
| VT_FLOAT32 |
Full-precision 32-bit floating point. |
| VT_NUM_TYPES |
Helper value storing total number of types in the enumeration. |
enum Diligent:: SHADER_TYPE: Uint32
Describes the shader type.
| Enumerators | |
|---|---|
| SHADER_TYPE_UNKNOWN |
Unknown shader type. |
| SHADER_TYPE_VERTEX |
Vertex shader. |
| SHADER_TYPE_PIXEL |
Pixel (fragment) shader. |
| SHADER_TYPE_GEOMETRY |
Geometry shader. |
| SHADER_TYPE_HULL |
Hull (tessellation control) shader. |
| SHADER_TYPE_DOMAIN |
Domain (tessellation evaluation) shader. |
| SHADER_TYPE_COMPUTE |
Compute shader. |
| SHADER_TYPE_AMPLIFICATION |
Amplification (task) shader. |
| SHADER_TYPE_MESH |
Mesh shader. |
| SHADER_TYPE_RAY_GEN |
Ray generation shader. |
| SHADER_TYPE_RAY_MISS |
Ray miss shader. |
| SHADER_TYPE_RAY_CLOSEST_HIT |
Ray closest hit shader. |
| SHADER_TYPE_RAY_ANY_HIT |
Ray any hit shader. |
| SHADER_TYPE_RAY_INTERSECTION |
Ray intersection shader. |
| SHADER_TYPE_CALLABLE |
Callable shader. |
| SHADER_TYPE_LAST | |
| SHADER_TYPE_ALL_GRAPHICS |
All graphics pipeline shader stages. |
| SHADER_TYPE_ALL_MESH |
All mesh shading pipeline stages. |
| SHADER_TYPE_ALL_RAY_TRACING |
All ray-tracing pipeline shader stages. |
enum Diligent:: BIND_FLAGS: Uint32
Resource binding flags.
This enumeration describes which parts of the pipeline a resource can be bound to. It generally mirrors D3D11_
- BufferDesc to describe bind flags for a buffer
- TextureDesc to describe bind flags for a texture
| Enumerators | |
|---|---|
| BIND_NONE |
Undefined binding. |
| BIND_VERTEX_BUFFER |
A buffer can be bound as a vertex buffer. |
| BIND_INDEX_BUFFER |
A buffer can be bound as an index buffer. |
| BIND_UNIFORM_BUFFER |
A buffer can be bound as a uniform buffer. |
| BIND_SHADER_RESOURCE |
A buffer or a texture can be bound as a shader resource. |
| BIND_STREAM_OUTPUT |
A buffer can be bound as a target for stream output stage. |
| BIND_RENDER_TARGET |
A texture can be bound as a render target. |
| BIND_DEPTH_STENCIL |
A texture can be bound as a depth-stencil target. |
| BIND_UNORDERED_ACCESS |
A buffer or a texture can be bound as an unordered access view. |
| BIND_INDIRECT_DRAW_ARGS |
A buffer can be bound as the source buffer for indirect draw commands. |
| BIND_INPUT_ATTACHMENT |
A texture can be used as render pass input attachment. |
| BIND_RAY_TRACING |
A buffer can be used as a scratch buffer or as the source of primitive data for acceleration structure building. |
| BIND_FLAGS_LAST |
enum Diligent:: USAGE: Uint8
Resource usage.
This enumeration describes expected resource usage. It generally mirrors D3D11_
- BufferDesc to describe usage for a buffer
- TextureDesc to describe usage for a texture
| Enumerators | |
|---|---|
| USAGE_IMMUTABLE |
A resource that can only be read by the GPU. It cannot be written by the GPU, and cannot be accessed at all by the CPU. This type of resource must be initialized when it is created, since it cannot be changed after creation. |
| USAGE_DEFAULT |
A resource that requires read and write access by the GPU and can also be occasionally written by the CPU. |
| USAGE_DYNAMIC |
A resource that can be read by the GPU and written at least once per frame by the CPU. |
| USAGE_STAGING |
A resource that facilitates transferring data between GPU and CPU. |
| USAGE_UNIFIED |
A resource residing in a unified memory (e.g. memory shared between CPU and GPU), that can be read and written by GPU and can also be directly accessed by CPU. Unified resources must use at least one of CPU_ACCESS_WRITE or CPU_ACCESS_READ flags. An application should check supported unified memory CPU access types by quering the device caps. (see Diligent:: |
| USAGE_NUM_USAGES |
Helper value indicating the total number of elements in the enum. |
enum Diligent:: CPU_ACCESS_FLAGS: Uint8
Allowed CPU access mode flags when mapping a resource.
The enumeration is used by
- BufferDesc to describe CPU access mode for a buffer
TextureDesc to describe CPU access mode for a texture
| Enumerators | |
|---|---|
| CPU_ACCESS_NONE |
No CPU access. |
| CPU_ACCESS_READ |
A resource can be mapped for reading. |
| CPU_ACCESS_WRITE |
A resource can be mapped for writing. |
enum Diligent:: MAP_TYPE: Uint8
Resource mapping type.
Describes how a mapped resource will be accessed. This enumeration generally mirrors D3D11_
- IBuffer::Map to describe buffer mapping type
- ITexture::Map to describe texture mapping type
| Enumerators | |
|---|---|
| MAP_READ |
The resource is mapped for reading. |
| MAP_WRITE |
The resource is mapped for writing. |
| MAP_READ_WRITE |
The resource is mapped for reading and writing. |
enum Diligent:: MAP_FLAGS: Uint8
Special map flags.
Describes special arguments for a map operation. This enumeration is used by
- IBuffer::Map to describe buffer mapping flags
- ITexture::Map to describe texture mapping flags
| Enumerators | |
|---|---|
| MAP_FLAG_NONE | |
| MAP_FLAG_DO_NOT_WAIT |
Specifies that map operation should not wait until previous command that using the same resource completes. Map returns null pointer if the resource is still in use. |
| MAP_FLAG_DISCARD |
Previous contents of the resource will be undefined. This flag is only compatible with MAP_WRITE |
| MAP_FLAG_NO_OVERWRITE |
The system will not synchronize pending operations before mapping the buffer. It is responsibility of the application to make sure that the buffer contents is not overwritten while it is in use by the GPU. |
enum Diligent:: RESOURCE_DIMENSION: Uint8
Describes resource dimension.
This enumeration is used by
- TextureDesc to describe texture type
- TextureViewDesc to describe texture view type
| Enumerators | |
|---|---|
| RESOURCE_DIM_UNDEFINED |
Texture type undefined. |
| RESOURCE_DIM_BUFFER |
Buffer. |
| RESOURCE_DIM_TEX_1D |
One-dimensional texture. |
| RESOURCE_DIM_TEX_1D_ARRAY |
One-dimensional texture array. |
| RESOURCE_DIM_TEX_2D |
Two-dimensional texture. |
| RESOURCE_DIM_TEX_2D_ARRAY |
Two-dimensional texture array. |
| RESOURCE_DIM_TEX_3D |
Three-dimensional texture. |
| RESOURCE_DIM_TEX_CUBE |
Cube-map texture. |
| RESOURCE_DIM_TEX_CUBE_ARRAY |
Cube-map array texture. |
| RESOURCE_DIM_NUM_DIMENSIONS |
Helper value that stores the total number of texture types in the enumeration. |
enum Diligent:: TEXTURE_VIEW_TYPE: Uint8
Texture view type.
This enumeration describes allowed view types for a texture view. It is used by TextureViewDesc structure.
| Enumerators | |
|---|---|
| TEXTURE_VIEW_UNDEFINED |
Undefined view type. |
| TEXTURE_VIEW_SHADER_RESOURCE |
A texture view will define a shader resource view that will be used as the source for the shader read operations. |
| TEXTURE_VIEW_RENDER_TARGET |
A texture view will define a render target view that will be used as the target for rendering operations. |
| TEXTURE_VIEW_DEPTH_STENCIL |
A texture view will define a depth stencil view that will be used as the target for rendering operations. |
| TEXTURE_VIEW_UNORDERED_ACCESS |
A texture view will define an unordered access view that will be used for unordered read/write operations from the shaders. |
| TEXTURE_VIEW_NUM_VIEWS |
Helper value that stores that total number of texture views. |
enum Diligent:: BUFFER_VIEW_TYPE: Uint8
Buffer view type.
This enumeration describes allowed view types for a buffer view. It is used by BufferViewDesc structure.
| Enumerators | |
|---|---|
| BUFFER_VIEW_UNDEFINED |
Undefined view type. |
| BUFFER_VIEW_SHADER_RESOURCE |
A buffer view will define a shader resource view that will be used as the source for the shader read operations. |
| BUFFER_VIEW_UNORDERED_ACCESS |
A buffer view will define an unordered access view that will be used for unordered read/write operations from the shaders. |
| BUFFER_VIEW_NUM_VIEWS |
Helper value that stores that total number of buffer views. |
enum Diligent:: TEXTURE_FORMAT: Uint16
Texture formats.
This enumeration describes available texture formats and generally mirrors DXGI_FORMAT enumeration. The table below provides detailed information on each format. Most of the formats are widely supported by all modern APIs (DX10+, OpenGL3.3+ and OpenGLES3.0+). Specific requirements are additionally indicated.
| Enumerators | |
|---|---|
| TEX_FORMAT_UNKNOWN |
Unknown format. |
| TEX_FORMAT_RGBA32_TYPELESS |
Four-component 128-bit typeless format with 32-bit channels. |
| TEX_FORMAT_RGBA32_FLOAT |
Four-component 128-bit floating-point format with 32-bit channels. |
| TEX_FORMAT_RGBA32_UINT |
Four-component 128-bit unsigned-integer format with 32-bit channels. |
| TEX_FORMAT_RGBA32_SINT |
Four-component 128-bit signed-integer format with 32-bit channels. |
| TEX_FORMAT_RGB32_TYPELESS |
Three-component 96-bit typeless format with 32-bit channels. |
| TEX_FORMAT_RGB32_FLOAT |
Three-component 96-bit floating-point format with 32-bit channels. |
| TEX_FORMAT_RGB32_UINT |
Three-component 96-bit unsigned-integer format with 32-bit channels. |
| TEX_FORMAT_RGB32_SINT |
Three-component 96-bit signed-integer format with 32-bit channels. |
| TEX_FORMAT_RGBA16_TYPELESS |
Four-component 64-bit typeless format with 16-bit channels. |
| TEX_FORMAT_RGBA16_FLOAT |
Four-component 64-bit half-precision floating-point format with 16-bit channels. |
| TEX_FORMAT_RGBA16_UNORM |
Four-component 64-bit unsigned-normalized-integer format with 16-bit channels. OpenGLES: GL_ |
| TEX_FORMAT_RGBA16_UINT |
Four-component 64-bit unsigned-integer format with 16-bit channels. |
| TEX_FORMAT_RGBA16_SNORM |
Four-component 64-bit signed-normalized-integer format with 16-bit channels. OpenGLES: GL_ |
| TEX_FORMAT_RGBA16_SINT |
Four-component 64-bit signed-integer format with 16-bit channels. |
| TEX_FORMAT_RG32_TYPELESS |
Two-component 64-bit typeless format with 32-bit channels. |
| TEX_FORMAT_RG32_FLOAT |
Two-component 64-bit floating-point format with 32-bit channels. |
| TEX_FORMAT_RG32_UINT |
Two-component 64-bit unsigned-integer format with 32-bit channels. |
| TEX_FORMAT_RG32_SINT |
Two-component 64-bit signed-integer format with 32-bit channels. |
| TEX_FORMAT_R32G8X24_TYPELESS |
Two-component 64-bit typeless format with 32-bits for R channel and 8 bits for G channel. |
| TEX_FORMAT_D32_FLOAT_S8X24_UINT |
Two-component 64-bit format with 32-bit floating-point depth channel and 8-bit stencil channel. |
| TEX_FORMAT_R32_FLOAT_X8X24_TYPELESS |
Two-component 64-bit format with 32-bit floating-point R channel and 8+24-bits of typeless data. |
| TEX_FORMAT_X32_TYPELESS_G8X24_UINT |
Two-component 64-bit format with 32-bit typeless data and 8-bit G channel. |
| TEX_FORMAT_RGB10A2_TYPELESS |
Four-component 32-bit typeless format with 10 bits for RGB and 2 bits for alpha channel. |
| TEX_FORMAT_RGB10A2_UNORM |
Four-component 32-bit unsigned-normalized-integer format with 10 bits for each color and 2 bits for alpha channel. |
| TEX_FORMAT_RGB10A2_UINT |
Four-component 32-bit unsigned-integer format with 10 bits for each color and 2 bits for alpha channel. |
| TEX_FORMAT_R11G11B10_FLOAT |
Three-component 32-bit format encoding three partial precision channels using 11 bits for red and green and 10 bits for blue channel. |
| TEX_FORMAT_RGBA8_TYPELESS |
Four-component 32-bit typeless format with 8-bit channels. |
| TEX_FORMAT_RGBA8_UNORM |
Four-component 32-bit unsigned-normalized-integer format with 8-bit channels. |
| TEX_FORMAT_RGBA8_UNORM_SRGB |
Four-component 32-bit unsigned-normalized-integer sRGB format with 8-bit channels. |
| TEX_FORMAT_RGBA8_UINT |
Four-component 32-bit unsigned-integer format with 8-bit channels. |
| TEX_FORMAT_RGBA8_SNORM |
Four-component 32-bit signed-normalized-integer format with 8-bit channels. |
| TEX_FORMAT_RGBA8_SINT |
Four-component 32-bit signed-integer format with 8-bit channels. |
| TEX_FORMAT_RG16_TYPELESS |
Two-component 32-bit typeless format with 16-bit channels. |
| TEX_FORMAT_RG16_FLOAT |
Two-component 32-bit half-precision floating-point format with 16-bit channels. |
| TEX_FORMAT_RG16_UNORM |
Two-component 32-bit unsigned-normalized-integer format with 16-bit channels. OpenGLES: GL_ |
| TEX_FORMAT_RG16_UINT |
Two-component 32-bit unsigned-integer format with 16-bit channels. |
| TEX_FORMAT_RG16_SNORM |
Two-component 32-bit signed-normalized-integer format with 16-bit channels. OpenGLES: GL_ |
| TEX_FORMAT_RG16_SINT |
Two-component 32-bit signed-integer format with 16-bit channels. |
| TEX_FORMAT_R32_TYPELESS |
Single-component 32-bit typeless format. |
| TEX_FORMAT_D32_FLOAT |
Single-component 32-bit floating-point depth format. |
| TEX_FORMAT_R32_FLOAT |
Single-component 32-bit floating-point format. |
| TEX_FORMAT_R32_UINT |
Single-component 32-bit unsigned-integer format. |
| TEX_FORMAT_R32_SINT |
Single-component 32-bit signed-integer format. |
| TEX_FORMAT_R24G8_TYPELESS |
Two-component 32-bit typeless format with 24 bits for R and 8 bits for G channel. |
| TEX_FORMAT_D24_UNORM_S8_UINT |
Two-component 32-bit format with 24 bits for unsigned-normalized-integer depth and 8 bits for stencil. |
| TEX_FORMAT_R24_UNORM_X8_TYPELESS |
Two-component 32-bit format with 24 bits for unsigned-normalized-integer data and 8 bits of unreferenced data. |
| TEX_FORMAT_X24_TYPELESS_G8_UINT |
Two-component 32-bit format with 24 bits of unreferenced data and 8 bits of unsigned-integer data. |
| TEX_FORMAT_RG8_TYPELESS |
Two-component 16-bit typeless format with 8-bit channels. |
| TEX_FORMAT_RG8_UNORM |
Two-component 16-bit unsigned-normalized-integer format with 8-bit channels. |
| TEX_FORMAT_RG8_UINT |
Two-component 16-bit unsigned-integer format with 8-bit channels. |
| TEX_FORMAT_RG8_SNORM |
Two-component 16-bit signed-normalized-integer format with 8-bit channels. |
| TEX_FORMAT_RG8_SINT |
Two-component 16-bit signed-integer format with 8-bit channels. |
| TEX_FORMAT_R16_TYPELESS |
Single-component 16-bit typeless format. |
| TEX_FORMAT_R16_FLOAT |
Single-component 16-bit half-precisoin floating-point format. |
| TEX_FORMAT_D16_UNORM |
Single-component 16-bit unsigned-normalized-integer depth format. |
| TEX_FORMAT_R16_UNORM |
Single-component 16-bit unsigned-normalized-integer format. OpenGLES: GL_ |
| TEX_FORMAT_R16_UINT |
Single-component 16-bit unsigned-integer format. |
| TEX_FORMAT_R16_SNORM |
Single-component 16-bit signed-normalized-integer format. OpenGLES: GL_ |
| TEX_FORMAT_R16_SINT |
Single-component 16-bit signed-integer format. |
| TEX_FORMAT_R8_TYPELESS |
Single-component 8-bit typeless format. |
| TEX_FORMAT_R8_UNORM |
Single-component 8-bit unsigned-normalized-integer format. |
| TEX_FORMAT_R8_UINT |
Single-component 8-bit unsigned-integer format. |
| TEX_FORMAT_R8_SNORM |
Single-component 8-bit signed-normalized-integer format. |
| TEX_FORMAT_R8_SINT |
Single-component 8-bit signed-integer format. |
| TEX_FORMAT_A8_UNORM |
Single-component 8-bit unsigned-normalized-integer format for alpha only. |
| TEX_FORMAT_R1_UNORM |
Single-component 1-bit format. |
| TEX_FORMAT_RGB9E5_SHAREDEXP |
Three partial-precision floating pointer numbers sharing single exponent encoded into a 32-bit value. |
| TEX_FORMAT_RG8_B8G8_UNORM |
Four-component unsigned-normalized integer format analogous to UYVY encoding. |
| TEX_FORMAT_G8R8_G8B8_UNORM |
Four-component unsigned-normalized integer format analogous to YUY2 encoding. |
| TEX_FORMAT_BC1_TYPELESS |
Four-component typeless block-compression format with 1:8 compression ratio. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC1_UNORM |
Four-component unsigned-normalized-integer block-compression format with 5 bits for R, 6 bits for G, 5 bits for B, and 0 or 1 bit for A channel. The pixel data is encoded using 8 bytes per 4x4 block (4 bits per pixel) providing 1:8 compression ratio against RGBA8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC1_UNORM_SRGB |
Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R, 6 bits for G, 5 bits for B, and 0 or 1 bit for A channel. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC2_TYPELESS |
Four component typeless block-compression format with 1:4 compression ratio. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC2_UNORM |
Four-component unsigned-normalized-integer block-compression format with 5 bits for R, 6 bits for G, 5 bits for B, and 4 bits for low-coherent separate A channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:4 compression ratio against RGBA8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC2_UNORM_SRGB |
Four-component signed-normalized-integer block-compression sRGB format with 5 bits for R, 6 bits for G, 5 bits for B, and 4 bits for low-coherent separate A channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:4 compression ratio against RGBA8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC3_TYPELESS |
Four-component typeless block-compression format with 1:4 compression ratio. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC3_UNORM |
Four-component unsigned-normalized-integer block-compression format with 5 bits for R, 6 bits for G, 5 bits for B, and 8 bits for highly-coherent A channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:4 compression ratio against RGBA8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC3_UNORM_SRGB |
Four-component unsigned-normalized-integer block-compression sRGB format with 5 bits for R, 6 bits for G, 5 bits for B, and 8 bits for highly-coherent A channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:4 compression ratio against RGBA8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC4_TYPELESS |
One-component typeless block-compression format with 1:2 compression ratio. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC4_UNORM |
One-component unsigned-normalized-integer block-compression format with 8 bits for R channel. The pixel data is encoded using 8 bytes per 4x4 block (4 bits per pixel) providing 1:2 compression ratio against R8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC4_SNORM |
One-component signed-normalized-integer block-compression format with 8 bits for R channel. The pixel data is encoded using 8 bytes per 4x4 block (4 bits per pixel) providing 1:2 compression ratio against R8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC5_TYPELESS |
Two-component typeless block-compression format with 1:2 compression ratio. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC5_UNORM |
Two-component unsigned-normalized-integer block-compression format with 8 bits for R and 8 bits for G channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:2 compression ratio against RG8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_BC5_SNORM |
Two-component signed-normalized-integer block-compression format with 8 bits for R and 8 bits for G channel. The pixel data is encoded using 16 bytes per 4x4 block (8 bits per pixel) providing 1:2 compression ratio against RG8 format. OpenGL & OpenGLES: GL_ |
| TEX_FORMAT_B5G6R5_UNORM |
Three-component 16-bit unsigned-normalized-integer format with 5 bits for blue, 6 bits for green, and 5 bits for red channel. |
| TEX_FORMAT_B5G5R5A1_UNORM |
Four-component 16-bit unsigned-normalized-integer format with 5 bits for each color channel and 1-bit alpha. |
| TEX_FORMAT_BGRA8_UNORM |
Four-component 32-bit unsigned-normalized-integer format with 8 bits for each channel. |
| TEX_FORMAT_BGRX8_UNORM |
Four-component 32-bit unsigned-normalized-integer format with 8 bits for each color channel and 8 bits unused. |
| TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM |
Four-component 32-bit 2.8-biased fixed-point format with 10 bits for each color channel and 2-bit alpha. |
| TEX_FORMAT_BGRA8_TYPELESS |
Four-component 32-bit typeless format with 8 bits for each channel. |
| TEX_FORMAT_BGRA8_UNORM_SRGB |
Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each channel. |
| TEX_FORMAT_BGRX8_TYPELESS |
Four-component 32-bit typeless format that with 8 bits for each color channel, and 8 bits are unused. |
| TEX_FORMAT_BGRX8_UNORM_SRGB |
Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each color channel, and 8 bits are unused. |
| TEX_FORMAT_BC6H_TYPELESS |
Three-component typeless block-compression format. OpenGL: GL_ |
| TEX_FORMAT_BC6H_UF16 |
Three-component unsigned half-precision floating-point format with 16 bits for each channel. OpenGL: GL_ |
| TEX_FORMAT_BC6H_SF16 |
Three-channel signed half-precision floating-point format with 16 bits per each channel. OpenGL: GL_ |
| TEX_FORMAT_BC7_TYPELESS |
Three-component typeless block-compression format. OpenGL: GL_ |
| TEX_FORMAT_BC7_UNORM |
Three-component block-compression unsigned-normalized-integer format with 4 to 7 bits per color channel and 0 to 8 bits of alpha. OpenGL: GL_ |
| TEX_FORMAT_BC7_UNORM_SRGB |
Three-component block-compression unsigned-normalized-integer sRGB format with 4 to 7 bits per color channel and 0 to 8 bits of alpha. OpenGL: GL_ |
| TEX_FORMAT_NUM_FORMATS |
Helper member containing the total number of texture formats in the enumeration. |
enum Diligent:: FILTER_TYPE: Uint8
Filter type.
This enumeration defines filter type. It is used by SamplerDesc structure to define min, mag and mip filters.
| Enumerators | |
|---|---|
| FILTER_TYPE_UNKNOWN |
Unknown filter type. |
| FILTER_TYPE_POINT |
Point filtering. |
| FILTER_TYPE_LINEAR |
Linear filtering. |
| FILTER_TYPE_ANISOTROPIC |
Anisotropic filtering. |
| FILTER_TYPE_COMPARISON_POINT |
Comparison-point filtering. |
| FILTER_TYPE_COMPARISON_LINEAR |
Comparison-linear filtering. |
| FILTER_TYPE_COMPARISON_ANISOTROPIC |
Comparison-anisotropic filtering. |
| FILTER_TYPE_MINIMUM_POINT |
Minimum-point filtering (DX12 only) |
| FILTER_TYPE_MINIMUM_LINEAR |
Minimum-linear filtering (DX12 only) |
| FILTER_TYPE_MINIMUM_ANISOTROPIC |
Minimum-anisotropic filtering (DX12 only) |
| FILTER_TYPE_MAXIMUM_POINT |
Maximum-point filtering (DX12 only) |
| FILTER_TYPE_MAXIMUM_LINEAR |
Maximum-linear filtering (DX12 only) |
| FILTER_TYPE_MAXIMUM_ANISOTROPIC |
Maximum-anisotropic filtering (DX12 only) |
| FILTER_TYPE_NUM_FILTERS |
Helper value that stores the total number of filter types in the enumeration. |
enum Diligent:: TEXTURE_ADDRESS_MODE: Uint8
Texture address mode.
Defines a technique for resolving texture coordinates that are outside of the boundaries of a texture. The enumeration generally mirrors D3D11_
| Enumerators | |
|---|---|
| TEXTURE_ADDRESS_UNKNOWN |
Unknown mode. |
| TEXTURE_ADDRESS_WRAP |
Tile the texture at every integer junction. |
| TEXTURE_ADDRESS_MIRROR |
Flip the texture at every integer junction. |
| TEXTURE_ADDRESS_CLAMP |
Texture coordinates outside the range [0.0, 1.0] are set to the texture color at 0.0 or 1.0, respectively. |
| TEXTURE_ADDRESS_BORDER |
Texture coordinates outside the range [0.0, 1.0] are set to the border color specified in SamplerDesc structure. |
| TEXTURE_ADDRESS_MIRROR_ONCE |
Similar to TEXTURE_ADDRESS_MIRROR and TEXTURE_ADDRESS_CLAMP. Takes the absolute value of the texture coordinate (thus, mirroring around 0), and then clamps to the maximum value. |
| TEXTURE_ADDRESS_NUM_MODES |
Helper value that stores the total number of texture address modes in the enumeration. |
enum Diligent:: COMPARISON_FUNCTION: Uint8
Comparison function.
This enumeartion defines a comparison function. It generally mirrors D3D11_
- SamplerDesc to define a comparison function if one of the comparison mode filters is used
- StencilOpDesc to define a stencil function
- DepthStencilStateDesc to define a depth function
| Enumerators | |
|---|---|
| COMPARISON_FUNC_UNKNOWN |
Unknown comparison function. |
| COMPARISON_FUNC_NEVER |
Comparison never passes. |
| COMPARISON_FUNC_LESS |
Comparison passes if the source data is less than the destination data. |
| COMPARISON_FUNC_EQUAL |
Comparison passes if the source data is equal to the destination data. |
| COMPARISON_FUNC_LESS_EQUAL |
Comparison passes if the source data is less than or equal to the destination data. |
| COMPARISON_FUNC_GREATER |
Comparison passes if the source data is greater than the destination data. |
| COMPARISON_FUNC_NOT_EQUAL |
Comparison passes if the source data is not equal to the destination data. |
| COMPARISON_FUNC_GREATER_EQUAL |
Comparison passes if the source data is greater than or equal to the destination data. |
| COMPARISON_FUNC_ALWAYS |
Comparison always passes. |
| COMPARISON_FUNC_NUM_FUNCTIONS |
Helper value that stores the total number of comparison functions in the enumeration. |
enum Diligent:: MISC_TEXTURE_FLAGS: Uint8
Miscellaneous texture flags.
The enumeration is used by TextureDesc to describe misc texture flags
| Enumerators | |
|---|---|
| MISC_TEXTURE_FLAG_NONE | |
| MISC_TEXTURE_FLAG_GENERATE_MIPS |
Allow automatic mipmap generation with ITextureView::GenerateMips() |
enum Diligent:: PRIMITIVE_TOPOLOGY: Uint8
Input primitive topology.
This enumeration is used by GraphicsPipelineDesc structure to define input primitive topology.
| Enumerators | |
|---|---|
| PRIMITIVE_TOPOLOGY_UNDEFINED |
Undefined topology. |
| PRIMITIVE_TOPOLOGY_TRIANGLE_LIST |
Interpret the vertex data as a list of triangles. |
| PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP |
Interpret the vertex data as a triangle strip. |
| PRIMITIVE_TOPOLOGY_POINT_LIST |
Interpret the vertex data as a list of points. |
| PRIMITIVE_TOPOLOGY_LINE_LIST |
Interpret the vertex data as a list of lines. |
| PRIMITIVE_TOPOLOGY_LINE_STRIP |
Interpret the vertex data as a line strip. |
| PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of one control point patches. |
| PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of two control point patches. |
| PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of three control point patches. |
| PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of four control point patches. |
| PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of five control point patches. |
| PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of six control point patches. |
| PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of seven control point patches. |
| PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of eight control point patches. |
| PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of nine control point patches. |
| PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of ten control point patches. |
| PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 11 control point patches. |
| PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 12 control point patches. |
| PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 13 control point patches. |
| PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 14 control point patches. |
| PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 15 control point patches. |
| PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 16 control point patches. |
| PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 17 control point patches. |
| PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 18 control point patches. |
| PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 19 control point patches. |
| PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 20 control point patches. |
| PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 21 control point patches. |
| PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 22 control point patches. |
| PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 23 control point patches. |
| PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 24 control point patches. |
| PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 25 control point patches. |
| PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 26 control point patches. |
| PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 27 control point patches. |
| PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 28 control point patches. |
| PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 29 control point patches. |
| PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 30 control point patches. |
| PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 31 control point patches. |
| PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST |
Interpret the vertex data as a list of 32 control point patches. |
| PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES |
Helper value that stores the total number of topologies in the enumeration. |
enum Diligent:: ADAPTER_TYPE: Uint8
Hardware adapter type.
| Enumerators | |
|---|---|
| ADAPTER_TYPE_UNKNOWN |
Adapter type is unknown. |
| ADAPTER_TYPE_SOFTWARE |
Software adapter. |
| ADAPTER_TYPE_HARDWARE |
Hardware adapter. |
enum Diligent:: SCALING_MODE
Flags indicating how an image is stretched to fit a given monitor's resolution.
| Enumerators | |
|---|---|
| SCALING_MODE_UNSPECIFIED |
Unspecified scaling. D3D Counterpart: DXGI_MODE_SCALING_UNSPECIFIED. |
| SCALING_MODE_CENTERED |
Specifies no scaling. The image is centered on the display. This flag is typically used for a fixed-dot-pitch display (such as an LED display). D3D Counterpart: DXGI_MODE_SCALING_CENTERED. |
| SCALING_MODE_STRETCHED |
Specifies stretched scaling. D3D Counterpart: DXGI_MODE_SCALING_STRETCHED. |
enum Diligent:: SCANLINE_ORDER
Flags indicating the method the raster uses to create an image on a surface.
| Enumerators | |
|---|---|
| SCANLINE_ORDER_UNSPECIFIED |
Scanline order is unspecified D3D Counterpart: DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED. |
| SCANLINE_ORDER_PROGRESSIVE |
The image is created from the first scanline to the last without skipping any D3D Counterpart: DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE. |
| SCANLINE_ORDER_UPPER_FIELD_FIRST |
The image is created beginning with the upper field D3D Counterpart: DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST. |
| SCANLINE_ORDER_LOWER_FIELD_FIRST |
The image is created beginning with the lower field D3D Counterpart: DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST. |
enum Diligent:: SWAP_CHAIN_USAGE_FLAGS: Uint32
Defines allowed swap chain usage flags.
| Enumerators | |
|---|---|
| SWAP_CHAIN_USAGE_NONE |
No allowed usage. |
| SWAP_CHAIN_USAGE_RENDER_TARGET |
Swap chain can be used as render target ouput. |
| SWAP_CHAIN_USAGE_SHADER_INPUT |
Swap chain images can be used as shader inputs. |
| SWAP_CHAIN_USAGE_COPY_SOURCE |
Swap chain images can be used as source of copy operation. |
| SWAP_CHAIN_USAGE_LAST |
enum Diligent:: SURFACE_TRANSFORM: Uint32
The transform applied to the image content prior to presentation.
| Enumerators | |
|---|---|
| SURFACE_TRANSFORM_OPTIMAL |
Uset the most optimal surface transform. |
| SURFACE_TRANSFORM_IDENTITY |
The image content is presented without being transformed. |
| SURFACE_TRANSFORM_ROTATE_90 |
The image content is rotated 90 degrees clockwise. |
| SURFACE_TRANSFORM_ROTATE_180 |
The image content is rotated 180 degrees clockwise. |
| SURFACE_TRANSFORM_ROTATE_270 |
The image content is rotated 270 degrees clockwise. |
| SURFACE_TRANSFORM_HORIZONTAL_MIRROR |
The image content is mirrored horizontally. |
| SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90 |
The image content is mirrored horizontally, then rotated 90 degrees clockwise. |
| SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180 |
The image content is mirrored horizontally, then rotated 180 degrees clockwise. |
| SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270 |
The image content is mirrored horizontally, then rotated 270 degrees clockwise. |
enum Diligent:: QUERY_TYPE
Query type.
| Enumerators | |
|---|---|
| QUERY_TYPE_UNDEFINED |
Query type is undefined. |
| QUERY_TYPE_OCCLUSION |
Gets the number of samples that passed the depth and stencil tests in between IDeviceContext:: |
| QUERY_TYPE_BINARY_OCCLUSION |
Acts like QUERY_TYPE_OCCLUSION except that it returns simply a binary true/false result: false indicates that no samples passed depth and stencil testing, true indicates that at least one sample passed depth and stencil testing. IQuery:: |
| QUERY_TYPE_TIMESTAMP |
Gets the GPU timestamp corresponding to IDeviceContext:: |
| QUERY_TYPE_PIPELINE_STATISTICS |
Gets pipeline statistics, such as the number of pixel shader invocations in between IDeviceContext:: |
| QUERY_TYPE_DURATION |
Gets the number of high-frequency counter ticks between IDeviceContext:: |
| QUERY_TYPE_NUM_TYPES |
The number of query types in the enum. |
enum Diligent:: RENDER_DEVICE_TYPE
Device type.
| Enumerators | |
|---|---|
| RENDER_DEVICE_TYPE_UNDEFINED |
Undefined device. |
| RENDER_DEVICE_TYPE_D3D11 |
D3D11 device. |
| RENDER_DEVICE_TYPE_D3D12 |
D3D12 device. |
| RENDER_DEVICE_TYPE_GL |
OpenGL device. |
| RENDER_DEVICE_TYPE_GLES |
OpenGLES device. |
| RENDER_DEVICE_TYPE_VULKAN |
Vulkan device. |
| RENDER_DEVICE_TYPE_METAL |
Metal device (not yet implemented) |
enum Diligent:: DEVICE_FEATURE_STATE: Uint8
Device feature state.
| Enumerators | |
|---|---|
| DEVICE_FEATURE_STATE_DISABLED |
Device feature is disabled. |
| DEVICE_FEATURE_STATE_ENABLED |
Device feature is enabled. If a feature is requested to be enabled during the initialization through EngineCreateInfo::Feautures, but is not supported by the device/driver/platform, the engine will fail to initialize. |
| DEVICE_FEATURE_STATE_OPTIONAL |
Device feature is optional. During the initialization the engine will attempt to enable the feature. If the feature is not supported by the device/driver/platform, the engine will successfully be initialized, but the feature will be disabled. The actual feature state can be queried from DeviceCaps structure. |
enum Diligent:: ADAPTER_VENDOR: Uint8
Graphics adapter vendor.
| Enumerators | |
|---|---|
| ADAPTER_VENDOR_UNKNOWN |
Adapter vendor is unknown. |
| ADAPTER_VENDOR_NVIDIA |
Adapter vendor is NVidia. |
| ADAPTER_VENDOR_AMD |
Adapter vendor is AMD. |
| ADAPTER_VENDOR_INTEL |
Adapter vendor is Intel. |
| ADAPTER_VENDOR_ARM |
Adapter vendor is ARM. |
| ADAPTER_VENDOR_QUALCOMM |
Adapter vendor is Qualcomm. |
| ADAPTER_VENDOR_IMGTECH |
Adapter vendor is Imagination Technologies. |
| ADAPTER_VENDOR_MSFT |
Adapter vendor is Microsoft (software rasterizer) |
enum Diligent:: WAVE_FEATURE: Uint32
Describes the wave feature types. In Vulkan backend, you should check which features are supported by device. In Direct3D12 backend, all shader model 6.0 wave functions are supported if WaveOp feature is enabled. see doc/WaveOp.md.
enum Diligent:: D3D11_DEBUG_FLAGS: Uint32
Debug flags that can be specified when creating Direct3D11-based engine implementation.
| Enumerators | |
|---|---|
| D3D11_DEBUG_FLAG_NONE |
No debug flag. |
| D3D11_DEBUG_FLAG_CREATE_DEBUG_DEVICE |
Whether to create Direct3D11 debug device. |
| D3D11_DEBUG_FLAG_VERIFY_COMMITTED_SHADER_RESOURCES |
Before executing draw/dispatch command, verify that all required shader resources are bound to the device context. |
| D3D11_DEBUG_FLAG_VERIFY_COMMITTED_RESOURCE_RELEVANCE |
Verify that all committed cotext resources are relevant, i.e. they are consistent with the committed resource cache. This is very expensive and should generally not be necessary. |
enum Diligent:: DIRECT3D_FEATURE_LEVEL: Uint8
Direct3D11/12 feature level.
| Enumerators | |
|---|---|
| DIRECT3D_FEATURE_LEVEL_10_0 |
Feature level 10.0. |
| DIRECT3D_FEATURE_LEVEL_10_1 |
Feature level 10.1. |
| DIRECT3D_FEATURE_LEVEL_11_0 |
Feature level 11.0. |
| DIRECT3D_FEATURE_LEVEL_11_1 |
Feature level 11.1. |
| DIRECT3D_FEATURE_LEVEL_12_0 |
Feature level 12.0. |
| DIRECT3D_FEATURE_LEVEL_12_1 |
Feature level 12.1. |
enum Diligent:: COMPONENT_TYPE: Uint8
Describes texture format component type.
| Enumerators | |
|---|---|
| COMPONENT_TYPE_UNDEFINED |
Undefined component type. |
| COMPONENT_TYPE_FLOAT |
Floating point component type. |
| COMPONENT_TYPE_SNORM |
Signed-normalized-integer component type. |
| COMPONENT_TYPE_UNORM |
Unsigned-normalized-integer component type. |
| COMPONENT_TYPE_UNORM_SRGB |
Unsigned-normalized-integer sRGB component type. |
| COMPONENT_TYPE_SINT |
Signed-integer component type. |
| COMPONENT_TYPE_UINT |
Unsigned-integer component type. |
| COMPONENT_TYPE_DEPTH |
Depth component type. |
| COMPONENT_TYPE_DEPTH_STENCIL |
Depth-stencil component type. |
| COMPONENT_TYPE_COMPOUND |
Compound component type (example texture formats: TEX_FORMAT_R11G11B10_FLOAT or TEX_FORMAT_RGB9E5_SHAREDEXP) |
| COMPONENT_TYPE_COMPRESSED |
Compressed component type. |
enum Diligent:: RESOURCE_DIMENSION_SUPPORT: Uint32
Describes device support of a particular resource dimension for a given texture format.
| Enumerators | |
|---|---|
| RESOURCE_DIMENSION_SUPPORT_NONE |
The device does not support any resources for this format. |
| RESOURCE_DIMENSION_SUPPORT_BUFFER |
Indicates if the device supports buffer resources for a particular texture format. |
| RESOURCE_DIMENSION_SUPPORT_TEX_1D |
Indicates if the device supports 1D textures for a particular texture format. |
| RESOURCE_DIMENSION_SUPPORT_TEX_1D_ARRAY |
Indicates if the device supports 1D texture arrays for a particular texture format. |
| RESOURCE_DIMENSION_SUPPORT_TEX_2D |
Indicates if the device supports 2D textures for a particular texture format. |
| RESOURCE_DIMENSION_SUPPORT_TEX_2D_ARRAY |
Indicates if the device supports 2D texture arrays for a particular texture format. |
| RESOURCE_DIMENSION_SUPPORT_TEX_3D |
Indicates if the device supports 3D textures for a particular texture format. |
| RESOURCE_DIMENSION_SUPPORT_TEX_CUBE |
Indicates if the device supports cube textures for a particular texture format. |
| RESOURCE_DIMENSION_SUPPORT_TEX_CUBE_ARRAY |
Indicates if the device supports cube texture arrays for a particular texture format. |
enum Diligent:: PIPELINE_STAGE_FLAGS: Uint32
Pipeline stage flags.
These flags mirror VkPipelineStageFlagBits enum and only have effect in Vulkan backend.
| Enumerators | |
|---|---|
| PIPELINE_STAGE_FLAG_UNDEFINED |
Undefined stage. |
| PIPELINE_STAGE_FLAG_TOP_OF_PIPE |
The top of the pipeline. |
| PIPELINE_STAGE_FLAG_DRAW_INDIRECT |
The stage of the pipeline where Draw/DispatchIndirect data structures are consumed. |
| PIPELINE_STAGE_FLAG_VERTEX_INPUT |
The stage of the pipeline where vertex and index buffers are consumed. |
| PIPELINE_STAGE_FLAG_VERTEX_SHADER |
Vertex shader stage. |
| PIPELINE_STAGE_FLAG_HULL_SHADER |
Hull shader stage. |
| PIPELINE_STAGE_FLAG_DOMAIN_SHADER |
Domain shader stage. |
| PIPELINE_STAGE_FLAG_GEOMETRY_SHADER |
Geometry shader stage. |
| PIPELINE_STAGE_FLAG_PIXEL_SHADER |
Pixel shader stage. |
| PIPELINE_STAGE_FLAG_EARLY_FRAGMENT_TESTS |
The stage of the pipeline where early fragment tests (depth and stencil tests before fragment shading) are performed. This stage also includes subpass load operations for framebuffer attachments with a depth/stencil format. |
| PIPELINE_STAGE_FLAG_LATE_FRAGMENT_TESTS |
The stage of the pipeline where late fragment tests (depth and stencil tests after fragment shading) are performed. This stage also includes subpass store operations for framebuffer attachments with a depth/stencil format. |
| PIPELINE_STAGE_FLAG_RENDER_TARGET |
The stage of the pipeline after blending where the final color values are output from the pipeline. This stage also includes subpass load and store operations and multisample resolve operations for framebuffer attachments with a color or depth/stencil format. |
| PIPELINE_STAGE_FLAG_COMPUTE_SHADER |
Compute shader stage. |
| PIPELINE_STAGE_FLAG_TRANSFER |
The stage where all copy and outside-of-renderpass resolve and clear operations happen. |
| PIPELINE_STAGE_FLAG_BOTTOM_OF_PIPE |
The bottom of the pipeline. |
| PIPELINE_STAGE_FLAG_HOST |
A pseudo-stage indicating execution on the host of reads/writes of device memory. This stage is not invoked by any commands recorded in a command buffer. |
| PIPELINE_STAGE_FLAG_CONDITIONAL_RENDERING |
The stage of the pipeline where the predicate of conditional rendering is consumed. |
| PIPELINE_STAGE_FLAG_SHADING_RATE_TEXTURE |
The stage of the pipeline where the shading rate texture is read to determine the shading rate for portions of a rasterized primitive. |
| PIPELINE_STAGE_FLAG_RAY_TRACING_SHADER |
Ray tracing shader. |
| PIPELINE_STAGE_FLAG_ACCELERATION_STRUCTURE_BUILD |
Acceleration structure build shader. |
| PIPELINE_STAGE_FLAG_TASK_SHADER |
Task shader stage. |
| PIPELINE_STAGE_FLAG_MESH_SHADER |
Mesh shader stage. |
| PIPELINE_STAGE_FLAG_FRAGMENT_DENSITY_PROCESS | |
| PIPELINE_STAGE_FLAG_DEFAULT |
Default pipeline stage that is determined by the resource state. For example, RESOURCE_STATE_RENDER_TARGET corresponds to PIPELINE_STAGE_FLAG_RENDER_TARGET pipeline stage. |
enum Diligent:: ACCESS_FLAGS: Uint32
Access flag.
The flags mirror VkAccessFlags enum and only have effect in Vulkan backend.
| Enumerators | |
|---|---|
| ACCESS_FLAG_NONE |
No access. |
| ACCESS_FLAG_INDIRECT_COMMAND_READ |
Read access to indirect command data read as part of an indirect drawing or dispatch command. |
| ACCESS_FLAG_INDEX_READ |
Read access to an index buffer as part of an indexed drawing command. |
| ACCESS_FLAG_VERTEX_READ |
Read access to a vertex buffer as part of a drawing command. |
| ACCESS_FLAG_UNIFORM_READ |
Read access to a uniform buffer. |
| ACCESS_FLAG_INPUT_ATTACHMENT_READ |
Read access to an input attachment within a render pass during fragment shading. |
| ACCESS_FLAG_SHADER_READ |
Read access from a shader resource, formatted buffer, UAV. |
| ACCESS_FLAG_SHADER_WRITE |
Write access to a UAV. |
| ACCESS_FLAG_RENDER_TARGET_READ |
Read access to a color render target, such as via blending, logic operations, or via certain subpass load operations. |
| ACCESS_FLAG_RENDER_TARGET_WRITE |
Write access to a color render target, resolve, or depth/stencil resolve attachment during a render pass or via certain subpass load and store operations. |
| ACCESS_FLAG_DEPTH_STENCIL_READ |
Read access to a depth/stencil buffer, via depth or stencil operations or via certain subpass load operations. |
| ACCESS_FLAG_DEPTH_STENCIL_WRITE |
Write access to a depth/stencil buffer, via depth or stencil operations or via certain subpass load and store operations. |
| ACCESS_FLAG_COPY_SRC |
Read access to an texture or buffer in a copy operation. |
| ACCESS_FLAG_COPY_DST |
Write access to an texture or buffer in a copy operation. |
| ACCESS_FLAG_HOST_READ |
Read access by a host operation. Accesses of this type are not performed through a resource, but directly on memory. |
| ACCESS_FLAG_HOST_WRITE |
Write access by a host operation. Accesses of this type are not performed through a resource, but directly on memory. |
| ACCESS_FLAG_MEMORY_READ |
All read accesses. It is always valid in any access mask, and is treated as equivalent to setting all READ access flags that are valid where it is used. |
| ACCESS_FLAG_MEMORY_WRITE |
All write accesses. It is always valid in any access mask, and is treated as equivalent to setting all WRITE access. |
| ACCESS_FLAG_CONDITIONAL_RENDERING_READ |
Read access to a predicate as part of conditional rendering. |
| ACCESS_FLAG_SHADING_RATE_TEXTURE_READ |
Read access to a shading rate texture as part of a drawing comman. |
| ACCESS_FLAG_ACCELERATION_STRUCTURE_READ |
Read access to an acceleration structure as part of a trace or build command. |
| ACCESS_FLAG_ACCELERATION_STRUCTURE_WRITE |
Write access to an acceleration structure or acceleration structure scratch buffer as part of a build command. |
| ACCESS_FLAG_FRAGMENT_DENSITY_MAP_READ |
Read access to a fragment density map attachment during dynamic fragment density map operations. |
| ACCESS_FLAG_DEFAULT |
Default access type that is determined by the resource state. For example, RESOURCE_STATE_RENDER_TARGET corresponds to ACCESS_FLAG_RENDER_TARGET_WRITE access type. |
enum Diligent:: RESOURCE_STATE: Uint32
Resource usage state.
| Enumerators | |
|---|---|
| RESOURCE_STATE_UNKNOWN |
The resource state is not known to the engine and is managed by the application. |
| RESOURCE_STATE_UNDEFINED |
The resource state is known to the engine, but is undefined. A resource is typically in an undefined state right after initialization. |
| RESOURCE_STATE_VERTEX_BUFFER |
The resource is accessed as a vertex buffer. |
| RESOURCE_STATE_CONSTANT_BUFFER |
The resource is accessed as a constant (uniform) buffer. |
| RESOURCE_STATE_INDEX_BUFFER |
The resource is accessed as an index buffer. |
| RESOURCE_STATE_RENDER_TARGET |
The resource is accessed as a render target. |
| RESOURCE_STATE_UNORDERED_ACCESS |
The resource is used for unordered access. |
| RESOURCE_STATE_DEPTH_WRITE |
The resource is used in a writable depth-stencil view or in clear operation. |
| RESOURCE_STATE_DEPTH_READ |
The resource is used in a read-only depth-stencil view. |
| RESOURCE_STATE_SHADER_RESOURCE |
The resource is accessed from a shader. |
| RESOURCE_STATE_STREAM_OUT |
The resource is used as the destination for stream output. |
| RESOURCE_STATE_INDIRECT_ARGUMENT |
The resource is used as an indirect draw/dispatch arguments buffer. |
| RESOURCE_STATE_COPY_DEST |
The resource is used as the destination in a copy operation. |
| RESOURCE_STATE_COPY_SOURCE |
The resource is used as the source in a copy operation. |
| RESOURCE_STATE_RESOLVE_DEST |
The resource is used as the destination in a resolve operation. |
| RESOURCE_STATE_RESOLVE_SOURCE |
The resource is used as the source in a resolve operation. |
| RESOURCE_STATE_INPUT_ATTACHMENT |
The resource is used as an input attachment in a render pass subpass. |
| RESOURCE_STATE_PRESENT |
The resource is used for present. |
| RESOURCE_STATE_BUILD_AS_READ |
The resource is used as vertex/index/instance buffer in an AS building operation or as an acceleration structure source in an AS copy operation. |
| RESOURCE_STATE_BUILD_AS_WRITE |
The resource is used as the target for AS building or AS copy operations. |
| RESOURCE_STATE_RAY_TRACING |
The resource is used as a top-level AS shader resource in a trace rays operation. |
| RESOURCE_STATE_MAX_BIT | |
| RESOURCE_STATE_GENERIC_READ |
enum Diligent:: STATE_TRANSITION_TYPE: Uint8
State transition barrier type.
| Enumerators | |
|---|---|
| STATE_TRANSITION_TYPE_IMMEDIATE |
Perform state transition immediately. |
| STATE_TRANSITION_TYPE_BEGIN |
Begin split barrier. This mode only has effect in Direct3D12 backend, and corresponds to D3D12_ |
| STATE_TRANSITION_TYPE_END |
End split barrier. This mode only has effect in Direct3D12 backend, and corresponds to D3D12_ |
enum Diligent:: INPUT_ELEMENT_FREQUENCY
Input frequency.
| Enumerators | |
|---|---|
| INPUT_ELEMENT_FREQUENCY_UNDEFINED |
Frequency is undefined. |
| INPUT_ELEMENT_FREQUENCY_PER_VERTEX |
Input data is per-vertex data. |
| INPUT_ELEMENT_FREQUENCY_PER_INSTANCE |
Input data is per-instance data. |
| INPUT_ELEMENT_FREQUENCY_NUM_FREQUENCIES |
Helper value that stores the total number of frequencies in the enumeration. |
enum Diligent:: PIPELINE_RESOURCE_FLAGS: Uint8
Flags that define pipeline resource properties.
| Enumerators | |
|---|---|
| PIPELINE_RESOURCE_FLAG_UNKNOWN |
Resource has no special properties. |
| PIPELINE_RESOURCE_FLAG_NO_DYNAMIC_BUFFERS |
Indicates that dynamic buffers will never be bound to the resource variable. Applies to SHADER_RESOURCE_TYPE_CONSTANT_BUFFER, SHADER_RESOURCE_TYPE_BUFFER_UAV, SHADER_RESOURCE_TYPE_BUFFER_SRV resources. |
| PIPELINE_RESOURCE_FLAG_COMBINED_SAMPLER |
Indicates that a texture SRV will be combined with a sampler. Applies to SHADER_RESOURCE_TYPE_TEXTURE_SRV resources. |
| PIPELINE_RESOURCE_FLAG_FORMATTED_BUFFER |
Indicates that this variable will be used to bind formatted buffers. Applies to SHADER_RESOURCE_TYPE_BUFFER_UAV and SHADER_RESOURCE_TYPE_BUFFER_SRV resources. |
| PIPELINE_RESOURCE_FLAG_RUNTIME_ARRAY |
Indicates that resource is a run-time sized shader array (e.g. an array without a specific size). |
| PIPELINE_RESOURCE_FLAG_LAST |
enum Diligent:: PIPELINE_TYPE: Uint8
Pipeline type.
| Enumerators | |
|---|---|
| PIPELINE_TYPE_GRAPHICS |
Graphics pipeline, which is used by IDeviceContext:: |
| PIPELINE_TYPE_COMPUTE |
Compute pipeline, which is used by IDeviceContext:: |
| PIPELINE_TYPE_MESH |
Mesh pipeline, which is used by IDeviceContext:: |
| PIPELINE_TYPE_RAY_TRACING |
Ray tracing pipeline, which is used by IDeviceContext:: |
| PIPELINE_TYPE_LAST | |
| PIPELINE_TYPE_INVALID |
enum Diligent:: PSO_CREATE_FLAGS: Uint32
Pipeline state creation flags.
| Enumerators | |
|---|---|
| PSO_CREATE_FLAG_NONE |
Null flag. |
| PSO_CREATE_FLAG_IGNORE_MISSING_VARIABLES |
Ignore missing variables. By default, the engine outputs a warning for every variable provided as part of the pipeline resource layout description that is not found in any of the designated shader stages. Use this flag to silence these warnings. |
| PSO_CREATE_FLAG_IGNORE_MISSING_IMMUTABLE_SAMPLERS |
Ignore missing immutable samplers. By default, the engine outputs a warning for every immutable sampler provided as part of the pipeline resource layout description that is not found in any of the designated shader stages. Use this flag to silence these warnings. |
enum Diligent:: FILL_MODE: Int8
Fill mode.
This enumeration determines the fill mode to use when rendering triangles and mirrors the D3D11_
| Enumerators | |
|---|---|
| FILL_MODE_UNDEFINED |
Undefined fill mode. |
| FILL_MODE_WIREFRAME |
Rasterize triangles using wireframe fill. |
| FILL_MODE_SOLID |
Rasterize triangles using solid fill. |
| FILL_MODE_NUM_MODES |
Helper value that stores the total number of fill modes in the enumeration. |
enum Diligent:: CULL_MODE: Int8
Cull mode.
This enumeration defines which triangles are not drawn during the rasterization and mirrors D3D11_
| Enumerators | |
|---|---|
| CULL_MODE_UNDEFINED |
Undefined cull mode. |
| CULL_MODE_NONE |
Draw all triangles. |
| CULL_MODE_FRONT |
Do not draw triangles that are front-facing. Front- and back-facing triangles are determined by the RasterizerStateDesc:: |
| CULL_MODE_BACK |
Do not draw triangles that are back-facing. Front- and back-facing triangles are determined by the RasterizerStateDesc:: |
| CULL_MODE_NUM_MODES |
Helper value that stores the total number of cull modes in the enumeration. |
enum Diligent:: ATTACHMENT_LOAD_OP: Uint8
Render pass attachment load operation Vulkan counterpart: VkAttachmentLoadOp. D3D12 counterpart: D3D12_
| Enumerators | |
|---|---|
| ATTACHMENT_LOAD_OP_LOAD |
The previous contents of the texture within the render area will be preserved. Vulkan counterpart: VK_ATTACHMENT_LOAD_OP_LOAD. D3D12 counterpart: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE. |
| ATTACHMENT_LOAD_OP_CLEAR |
The contents within the render area will be cleared to a uniform value, which is specified when a render pass instance is begun. Vulkan counterpart: VK_ATTACHMENT_LOAD_OP_CLEAR. D3D12 counterpart: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR. |
| ATTACHMENT_LOAD_OP_DISCARD |
The previous contents within the area need not be preserved; the contents of the attachment will be undefined inside the render area. Vulkan counterpart: VK_ATTACHMENT_LOAD_OP_DONT_CARE. D3D12 counterpart: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD. |
enum Diligent:: ATTACHMENT_STORE_OP: Uint8
Render pass attachment store operation Vulkan counterpart: VkAttachmentStoreOp. D3D12 counterpart: D3D12_
| Enumerators | |
|---|---|
| ATTACHMENT_STORE_OP_STORE |
The contents generated during the render pass and within the render area are written to memory. Vulkan counterpart: VK_ATTACHMENT_STORE_OP_STORE. D3D12 counterpart: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE. |
| ATTACHMENT_STORE_OP_DISCARD |
The contents within the render area are not needed after rendering, and may be discarded; the contents of the attachment will be undefined inside the render area. Vulkan counterpart: VK_ATTACHMENT_STORE_OP_DONT_CARE. D3D12 counterpart: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD. |
enum Diligent:: SHADER_SOURCE_LANGUAGE: Uint32
Describes the shader source code language.
| Enumerators | |
|---|---|
| SHADER_SOURCE_LANGUAGE_DEFAULT |
Default language (GLSL for OpenGL/OpenGLES/Vulkan devices, HLSL for Direct3D11/Direct3D12 devices) |
| SHADER_SOURCE_LANGUAGE_HLSL |
The source language is HLSL. |
| SHADER_SOURCE_LANGUAGE_GLSL |
The source language is GLSL. |
| SHADER_SOURCE_LANGUAGE_MSL |
The source language is Metal shading language (MSL) |
| SHADER_SOURCE_LANGUAGE_GLSL_VERBATIM |
The source language is GLSL that should be compiled verbatim. By default the engine prepends GLSL shader source code with platform-specific definitions. For instance it adds appropriate #version directive (e.g. '#version 430 core' or '#version 310 es') so that the same source will work on different versions of desktop OpenGL and OpenGLES. When SHADER_SOURCE_LANGUAGE_GLSL_VERBATIM is used, the source code will be compiled as is. Note that shader macros are ignored when compiling GLSL verbatim in OpenGL backend, and an application should add the macro definitions to the source code. |
enum Diligent:: SHADER_COMPILER: Uint32
Describes the shader compiler that will be used to compile the shader source code.
| Enumerators | |
|---|---|
| SHADER_COMPILER_DEFAULT |
Default compiler for specific language and API that is selected as follows:
|
| SHADER_COMPILER_GLSLANG |
Built-in glslang compiler for GLSL and HLSL. |
| SHADER_COMPILER_DXC |
Modern HLSL compiler (DXC) for Direct3D12 and Vulkan with Shader Model 6.x support. |
| SHADER_COMPILER_FXC |
Legacy HLSL compiler (FXC) for Direct3D11 and Direct3D12 supporting shader models up to 5.1. |
| SHADER_COMPILER_LAST |
enum Diligent:: CREATE_SHADER_SOURCE_INPUT_STREAM_FLAGS: Uint32
Describes the flags that can be passed over to IShaderSourceInputStreamFactory::
| Enumerators | |
|---|---|
| CREATE_SHADER_SOURCE_INPUT_STREAM_FLAG_NONE |
No flag. |
| CREATE_SHADER_SOURCE_INPUT_STREAM_FLAG_SILENT |
Do not output any messages if the file is not found or other errors occur. |
enum Diligent:: SHADER_COMPILE_FLAGS: Uint32
Shader compilation flags.
| Enumerators | |
|---|---|
| SHADER_COMPILE_FLAG_NONE |
No flags. |
| SHADER_COMPILE_FLAG_ENABLE_UNBOUNDED_ARRAYS |
Enable unbounded resource arrays (e.g. Texture2D g_Texture[]). |
| SHADER_COMPILE_FLAG_LAST |
enum Diligent:: SHADER_RESOURCE_TYPE: Uint8
Describes shader resource type.
| Enumerators | |
|---|---|
| SHADER_RESOURCE_TYPE_UNKNOWN |
Shader resource type is unknown. |
| SHADER_RESOURCE_TYPE_CONSTANT_BUFFER |
Constant (uniform) buffer. |
| SHADER_RESOURCE_TYPE_TEXTURE_SRV |
Shader resource view of a texture (sampled image) |
| SHADER_RESOURCE_TYPE_BUFFER_SRV |
Shader resource view of a buffer (read-only storage image) |
| SHADER_RESOURCE_TYPE_TEXTURE_UAV |
Unordered access view of a texture (sotrage image) |
| SHADER_RESOURCE_TYPE_BUFFER_UAV |
Unordered access view of a buffer (storage buffer) |
| SHADER_RESOURCE_TYPE_SAMPLER |
Sampler (separate sampler) |
| SHADER_RESOURCE_TYPE_INPUT_ATTACHMENT |
Input attachment in a render pass. |
| SHADER_RESOURCE_TYPE_ACCEL_STRUCT |
Acceleration structure. |
| SHADER_RESOURCE_TYPE_LAST |
enum Diligent:: VERIFY_SBT_FLAGS: Uint32
Defines shader binding table validation flags, see IShaderBindingTable::
| Enumerators | |
|---|---|
| VERIFY_SBT_FLAG_SHADER_ONLY |
Check that all shaders are bound or inactive. |
| VERIFY_SBT_FLAG_SHADER_RECORD |
Check that shader record data are initialized. |
| VERIFY_SBT_FLAG_TLAS |
Check that all TLASes that were used in the SBT are alive and shader binding indices have not changed. |
| VERIFY_SBT_FLAG_ALL |
Enable all validations. |
enum Diligent:: SHADER_RESOURCE_VARIABLE_TYPE: Uint8
Describes the type of the shader resource variable.
| Enumerators | |
|---|---|
| SHADER_RESOURCE_VARIABLE_TYPE_STATIC |
Shader resource bound to the variable is the same for all SRB instances. It must be set once directly through Pipeline State object. |
| SHADER_RESOURCE_VARIABLE_TYPE_MUTABLE |
Shader resource bound to the variable is specific to the shader resource binding instance (see Diligent:: |
| SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC |
Shader variable binding is dynamic. It can be set multiple times for every instance of shader resource binding (see Diligent:: |
| SHADER_RESOURCE_VARIABLE_TYPE_NUM_TYPES |
Total number of shader variable types. |
enum Diligent:: BIND_SHADER_RESOURCES_FLAGS: Uint32
Shader resource binding flags.
| Enumerators | |
|---|---|
| BIND_SHADER_RESOURCES_UPDATE_STATIC |
Indicates that static shader variable bindings are to be updated. |
| BIND_SHADER_RESOURCES_UPDATE_MUTABLE |
Indicates that mutable shader variable bindings are to be updated. |
| BIND_SHADER_RESOURCES_UPDATE_DYNAMIC |
Indicates that dynamic shader variable bindings are to be updated. |
| BIND_SHADER_RESOURCES_UPDATE_ALL |
Indicates that all shader variable types (static, mutable and dynamic) are to be updated. |
| BIND_SHADER_RESOURCES_KEEP_EXISTING |
If this flag is specified, all existing bindings will be preserved and only unresolved ones will be updated. If this flag is not specified, every shader variable will be updated if the mapping contains corresponding resource. |
| BIND_SHADER_RESOURCES_VERIFY_ALL_RESOLVED |
If this flag is specified, all shader bindings are expected to be resolved after the call. If this is not the case, debug message will be displayed. |
enum Diligent:: UAV_ACCESS_FLAG: Uint8
Describes allowed unordered access view mode.
| Enumerators | |
|---|---|
| UAV_ACCESS_UNSPECIFIED |
Access mode is unspecified. |
| UAV_ACCESS_FLAG_READ |
Allow read operations on the UAV. |
| UAV_ACCESS_FLAG_WRITE |
Allow write operations on the UAV. |
| UAV_ACCESS_FLAG_READ_WRITE |
Allow read and write operations on the UAV. |
enum Diligent:: TEXTURE_VIEW_FLAGS: Uint8
Texture view flags.
| Enumerators | |
|---|---|
| TEXTURE_VIEW_FLAG_NONE |
No flags. |
| TEXTURE_VIEW_FLAG_ALLOW_MIP_MAP_GENERATION |
Allow automatic mipmap generation for this view. This flag is only allowed for TEXTURE_VIEW_SHADER_RESOURCE view type. The texture must be created with MISC_TEXTURE_FLAG_GENERATE_MIPS flag. |
enum Diligent:: HIT_GROUP_BINDING_MODE: Uint8
Defines hit group binding mode used by the top-level AS.
| Enumerators | |
|---|---|
| HIT_GROUP_BINDING_MODE_PER_GEOMETRY |
Each geometry in every instance may use a unique hit shader group. In this mode, the SBT reserves space for each geometry in every instance in the TLAS and uses most memory. See IShaderBindingTable:: |
| HIT_GROUP_BINDING_MODE_PER_INSTANCE |
Each instance may use a unique hit shader group. In this mode, the SBT reserves one slot for each instance irrespective of how many geometries it contains, so it uses less memory. See IShaderBindingTable:: |
| HIT_GROUP_BINDING_MODE_PER_TLAS |
All instances in each TLAS will use the same hit group. In this mode, the SBT reserves a single slot for one hit group for each TLAS and uses least memory. See IShaderBindingTable:: |
| HIT_GROUP_BINDING_MODE_USER_DEFINED |
The user must specify TLASBuildInstanceData:: |
| HIT_GROUP_BINDING_MODE_LAST |
enum Diligent:: DEBUG_MESSAGE_SEVERITY
Describes debug message severity.
| Enumerators | |
|---|---|
| DEBUG_MESSAGE_SEVERITY_INFO |
Information message. |
| DEBUG_MESSAGE_SEVERITY_WARNING |
Warning message. |
| DEBUG_MESSAGE_SEVERITY_ERROR |
Error, with potential recovery. |
| DEBUG_MESSAGE_SEVERITY_FATAL_ERROR |
Fatal error - recovery is not possible. |
Typedef documentation
using Diligent:: D3D11ShaderResourceCounters = std::array<D3D11ResourceRangeCounters, D3D11_ RESOURCE_ RANGE_ COUNT>
Resource counters for all shader stages and all resource types.
Function documentation
template<typename TCallback>
void Diligent:: TraceLineThroughGrid(float2 f2Start,
float2 f2End,
int2 i2GridSize,
TCallback Callback)
Traces a 2D line through the square cell grid and enumerates all cells the line touches.
| Template parameters | |
|---|---|
| TCallback | - Type of the callback function. |
| Parameters | |
| f2Start | - Line start point. |
| f2End | - Line end point. |
| i2GridSize | - Grid dimensions. |
| Callback | - Callback function that will be caled with the argument of type int2 for every cell visited. The function should return true to continue tracing and false to stop it. |
For example, for the line below on a 2x2 grid, the algorithm will trace the following cells: (0,0), (0,1), (1,1)
End
/
__________ _/________ 2 | |/ | | / | | /| | |________/_|__________| 1 | / | | | / | | | Start | | |__________|__________| 0 0 1 2
template<typename T, typename IntermediateType>
bool Diligent:: IsPointInsideTriangle(const Vector2<T>& V0,
const Vector2<T>& V1,
const Vector2<T>& V2,
const Vector2<T>& Point,
bool AllowEdges)
Tests if a point is inside triangle.
| Template parameters | |
|---|---|
| T | - Vector component type |
| IntermediateType | - Intermediate type used in calculations |
| Parameters | |
| V0 in | - First triangle vertex |
| V1 in | - Second triangle vertex |
| V2 in | - Third triangle vertex |
| Point in | - Point to test |
| AllowEdges in | - Whether to accept points lying on triangle edges |
| Returns | true if the point lies inside the triangle, and false otherwise. |
template<typename T, class TCallback>
void Diligent:: RasterizeTriangle(Vector2<T> V0,
Vector2<T> V1,
Vector2<T> V2,
TCallback Callback)
Rasterizes a triangle and calls the callback function for every sample covered.
| Template parameters | |
|---|---|
| T | |
| TCallback | - Type of the callback function. |
| Parameters | |
| V0 in | - First triangle vertex. |
| V1 in | - Second triangle vertex. |
| V2 in | - Third triangle vertex. |
| Callback in | - Callback function that will be caled with the argument of type int2 for every sample covered. |
The samples are assumed to be located at integer coordinates. Samples located on edges are always enumerated. Samples are enumerated row by row, bottom to top, left to right. For example, for triangle (1, 1)-(1, 3)-(3, 1), the following locations will be enumerated: (1, 1), (2, 1), (3, 1), (1, 2), (2, 2), (1, 3).
3 * *. * * | '. 2 * * *. * | '. 1 * ——*
0 * * * * 0 1 2 3
template<bool AllowTouch, typename T>
bool Diligent:: CheckBox2DBox2DOverlap(const Vector2<T>& Box0Min,
const Vector2<T>& Box0Max,
const Vector2<T>& Box1Min,
const Vector2<T>& Box1Max)
Checks if two 2D-boxes overlap.
| Parameters | |
|---|---|
| Box0Min in | - Min corner of the first box. |
| Box0Max in | - Max corner of the first box. |
| Box1Min in | - Min corner of the second box. |
| Box1Max in | - Max corner of the second box. |
| Returns | true if the bounding boxes overlap, and false otherwise. |
template<TEXTURE_ADDRESS_MODE AddressMode, bool IsNormalizedCoord>
LinearTexFilterSampleInfo Diligent:: GetLinearTexFilterSampleInfo(Uint32 Width,
float u)
Returns linear texture filter sample info, see Diligent::
| Template parameters | |
|---|---|
| AddressMode | - Texture addressing mode, see Diligent:: |
| IsNormalizedCoord | - Whether sample coordinate is normalized. |
| Parameters | |
| Width in | - Texture width. |
| u in | - Texture sample coordinate. |
| Returns | Linear texture filter sample information, see Diligent:: |
template<typename SrcType, typename DstType, TEXTURE_ADDRESS_MODE AddressModeU, TEXTURE_ADDRESS_MODE AddressModeV, bool IsNormalizedCoord>
DstType Diligent:: FilterTexture2DBilinear(Uint32 Width,
Uint32 Height,
const SrcType* pData,
size_t Stride,
float u,
float v)
Samples 2D texture using bilinear filter.
| Template parameters | |
|---|---|
| SrcType | - Source pixel type. |
| DstType | - Destination type. |
| AddressModeU | - U coordinate address mode. |
| AddressModeV | - V coordinate address mode. |
| IsNormalizedCoord | - Whether sample coordinates are normalized. |
| Parameters | |
| Width in | - Texture width. |
| Height in | - Texture height. |
| pData in | - Pointer to the texture data. |
| Stride in | - Data stride, in pixels. |
| u in | - Sample u coordinate. |
| v in | - Sample v coordinate. |
| Returns | - Filtered texture sample. |
IMemoryAllocator& Diligent:: GetRawAllocator()
Returns raw memory allocator.
Uint32 Diligent:: GetValueSize(VALUE_ TYPE Val)
Returns the size of the specified value type.
const Char* Diligent:: GetValueTypeString(VALUE_ TYPE Val)
Returns the string representing the specified value type.
const TextureFormatAttribs& Diligent:: GetTextureFormatAttribs(TEXTURE_ FORMAT Format)
Returns invariant texture format attributes, see TextureFormatAttribs for details.
| Parameters | |
|---|---|
| Format in | - Texture format which attributes are requested for. |
| Returns | Constant reference to the TextureFormatAttribs structure containing format attributes. |
TEXTURE_ FORMAT Diligent:: GetDefaultTextureViewFormat(TEXTURE_ FORMAT TextureFormat,
TEXTURE_ VIEW_ TYPE ViewType,
Uint32 BindFlags)
Returns the default format for a specified texture view type.
| Parameters | |
|---|---|
| TextureFormat | |
| ViewType in | - texture view type |
| BindFlags in | - texture bind flags |
| Returns | texture view type format |
The default view is defined as follows:
- For a fully qualified texture format, the SRV/RTV/UAV view format is the same as texture format; DSV format, if avaialble, is adjusted accrodingly (R32_FLOAT -> D32_FLOAT)
- For 32-bit typeless formats, default view is XXXX32_FLOAT (where XXXX are the actual format components)
- For 16-bit typeless formats, default view is XXXX16_FLOAT (where XXXX are the actual format components)
** R16_TYPELESS is special. If BIND_DEPTH_STENCIL flag is set, it is translated to R16_UNORM/D16_UNORM; otherwise it is translated to R16_FLOAT. - For 8-bit typeless formats, default view is XXXX8_UNORM (where XXXX are the actual format components)
- sRGB is always chosen if it is available (RGBA8_UNORM_SRGB, TEX_FORMAT_BC1_UNORM_SRGB, etc.)
- For combined depth-stencil formats, SRV format references depth component (R24_UNORM_X8_TYPELESS for D24S8 formats, and R32_FLOAT_X8X24_TYPELESS for D32S8X24 formats)
- For compressed formats, only SRV format is defined
TEXTURE_ FORMAT Diligent:: GetDefaultTextureViewFormat(const TextureDesc& TexDesc,
TEXTURE_ VIEW_ TYPE ViewType)
Returns the default format for a specified texture view type.
| Parameters | |
|---|---|
| TexDesc in | - texture description |
| ViewType in | - texture view type |
| Returns | texture view type format |
const Char* Diligent:: GetTexViewTypeLiteralName(TEXTURE_ VIEW_ TYPE ViewType)
Returns the literal name of a texture view type. For instance, for a shader resource view, "TEXTURE_VIEW_SHADER_RESOURCE" will be returned.
| Parameters | |
|---|---|
| ViewType in | - Texture view type. |
| Returns | Literal name of the texture view type. |
const Char* Diligent:: GetBufferViewTypeLiteralName(BUFFER_ VIEW_ TYPE ViewType)
Returns the literal name of a buffer view type. For instance, for an unordered access view, "BUFFER_VIEW_UNORDERED_ACCESS" will be returned.
| Parameters | |
|---|---|
| ViewType in | - Buffer view type. |
| Returns | Literal name of the buffer view type. |
const Char* Diligent:: GetShaderTypeLiteralName(SHADER_ TYPE ShaderType)
Returns the literal name of a shader type. For instance, for a pixel shader, "SHADER_TYPE_PIXEL" will be returned.
| Parameters | |
|---|---|
| ShaderType in | - Shader type. |
| Returns | Literal name of the shader type. |
String Diligent:: GetShaderStagesString(SHADER_ TYPE ShaderStages)
| Parameters | |
|---|---|
| ShaderStages in | - Shader stages. |
| Returns | The string representing the shader stages. For example, if ShaderStages == SHADER_TYPE_VERTEX | SHADER_TYPE_PIXEL, the following string will be returned: "SHADER_TYPE_VERTEX, SHADER_TYPE_PIXEL" |
const Char* Diligent:: GetShaderVariableTypeLiteralName(SHADER_ RESOURCE_ VARIABLE_ TYPE VarType,
bool bGetFullName = false)
Returns the literal name of a shader variable type. For instance, for SHADER_RESOURCE_VARIABLE_TYPE_STATIC, if bGetFullName == true, "SHADER_RESOURCE_VARIABLE_TYPE_STATIC" will be returned; if bGetFullName == false, "static" will be returned.
| Parameters | |
|---|---|
| VarType in | - Variable type. |
| bGetFullName in | - Whether to return string representation of the enum value |
| Returns | Literal name of the shader variable type. |
const Char* Diligent:: GetShaderResourceTypeLiteralName(SHADER_ RESOURCE_ TYPE ResourceType,
bool bGetFullName = false)
Returns the literal name of a shader resource type. For instance, for SHADER_RESOURCE_TYPE_CONSTANT_BUFFER, if bGetFullName == true, "SHADER_RESOURCE_TYPE_CONSTANT_BUFFER" will be returned; if bGetFullName == false, "constant buffer" will be returned.
| Parameters | |
|---|---|
| ResourceType in | - Resource type. |
| bGetFullName in | - Whether to return string representation of the enum value |
| Returns | Literal name of the shader resource type. |
const Char* Diligent:: GetViewTypeLiteralName(TEXTURE_ VIEW_ TYPE TexViewType)
Overloaded function that returns the literal name of a texture view type. see GetTexViewTypeLiteralName().
const Char* Diligent:: GetViewTypeLiteralName(BUFFER_ VIEW_ TYPE BuffViewType)
Overloaded function that returns the literal name of a buffer view type. see GetBufferViewTypeLiteralName().
const Char* Diligent:: GetFilterTypeLiteralName(FILTER_ TYPE FilterType,
bool bGetFullName)
Returns the literal name of a filter type. For instance, for FILTER_TYPE_POINT, if bGetFullName == true, "FILTER_TYPE_POINT" will be returned; if bGetFullName == false, "point" will be returned.
| Parameters | |
|---|---|
| FilterType in | - Filter type, see Diligent:: |
| bGetFullName in | - Whether to return string representation of the enum value. |
| Returns | Literal name of the filter type. |
const Char* Diligent:: GetTextureAddressModeLiteralName(TEXTURE_ ADDRESS_ MODE AddressMode,
bool bGetFullName)
Returns the literal name of a texture address mode. For instance, for TEXTURE_ADDRESS_WRAP, if bGetFullName == true, "TEXTURE_ADDRESS_WRAP" will be returned; if bGetFullName == false, "wrap" will be returned.
| Parameters | |
|---|---|
| AddressMode in | - Texture address mode, see Diligent:: |
| bGetFullName in | - Whether to return string representation of the enum value. |
| Returns | Literal name of the address mode. |
const Char* Diligent:: GetComparisonFunctionLiteralName(COMPARISON_ FUNCTION ComparisonFunc,
bool bGetFullName)
Returns the literal name of a comparison function. For instance, for COMPARISON_FUNC_LESS, if bGetFullName == true, "COMPARISON_FUNC_LESS" will be returned; if bGetFullName == false, "less" will be returned.
| Parameters | |
|---|---|
| ComparisonFunc in | - Comparison function, see Diligent:: |
| bGetFullName in | - Whether to return string representation of the enum value. |
| Returns | Literal name of the comparison function. |
const Char* Diligent:: GetStencilOpLiteralName(STENCIL_ OP StencilOp)
Returns the literal name of a stencil operation.
| Parameters | |
|---|---|
| StencilOp in | - Stencil operation, see Diligent:: |
| Returns | Literal name of the stencil operation. |
const Char* Diligent:: GetBlendFactorLiteralName(BLEND_ FACTOR BlendFactor)
Returns the literal name of a blend factor.
| Parameters | |
|---|---|
| BlendFactor in | - Blend factor, see Diligent:: |
| Returns | Literal name of the blend factor. |
const Char* Diligent:: GetBlendOperationLiteralName(BLEND_ OPERATION BlendOp)
Returns the literal name of a blend operation.
| Parameters | |
|---|---|
| BlendOp in | - Blend operation, see Diligent:: |
| Returns | Literal name of the blend operation. |
const Char* Diligent:: GetFillModeLiteralName(FILL_ MODE FillMode)
Returns the literal name of a fill mode.
| Parameters | |
|---|---|
| FillMode in | - Fill mode, see Diligent:: |
| Returns | Literal name of the fill mode. |
const Char* Diligent:: GetCullModeLiteralName(CULL_ MODE CullMode)
Returns the literal name of a cull mode.
| Parameters | |
|---|---|
| CullMode in | - Cull mode, see Diligent:: |
| Returns | Literal name of the cull mode. |
const Char* Diligent:: GetMapTypeString(MAP_ TYPE MapType)
Returns the string containing the map type.
const Char* Diligent:: GetUsageString(USAGE Usage)
Returns the string containing the usage.
const Char* Diligent:: GetResourceDimString(RESOURCE_ DIMENSION TexType)
Returns the string containing the texture type.
const Char* Diligent:: GetBindFlagString(Uint32 BindFlag)
Returns the string containing single bind flag.
String Diligent:: GetBindFlagsString(Uint32 BindFlags,
const char* Delimeter = "|")
Returns the string containing the bind flags.
String Diligent:: GetCPUAccessFlagsString(Uint32 CpuAccessFlags)
Returns the string containing the CPU access flags.
String Diligent:: GetTextureDescString(const TextureDesc& Desc)
Returns the string containing the texture description.
String Diligent:: GetBufferFormatString(const BufferFormat& Fmt)
Returns the string containing the buffer format description.
const Char* Diligent:: GetBufferModeString(BUFFER_ MODE Mode)
Returns the string containing the buffer mode description.
String Diligent:: GetBufferDescString(const BufferDesc& Desc)
Returns the string containing the buffer description.
const Char* Diligent:: GetResourceStateFlagString(RESOURCE_ STATE State)
Returns the string containing the buffer mode description.
template<typename TObjectDescType>
String Diligent:: GetObjectDescString(const TObjectDescType&)
Helper template function that converts object description into a string.
template<>
String Diligent:: GetObjectDescString(const TextureDesc& TexDesc)
Template specialization for texture description.
template<>
String Diligent:: GetObjectDescString(const BufferDesc& BuffDesc)
Template specialization for buffer description.
Uint32 Diligent:: GetStagingTextureLocationOffset(const TextureDesc& TexDesc,
Uint32 ArraySlice,
Uint32 MipLevel,
Uint32 Alignment,
Uint32 LocationX,
Uint32 LocationY,
Uint32 LocationZ)
Returns an offset from the beginning of the buffer backing a staging texture to the specified location within the given subresource.
| Parameters | |
|---|---|
| TexDesc in | - Staging texture description. |
| ArraySlice in | - Array slice. |
| MipLevel in | - Mip level. |
| Alignment in | - Subresource alignment. The alignment is applied to whole subresources only, but not to the row/depth strides. In other words, there may be padding between subresources, but texels in every subresource are assumed to be tightly packed. |
| LocationX in | - X location within the subresoure. |
| LocationY in | - Y location within the subresoure. |
| LocationZ in | - Z location within the subresoure. |
| Returns | Offset from the beginning of the buffer to the given location. |
Subres 0 stride |<-----------—>| |________________| Subres 1 | | stride | | |<----—>| | | |_________| | Subres 0 | | | | | | Subres 1| | | | | _ |________________| |_________| ... |_| A A A | | | Buffer start Subres 1 offset, Subres N offset, aligned by 'Alignment' aligned by 'Alignment'
Uint32 Diligent:: GetStagingTextureSubresourceOffset(const TextureDesc& TexDesc,
Uint32 ArraySlice,
Uint32 MipLevel,
Uint32 Alignment)
Returns an offset from the beginning of the buffer backing a staging texture to the given subresource. Texels within subresources are assumed to be tightly packed. There is no padding except between whole subresources.
void Diligent:: CopyTextureSubresource(const TextureSubResData& SrcSubres,
Uint32 NumRows,
Uint32 NumDepthSlices,
Uint32 RowSize,
void* pDstData,
Uint32 DstRowStride,
Uint32 DstDepthStride)
Copies texture subresource data on the CPU.
| Parameters | |
|---|---|
| SrcSubres in | - Source subresource data. |
| NumRows in | - The number of rows in the subresource. |
| NumDepthSlices in | - The number of depth slices in the subresource. |
| RowSize in | - Subresource data row size, in bytes. |
| pDstData in | - Pointer to the destination subresource data. |
| DstRowStride in | - Destination subresource row stride, in bytes. |
| DstDepthStride in | - Destination subresource depth stride, in bytes. |
void Diligent:: ValidateBottomLevelASDesc(const BottomLevelASDesc& Desc) noexcept(…)
Validates bottom-level AS description and throws an exception in case of an error.
void Diligent:: CopyBLASGeometryDesc(const BottomLevelASDesc& SrcDesc,
BottomLevelASDesc& DstDesc,
FixedLinearAllocator& MemPool,
const BLASNameToIndex* pSrcNameToIndex,
BLASNameToIndex& DstNameToIndex) noexcept(…)
Copies bottom-level AS geometry description using MemPool to allocate required space.
void Diligent:: ValidateBufferDesc(const BufferDesc& Desc,
const DeviceCaps& deviceCaps) noexcept(…)
Validates buffer description and throws an exception in case of an error.
void Diligent:: ValidateBufferInitData(const BufferDesc& Desc,
const BufferData* pBuffData) noexcept(…)
Validates initial buffer data parameters and throws an exception in case of an error.
void Diligent:: ValidateAndCorrectBufferViewDesc(const BufferDesc& BuffDesc,
BufferViewDesc& ViewDesc) noexcept(…)
Validates and corrects buffer view description; throws an exception in case of an error.
void Diligent:: CreateDefaultShaderSourceStreamFactory(const Char* SearchDirectories,
IShaderSourceInputStreamFactory** ppShaderSourceStreamFactory)
Creates a default shader source stream factory.
| Parameters | |
|---|---|
| SearchDirectories in | - Semicolon-seprated list of search directories. |
| ppShaderSourceStreamFactory out | - Memory address where the pointer to the shader source stream factory will be written. |
void Diligent:: SetRawAllocator(IMemoryAllocator* pRawAllocator)
Sets raw memory allocator. This function must be called before any memory allocation/deallocation function is called.
void Diligent:: ValidatePipelineResourceSignatureDesc(const PipelineResourceSignatureDesc& Desc,
const DeviceFeatures& Features) noexcept(…)
Validates pipeline resource signature description and throws an exception in case of an error.
Uint32 Diligent:: FindImmutableSampler(const ImmutableSamplerDesc* ImtblSamplers,
Uint32 NumImtblSamplers,
SHADER_ TYPE ShaderStages,
const char* ResourceName,
const char* SamplerSuffix)
Finds an immutable sampler for the resource name 'ResourceName' that is defined in shader stages 'ShaderStages'. If 'SamplerSuffix' is not null, it will be appended to the 'ResourceName'. Returns an index of the sampler in ImtblSamplers array, or InvalidImmutableSamplerIndex if there is no suitable sampler.
bool Diligent:: PipelineResourceSignaturesCompatible(const PipelineResourceSignatureDesc& Desc0,
const PipelineResourceSignatureDesc& Desc1) noexcept
Returns true if two pipeline resource signature descriptions are compatible, and false otherwise.
size_t Diligent:: CalculatePipelineResourceSignatureDescHash(const PipelineResourceSignatureDesc& Desc) noexcept
Calculates hash of the pipeline resource signature description.
void Diligent:: ValidatePipelineResourceCompatibility(const PipelineResourceDesc& ResDesc,
SHADER_ RESOURCE_ TYPE Type,
PIPELINE_ RESOURCE_ FLAGS ResourceFlags,
Uint32 ArraySize,
const char* ShaderName,
const char* SignatureName) noexcept(…)
Validates that pipeline resource description 'ResDesc' is compatible with the actual resource attributes and throws an exception in case of an error.
void Diligent:: CopyRTShaderGroupNames(std::unordered_map<HashMapStringKey, Uint32, HashMapStringKey:: Hasher>& NameToGroupIndex,
const RayTracingPipelineStateCreateInfo& CreateInfo,
FixedLinearAllocator& MemPool) noexcept
Copies ray tracing shader group names and also initializes the mapping from the group name to its index.
Uint32 Diligent:: FindPipelineResourceLayoutVariable(const PipelineResourceLayoutDesc& LayoutDesc,
const char* Name,
SHADER_ TYPE ShaderStage,
const char* CombinedSamplerSuffix)
Finds a pipeline resource layout variable with the name 'Name' in shader stage 'ShaderStage' in the list of variables of 'LayoutDesc'. If CombinedSamplerSuffix != null, the variable is treated as a combined sampler and the suffix is added to the names of variables from 'LayoutDesc' when comparing with 'Name'. If the variable is found, returns its index in LayoutDesc.Variables. Otherwise returns InvalidPipelineResourceLayoutVariableIndex.
void Diligent:: ValidateShaderBindingTableDesc(const ShaderBindingTableDesc& Desc,
Uint32 ShaderGroupHandleSize,
Uint32 MaxShaderRecordStride) noexcept(…)
Validates SBT description and throws an exception in case of an error.
void Diligent:: ValidateTextureDesc(const TextureDesc& TexDesc) noexcept(…)
Validates texture description and throws an exception in case of an error.
void Diligent:: ValidatedAndCorrectTextureViewDesc(const TextureDesc& TexDesc,
TextureViewDesc& ViewDesc) noexcept(…)
Validates and corrects texture view description; throws an exception in case of an error.
void Diligent:: ValidateUpdateTextureParams(const TextureDesc& TexDesc,
Uint32 MipLevel,
Uint32 Slice,
const Box& DstBox,
const TextureSubResData& SubresData)
Validates update texture command paramters.
void Diligent:: ValidateCopyTextureParams(const CopyTextureAttribs& CopyAttribs)
Validates copy texture command paramters.
void Diligent:: ValidateMapTextureParams(const TextureDesc& TexDesc,
Uint32 MipLevel,
Uint32 ArraySlice,
MAP_ TYPE MapType,
Uint32 MapFlags,
const Box* pMapRegion)
Validates map texture command paramters.
void Diligent:: ValidateTopLevelASDesc(const TopLevelASDesc& Desc) noexcept(…)
Validates top-level AS description and throws an exception in case of an error.
void Diligent:: VerifyD3DResourceMerge(const PipelineStateDesc& PSODesc,
const D3DShaderResourceAttribs& ExistingRes,
const D3DShaderResourceAttribs& NewResAttribs) noexcept(…)
Verifies that two pipeline resources are compatible and throws an exception in case of an error.
void Diligent:: CreateBufferSuballocator(IRenderDevice* pDevice,
const BufferSuballocatorCreateInfo& CreateInfo,
IBufferSuballocator** ppBufferSuballocator)
Creates a new buffer suballocator.
| Parameters | |
|---|---|
| pDevice in | - Pointer to the render device that will be used to initialize internal buffer object. If this parameter is null, the buffer will be created when GetBuffer() is called. |
| CreateInfo in | - Suballocator create info, see Diligent:: |
| ppBufferSuballocator in | - Memory location where pointer to the buffer suballocator will be stored. |
void Diligent:: CreateDynamicTextureAtlas(IRenderDevice* pDevice,
const DynamicTextureAtlasCreateInfo& CreateInfo,
IDynamicTextureAtlas** ppAtlas)
Creates a new dynamic texture atlas.
| Parameters | |
|---|---|
| pDevice in | - Pointer to the render device that will be used to create internal texture array. If this parameter is null, the texture will be created when GetTexture() is called. |
| CreateInfo in | - Atlas create info, see Diligent:: |
| ppAtlas in | - Memory location where pointer to the texture atlas object will be written. |
const ShaderMacro* Diligent:: GetShaderTypeMacros(SHADER_ TYPE Type)
Returns shader type definition macro(s), e.g., for a vertex shader:
{"VERTEX_SHADER", "1"}, {nullptr, nullptr}
or, for a fragment shader:
{"FRAGMENT_SHADER", "1"}, {"PIXEL_SHADER", "1"}, {nullptr, nullptr}
etc.
void Diligent:: AppendShaderMacros(std::string& Source,
const ShaderMacro* Macros)
Appends shader macro definitions to the end of the source string:
#define Name[0] Definitoin[0] #define Name[1] Definitoin[1] ...
void Diligent:: AppendShaderTypeDefinitions(std::string& Source,
SHADER_ TYPE Type)
Appends the shader type definition macro(s), e.g., for a vertex shader:
#define VERTEX_SHADER 1
or, for a fragment shader:
#define FRAGMENT_SHADER 1 #define PIXEL_SHADER 1
etc.
void Diligent:: SetDebugMessageCallback(DebugMessageCallbackType DbgMessageCallback)
Sets the debug message callback function.
Variable documentation
static Uint32 Diligent:: MAX_SHADERS_IN_PIPELINE constexpr
The maximum number of shader stages in a pipeline. (Vertex, Hull, Domain, Geometry, Pixel) or (Amplification, Mesh, Pixel), or (Compute) or (RayGen, Miss, ClosestHit, AnyHit, Intersection, Callable)
static const Uint32 Diligent:: TLAS_INSTANCE_OFFSET_AUTO
Can be used to calculate the TLASBuildInstanceData::
Example: InstanceOffset = BaseContributionToHitGroupIndex; For each instance in TLAS if (Instance.ContributionToHitGroupIndex == TLAS_INSTANCE_OFFSET_AUTO) Instance.ContributionToHitGroupIndex = InstanceOffset; if (BindingMode == HIT_GROUP_BINDING_MODE_PER_GEOMETRY) InstanceOffset += Instance.pBLAS->GeometryCount() * HitGroupStride; if (BindingMode == HIT_GROUP_BINDING_MODE_PER_INSTANCE) InstanceOffset += HitGroupStride;
static const Uint32 Diligent:: TLAS_INSTANCE_DATA_SIZE
Top-level AS instance size in bytes in GPU side. Used to calculate size of BuildTLASAttribs::
static const struct INTERFACE_ ID Diligent:: IID_FileStream
#include <Primitives/interface/FileStream.h>
IFileStream interface unique identifier.