Graphics engine namespace. More...
Classes | |
struct | AdapterMemoryInfo |
Device memory properties. More... | |
class | AndroidAppBase |
Base class for Android applications. More... | |
struct | AndroidFileSystem |
Android file system implementation. More... | |
struct | APIInfo |
Diligent API Info. This structure can be used to verify API compatibility. More... | |
class | AppBase |
class | AsyncPipelineState |
Async pipeline state waits until all shaders are loaded before initializing the internal pipeline state. More... | |
class | AsyncTaskBase |
Base implementation of the IAsyncTask interface. More... | |
struct | AttachmentReference |
Attachment reference description. More... | |
class | BasicFileStream |
Basic file stream implementation. More... | |
struct | BasicFileSystem |
Basic platform-specific file system functions. More... | |
struct | BasicPlatformDebug |
Basic platform-specific debug functions. More... | |
struct | BasicPlatformMisc |
Basic platform-specific miscellaneous functions. More... | |
struct | BeginRenderPassAttribs |
BeginRenderPass command attributes. More... | |
struct | BindingTableVk |
This structure contains the data that can be used as input arguments for vkCmdTraceRaysKHR() command. More... | |
struct | BindSparseResourceMemoryAttribs |
Attributes of the IDeviceContext::BindSparseResourceMemory() command. More... | |
struct | BLASBoundingBoxDesc |
Defines bottom level acceleration structure axis-aligned bounding boxes description. More... | |
struct | BLASBuildBoundingBoxData |
AABB geometry data description. More... | |
struct | BLASBuildTriangleData |
Triangle geometry data description. More... | |
struct | BLASTriangleDesc |
Defines bottom level acceleration structure triangles description. More... | |
struct | BlendStateDesc |
Blend state description. More... | |
class | Bloom |
Implements bloom post-process effect. More... | |
class | BottomLevelASBase |
Template class implementing base functionality of the bottom-level acceleration structure object. More... | |
class | BottomLevelASD3D12Impl |
Bottom-level acceleration structure object implementation in Direct3D12 backend. More... | |
struct | BottomLevelASDesc |
Bottom-level AS description. More... | |
struct | BottomLevelASDescX |
C++ wrapper over BottomLevelASDesc. More... | |
class | BoundBoxRenderer |
Bounding box renderer. More... | |
struct | Box |
Box. More... | |
class | BufferBase |
Template class implementing base functionality of the buffer object. More... | |
class | BufferD3D11Impl |
Buffer object implementation in Direct3D11 backend. More... | |
class | BufferD3D12Impl |
Buffer object implementation in Direct3D12 backend. More... | |
struct | BufferData |
Describes the buffer initial data. More... | |
struct | BufferDesc |
Buffer description. More... | |
struct | BufferFormat |
Buffer format description. More... | |
class | BufferGLImpl |
Buffer object implementation in OpenGL backend. More... | |
struct | BufferProperties |
Buffer properties. More... | |
struct | BufferSuballocatorCreateInfo |
Buffer suballocator create information. More... | |
struct | BufferSuballocatorUsageStats |
Buffer suballocator usage stats. More... | |
struct | BufferToTextureCopyInfo |
Information required to perform a copy operation between a buffer and a texture. More... | |
class | BufferViewBase |
Template class implementing base functionality of the buffer view object. More... | |
class | BufferViewD3D11Impl |
Buffer view implementation in Direct3D11 backend. More... | |
class | BufferViewD3D12Impl |
Buffer view implementation in Direct3D12 backend. More... | |
struct | BufferViewDesc |
Buffer view description. More... | |
class | BufferViewGLImpl |
Buffer view implementation in OpenGL backend. More... | |
class | BufferViewVkImpl |
Buffer view implementation in Vulkan backend. More... | |
class | BufferViewWebGPUImpl |
Buffer view implementation in WebGPU backend. More... | |
class | BufferVkImpl |
Buffer object implementation in Vulkan backend. More... | |
class | BufferWebGPUImpl |
Buffer implementation in WebGPU backend. More... | |
struct | BuildBLASAttribs |
This structure is used by IDeviceContext::BuildBLAS(). More... | |
struct | BuildTLASAttribs |
This structure is used by IDeviceContext::BuildTLAS(). More... | |
class | BytecodeCacheImpl |
Implementation of IBytecodeCache. More... | |
class | ComErrorDesc |
Helper class that provides description of a COM error. More... | |
class | CommandLineParser |
class | CommandListBase |
Template class implementing base functionality of the command list object. More... | |
class | CommandListD3D11Impl |
Command list implementation in Direct3D11 backend. More... | |
class | CommandListD3D12Impl |
Command list implementation in Direct3D12 backend. More... | |
class | CommandListVkImpl |
Command list implementation in Vulkan backend. More... | |
class | CommandQueueD3D12Impl |
Implementation of the Diligent::ICommandQueueD3D12 interface. More... | |
struct | CommandQueueInfo |
Command queue properties. More... | |
class | CommandQueueVkImpl |
Implementation of the Diligent::ICommandQueueVk interface. More... | |
struct | CompoundShaderSourceFactoryCreateInfo |
Compound shader source factory create info. More... | |
struct | CompoundShaderSourceFactoryCreateInfoX |
C++ wrapper over PipelineResourceSignatureDesc. More... | |
struct | ComputeImageDifferenceAttribs |
Attributes for ComputeImageDifference function. More... | |
struct | ComputeMipLevelAttribs |
ComputeMipLevel function attributes. More... | |
struct | ComputePipelineNotation |
Compute pipeline state notation. More... | |
struct | ComputePipelineStateCreateInfo |
Compute pipeline state description. More... | |
struct | ComputePipelineStateCreateInfoX |
C++ wrapper over ComputePipelineStateCreateInfo. More... | |
struct | ComputeShaderProperties |
Compute Shader Properties. More... | |
class | CoordinateGridRenderer |
Coordinate grid renderer. More... | |
struct | CopyBLASAttribs |
This structure is used by IDeviceContext::CopyBLAS(). More... | |
struct | CopyPixelsAttribs |
Parameters of the CopyPixels function. More... | |
struct | CopyTextureAttribs |
Defines copy texture command attributes. More... | |
struct | CopyTLASAttribs |
This structure is used by IDeviceContext::CopyTLAS(). More... | |
struct | CubeGeometryPrimitiveAttributes |
Cube geometry primitive attributes. More... | |
struct | D3D11ResourceBindPoints |
Resource binding points in all shader stages. More... | |
struct | D3D11ResourceRangeCounters |
Shader resource counters for one specific resource range. More... | |
class | D3D12ResourceBase |
Base implementation of a D3D12 resource. More... | |
class | DataBlobImpl |
Base interface for a data blob. More... | |
class | DearchiverBase |
Class implementing base functionality of the dearchiver. More... | |
struct | DearchiverCreateInfo |
Dearchiver create information. More... | |
class | DearchiverD3D11Impl |
Dearchiver object implementation in Direct3D11 backend. More... | |
class | DearchiverD3D12Impl |
Dearchiver object implementation in Direct3D12 backend. More... | |
class | DearchiverGLImpl |
Dearchiver object implementation in OpenGL backend. More... | |
class | DearchiverVkImpl |
Dearchiver object implementation in Vulkan backend. More... | |
class | DearchiverWebGPUImpl |
Dearchiver object implementation in WebGPU backend. More... | |
class | DefaultRawMemoryAllocator |
Default raw memory allocator. More... | |
class | DepthOfField |
Implements depth-of-field post-process effect. More... | |
class | DepthRangeCalculator |
struct | DepthStencilClearValue |
Defines optimized depth-stencil clear value. More... | |
struct | DepthStencilStateDesc |
Depth stencil state description. More... | |
class | DeviceContextBase |
Base implementation of the device context. More... | |
struct | DeviceContextCommandCounters |
Device context command counters. More... | |
class | DeviceContextD3D11Impl |
Device context implementation in Direct3D11 backend. More... | |
class | DeviceContextD3D12Impl |
Device context implementation in Direct3D12 backend. More... | |
struct | DeviceContextDesc |
Device context description. More... | |
class | DeviceContextGLImpl |
Device context implementation in OpenGL backend. More... | |
class | DeviceContextNextGenBase |
Base implementation of the device context for next-generation backends. More... | |
struct | DeviceContextStats |
Device context statistics. More... | |
class | DeviceContextVkImpl |
Device context implementation in Vulkan backend. More... | |
class | DeviceContextWebGPUImpl |
Device context implementation in WebGPU backend. More... | |
struct | DeviceFeatures |
Describes the device features. More... | |
struct | DeviceFeaturesVk |
Vulkan-specific device features. More... | |
class | DeviceMemoryBase |
Template class implementing base functionality of the device memory object. More... | |
struct | DeviceMemoryCreateInfo |
Device memory create information. More... | |
class | DeviceMemoryD3D11Impl |
Device memory object implementation in Direct3D11 backend. More... | |
class | DeviceMemoryD3D12Impl |
Device memory object implementation in Direct3D12 backend. More... | |
struct | DeviceMemoryDesc |
Device memory description. More... | |
struct | DeviceMemoryRangeD3D12 |
This structure is returned by IDeviceMemoryD3D12::GetRange() More... | |
struct | DeviceMemoryRangeVk |
This structure is returned by IDeviceMemoryVk::GetRange() More... | |
class | DeviceMemoryVkImpl |
Device memory object implementation in Vulkan backend. More... | |
class | DeviceObjectArchive |
Device object archive object. More... | |
struct | DeviceObjectAttribs |
Describes common device object attributes. More... | |
class | DeviceObjectBase |
Template class implementing base functionality of the device object. More... | |
struct | DispatchComputeAttribs |
Describes dispatch command arguments. More... | |
struct | DispatchComputeIndirectAttribs |
Describes dispatch command arguments. More... | |
struct | DispatchTileAttribs |
Describes tile dispatch command arguments. More... | |
struct | DisplayModeAttribs |
Display mode attributes. More... | |
struct | DrawAttribs |
Defines the draw command attributes. More... | |
struct | DrawCommandProperties |
Draw command properties. More... | |
struct | DrawIndexedAttribs |
Defines the indexed draw command attributes. More... | |
struct | DrawIndexedIndirectAttribs |
Defines the indexed indirect draw command attributes. More... | |
struct | DrawIndirectAttribs |
Defines the indirect draw command attributes. More... | |
struct | DrawMeshAttribs |
Defines the mesh draw command attributes. More... | |
struct | DrawMeshIndirectAttribs |
Defines the mesh indirect draw command attributes. More... | |
class | DurationQueryHelper |
Helper class to manage duration queries. More... | |
class | DynamicAtlasManager |
Dynamic 2D atlas manager. More... | |
class | DynamicBuffer |
Dynamically resizable buffer. More... | |
struct | DynamicBufferCreateInfo |
Dynamic buffer create information. More... | |
class | DynamicLinearAllocator |
Implementation of a linear allocator on fixed memory pages. More... | |
class | DynamicStaleResourceWrapper |
Helper class that wraps stale resources of different types. More... | |
class | DynamicTextureArray |
Dynamically resizable texture 2D array. More... | |
struct | DynamicTextureArrayCreateInfo |
Dynamic texture array create information. More... | |
struct | DynamicTextureAtlasCreateInfo |
Dynamic texture atlas create information. More... | |
struct | DynamicTextureAtlasUsageStats |
Dynamic texture atlas usage stats. More... | |
class | EmscriptenAppBase |
Base class for Emscripten applications. More... | |
struct | EngineCreateInfo |
Engine creation information. More... | |
struct | EngineD3D11CreateInfo |
Attributes specific to D3D11 engine. More... | |
struct | EngineD3D12CreateInfo |
Attributes specific to D3D12 engine. More... | |
class | EngineFactoryBase |
Template class implementing base functionality of the engine factory. More... | |
class | EngineFactoryD3D11Impl |
Engine factory for D3D11 implementation. More... | |
class | EngineFactoryD3D12Impl |
Engine factory for D3D12 implementation. More... | |
class | EngineFactoryOpenGLImpl |
Engine factory for OpenGL implementation. More... | |
class | EngineFactoryWebGPUImpl |
Engine factory for WebGPU implementation. More... | |
struct | EngineGLCreateInfo |
Attributes of the OpenGL-based engine implementation. More... | |
struct | EngineMtlCreateInfo |
Attributes of the Metal-based engine implementation. More... | |
struct | EngineVkCreateInfo |
Attributes specific to Vulkan engine. More... | |
struct | EngineWebGPUCreateInfo |
Attributes of the WebGPU-based engine implementation. More... | |
class | EnvMapRenderer |
Environment map renderer. More... | |
class | EpipolarLightScattering |
Implements the epipolar light scattering post-process effect. More... | |
struct | ExpandPixelsAttribs |
Parameters of the ExpandPixels function. More... | |
class | FastRand |
class | FastRandInt |
Generates an integer random number in [Min, Max] range. More... | |
class | FastRandReal |
Generates a real random number in [Min, Max] range. More... | |
class | FenceBase |
Template class implementing base functionality of the fence object. More... | |
class | FenceD3D11Impl |
Fence implementation in Direct3D11 backend. More... | |
class | FenceD3D12Impl |
Fence implementation in Direct3D12 backend. More... | |
struct | FenceDesc |
Fence description. More... | |
class | FenceGLImpl |
Fence object implementation in OpenGL backend. More... | |
class | FenceVkImpl |
Fence implementation in Vulkan backend. More... | |
class | FenceWebGPUImpl |
Fence object implementation in WebGPU backend. More... | |
class | FixedBlockMemoryAllocator |
Memory allocator that allocates memory in a fixed-size chunks. More... | |
class | FixedLinearAllocator |
Implementation of a linear allocator on a fixed-size memory page. More... | |
class | FramebufferBase |
Template class implementing base functionality of the framebuffer object. More... | |
class | FramebufferD3D11Impl |
Render pass implementation in Direct3D11 backend. More... | |
class | FramebufferD3D12Impl |
Render pass implementation in Direct3D12 backend. More... | |
struct | FramebufferDesc |
Framebuffer description. More... | |
struct | FramebufferDescX |
C++ wrapper over FramebufferDesc. More... | |
class | FramebufferGLImpl |
Framebuffer implementation in OpenGL backend. More... | |
class | FramebufferVkImpl |
Framebuffer implementation in Vulkan backend. More... | |
class | FramebufferWebGPUImpl |
Render pass implementation in WebGPU backend. More... | |
struct | FullScreenModeDesc |
class | GBuffer |
G-buffer manages a set of render targets. More... | |
struct | GeometryPrimitiveAttributes |
Geometry primitive attributes. More... | |
struct | GeometryPrimitiveBuffersCreateInfo |
Geometry primitive buffers creation info. More... | |
struct | GeometryPrimitiveInfo |
Geometry primitive info. More... | |
class | GLProgramCache |
Program cached contains linked programs for the given combination of shaders and resource layouts. More... | |
class | GLTF_PBR_Renderer |
Implementation of a GLTF PBR renderer. More... | |
class | GPUCompletionAwaitQueue |
Helper class that facilitates asynchronous waiting for the GPU completion. More... | |
struct | GraphicsAdapterInfo |
Graphics adapter properties. More... | |
struct | GraphicsPipelineDesc |
Graphics pipeline state description. More... | |
struct | GraphicsPipelineNotation |
Graphics pipeline state notation. More... | |
struct | GraphicsPipelineStateCreateInfo |
Graphics pipeline state initialization information. More... | |
struct | GraphicsPipelineStateCreateInfoX |
C++ wrapper over GraphicsPipelineStateCreateInfo. More... | |
struct | HashMapStringKey |
class | HLSL2GLSLConverterImpl |
HLSL to GLSL shader source code converter implementation. More... | |
class | HLSL2GLSLConverterObject |
Implementation of the Diligent::IHLSL2GLSLConverter interface. More... | |
struct | HLSLShaderResourceDesc |
HLSL resource description. More... | |
struct | IArchiver |
Render state object archiver interface. More... | |
struct | IArchiverFactory |
Archiver factory interface. More... | |
struct | IAsyncTask |
Asynchronous task interface. More... | |
struct | IBottomLevelAS |
Bottom-level AS interface. More... | |
struct | IBottomLevelASD3D12 |
Exposes Direct3D12-specific functionality of a bottom-level acceleration structure object. More... | |
struct | IBottomLevelASMtl |
Exposes Metal-specific functionality of a bottom-level acceleration structure object. More... | |
struct | IBottomLevelASVk |
Exposes Vulkan-specific functionality of a Bottom-level acceleration structure object. More... | |
struct | IBuffer |
Buffer interface. More... | |
struct | IBufferD3D11 |
Exposes Direct3D11-specific functionality of a buffer object. More... | |
struct | IBufferD3D12 |
Exposes Direct3D12-specific functionality of a buffer object. More... | |
struct | IBufferGL |
Exposes OpenGL-specific functionality of a buffer object. More... | |
struct | IBufferMtl |
Exposes Metal-specific functionality of a buffer object. More... | |
struct | IBufferSuballocation |
Buffer suballocation. More... | |
struct | IBufferSuballocator |
Buffer suballocator. More... | |
struct | IBufferView |
Buffer view interface. More... | |
struct | IBufferViewD3D11 |
Exposes Direct3D11-specific functionality of a buffer view object. More... | |
struct | IBufferViewD3D12 |
Exposes Direct3D12-specific functionality of a buffer view object. More... | |
struct | IBufferViewGL |
Exposes OpenGL-specific functionality of a buffer view object. More... | |
struct | IBufferViewMtl |
Exposes Metal-specific functionality of a buffer view object. More... | |
struct | IBufferViewVk |
Exposes Vulkan-specific functionality of a buffer view object. More... | |
struct | IBufferViewWebGPU |
Exposes WebGPU-specific functionality of a buffer view object. More... | |
struct | IBufferVk |
Exposes Vulkan-specific functionality of a buffer object. More... | |
struct | IBufferWebGPU |
Exposes WebGPU-specific functionality of a buffer object. More... | |
struct | IBytecodeCache |
Byte code cache interface. More... | |
class | ICommandList |
Command list interface. More... | |
struct | ICommandQueue |
Command queue interface. More... | |
struct | ICommandQueueD3D12 |
Command queue interface. More... | |
struct | ICommandQueueMtl |
Command queue interface. More... | |
struct | ICommandQueueVk |
Command queue interface. More... | |
struct | IDataBlob |
Binary data blob. More... | |
struct | IDearchiver |
Dearchiver interface. More... | |
struct | IDeviceContext |
Device context interface. More... | |
struct | IDeviceContextD3D11 |
Exposes Direct3D11-specific functionality of a device context. More... | |
struct | IDeviceContextD3D12 |
Exposes Direct3D12-specific functionality of a device context. More... | |
struct | IDeviceContextGL |
Exposes OpenGL-specific functionality of a device context. More... | |
struct | IDeviceContextMtl |
Exposes Metal-specific functionality of a device context. More... | |
struct | IDeviceContextVk |
Exposes Vulkan-specific functionality of a device context. More... | |
struct | IDeviceContextWebGPU |
Exposes WebGPU-specific functionality of a device context. More... | |
struct | IDeviceMemory |
Device memory interface. More... | |
struct | IDeviceMemoryD3D11 |
Exposes Direct3D11-specific functionality of a device memory object. More... | |
struct | IDeviceMemoryD3D12 |
Exposes Direct3D12-specific functionality of a device memory object. More... | |
struct | IDeviceMemoryMtl |
Exposes Metal-specific functionality of a device memory object. More... | |
struct | IDeviceMemoryVk |
Exposes Vulkan-specific functionality of a device memory object. More... | |
struct | IDeviceObject |
Base interface for all objects created by the render device Diligent::IRenderDevice. More... | |
class | IDXCompiler |
DXC compiler interface. More... | |
struct | IDynamicTextureAtlas |
Dynamic texture atlas. More... | |
struct | IEngineFactory |
Engine factory base interface. More... | |
struct | IEngineFactoryD3D11 |
Engine factory for Direct3D11 rendering backend. More... | |
struct | IEngineFactoryD3D12 |
Engine factory for Direct3D12 rendering backend. More... | |
struct | IEngineFactoryOpenGL |
Engine factory for OpenGL rendering backend. More... | |
struct | IEngineFactoryWebGPU |
Engine factory for WebGPU rendering backend. More... | |
struct | IFence |
Fence interface. More... | |
class | IFenceD3D11 |
Exposes Direct3D11-specific functionality of a fence object. More... | |
struct | IFenceD3D12 |
Exposes Direct3D12-specific functionality of a fence object. More... | |
struct | IFenceGL |
Exposes OpenGL-specific functionality of a fence object. More... | |
struct | IFenceMtl |
Exposes Metal-specific functionality of a fence object. More... | |
struct | IFenceVk |
Exposes Vulkan-specific functionality of a fence object. More... | |
struct | IFenceWebGPU |
Exposes WebGPU-specific functionality of a fence object. More... | |
struct | IFileStream |
Base interface for a file stream. More... | |
class | IFramebuffer |
Framebuffer interface. More... | |
struct | IFramebufferVk |
Exposes Vulkan-specific functionality of a Framebuffer object. More... | |
struct | IHLSL2GLSLConverter |
HLSL to GLSL converter interface. More... | |
struct | Image |
Implementation of a 2D image. More... | |
struct | ImageDesc |
Image description. More... | |
struct | ImageDiffInfo |
Image difference information. More... | |
struct | ImageLoadInfo |
Image loading information. More... | |
struct | IMemoryAllocator |
Base interface for a raw memory allocator. More... | |
class | ImGuiImplDiligent |
ImGui renderer for Diligent Engine. More... | |
struct | ImmediateContextCreateInfo |
Immediate device context create info. More... | |
struct | ImmutableSamplerDesc |
Immutable sampler description. More... | |
struct | InputLayoutDesc |
Layout description. More... | |
struct | InputLayoutDescX |
C++ wrapper over InputLayoutDesc. More... | |
struct | InstanceMatrix |
Row-major 4x3 matrix. More... | |
struct | INTERFACE_ID |
Unique interface identifier. More... | |
struct | IObject |
Base interface for all dynamic objects in the engine. More... | |
class | IOSAppBase |
Base class for iOS applications. More... | |
struct | IPipelineResourceSignature |
Pipeline resource signature interface. More... | |
struct | IPipelineState |
Pipeline state interface. More... | |
struct | IPipelineStateCache |
Pipeline state cache interface. More... | |
struct | IPipelineStateCacheD3D12 |
Exposes Direct3D12-specific functionality of a pipeline state cache object. More... | |
struct | IPipelineStateCacheMtl |
Exposes Metal-specific functionality of a pipeline state cache object. More... | |
struct | IPipelineStateCacheVk |
Exposes Vulkan-specific functionality of a pipeline state cache object. More... | |
struct | IPipelineStateD3D11 |
Exposes Direct3D11-specific functionality of a pipeline state object. More... | |
struct | IPipelineStateD3D12 |
Exposes Direct3D12-specific functionality of a pipeline state object. More... | |
struct | IPipelineStateGL |
Exposes OpenGL-specific functionality of a pipeline state object. More... | |
struct | IPipelineStateMtl |
Exposes Metal-specific functionality of a pipeline state object. More... | |
struct | IPipelineStateVk |
Exposes Vulkan-specific functionality of a pipeline state object. More... | |
struct | IPipelineStateWebGPU |
Exposes WebGPU-specific functionality of a pipeline state object. More... | |
struct | IQuery |
Query interface. More... | |
struct | IQueryD3D11 |
Exposes Direct3D11-specific functionality of a Query object. More... | |
struct | IQueryD3D12 |
Exposes Direct3D12-specific functionality of a Query object. More... | |
struct | IQueryGL |
Exposes OpenGL-specific functionality of a Query object. More... | |
struct | IQueryMtl |
Exposes Metal-specific functionality of a Query object. More... | |
struct | IQueryVk |
Exposes Vulkan-specific functionality of a Query object. More... | |
struct | IQueryWebGPU |
Exposes WebGPU-specific functionality of a query object. More... | |
struct | IRasterizationRateMapMtl |
Exposes Metal-specific functionality of a rasterization rate map object. More... | |
class | IReferenceCounters |
struct | IRenderDevice |
Render device interface. More... | |
struct | IRenderDeviceD3D11 |
Exposes Direct3D11-specific functionality of a render device. More... | |
struct | IRenderDeviceD3D12 |
Exposes Direct3D12-specific functionality of a render device. More... | |
struct | IRenderDeviceGL |
Exposes OpenGL-specific functionality of a render device. More... | |
struct | IRenderDeviceGLES |
Interface to the render device object implemented in OpenGLES. More... | |
struct | IRenderDeviceMtl |
Exposes Metal-specific functionality of a render device. More... | |
struct | IRenderDeviceVk |
Exposes Vulkan-specific functionality of a render device. More... | |
struct | IRenderDeviceWebGPU |
Exposes WebGPU-specific functionality of a render device. More... | |
class | IRenderPass |
Render pass interface. More... | |
struct | IRenderPassVk |
Exposes Vulkan-specific functionality of a RenderPass object. More... | |
struct | IRenderStateCache |
Render state cache interface. More... | |
struct | IRenderStateNotationLoader |
Render state notation loader interface. More... | |
struct | IRenderStateNotationParser |
Render state notation parser interface. More... | |
struct | IResourceMapping |
Resource mapping. More... | |
struct | ISampler |
Texture sampler interface. More... | |
struct | ISamplerD3D11 |
Exposes Direct3D11-specific functionality of a sampler object. More... | |
struct | ISamplerD3D12 |
Exposes Direct3D12-specific functionality of a sampler object. More... | |
struct | ISamplerGL |
Exposes OpenGL-specific functionality of a sampler object. More... | |
struct | ISamplerMtl |
Exposes Metal-specific functionality of a sampler object. More... | |
struct | ISamplerVk |
Exposes Vulkan-specific functionality of a sampler object. More... | |
struct | ISamplerWebGPU |
Exposes WebGPU-specific functionality of a sampler object. More... | |
struct | ISerializationDevice |
Serialization device interface. More... | |
struct | ISerializedPipelineState |
Serialized pipeline state interface. More... | |
struct | ISerializedShader |
Serialized shader interface. More... | |
struct | IShader |
Shader interface. More... | |
struct | IShaderBindingTable |
Shader binding table interface. More... | |
struct | IShaderBindingTableD3D12 |
Exposes Direct3D12-specific functionality of a shader binding table object. More... | |
struct | IShaderBindingTableVk |
Exposes Vulkan-specific functionality of a Shader binding table object. More... | |
struct | IShaderD3D |
Exposes Direct3D-specific functionality of a shader object. More... | |
struct | IShaderD3D11 |
Exposes Direct3D11-specific functionality of a shader object. More... | |
struct | IShaderD3D12 |
Exposes Direct3D12-specific functionality of a shader object. More... | |
struct | IShaderGL |
Exposes OpenGL-specific functionality of a shader object. More... | |
struct | IShaderMtl |
Exposes Metal-specific functionality of a shader object. More... | |
struct | IShaderResourceBinding |
Shader resource binding interface. More... | |
struct | IShaderResourceBindingD3D11 |
Exposes Direct3D11-specific functionality of a shader resource binding object. More... | |
struct | IShaderResourceBindingD3D12 |
Exposes Direct3D12-specific functionality of a shader resource binding. More... | |
struct | IShaderResourceBindingGL |
Exposes OpenGL-specific functionality of a shader resource binding object. More... | |
struct | IShaderResourceBindingMtl |
Exposes Metal-specific functionality of a shader resource binding object. More... | |
struct | IShaderResourceBindingVk |
Exposes Vulkan-specific functionality of a shader resource binding object. More... | |
struct | IShaderResourceBindingWebGPU |
Exposes WebGPU-specific functionality of a shader resource binding object. More... | |
struct | IShaderResourceVariable |
Shader resource variable. More... | |
class | IShaderResourceVariableD3D |
Interface to the Direct3D ShaderResourceVariable resource variable. More... | |
struct | IShaderSourceInputStreamFactory |
Shader source stream factory interface. More... | |
class | IShaderVk |
Exposes Vulkan-specific functionality of a shader object. More... | |
class | IShaderWebGPU |
Exposes WebGPU-specific functionality of a shader object. More... | |
struct | ISwapChain |
Swap chain interface. More... | |
struct | ISwapChainD3D11 |
Exposes Direct3D11-specific functionality of a swap chain. More... | |
struct | ISwapChainD3D12 |
Exposes Direct3D12-specific functionality of a swap chain. More... | |
struct | ISwapChainGL |
Exposes OpenGL-specific functionality of a swap chain. More... | |
struct | ISwapChainMtl |
Exposes Metal-specific functionality of a swap chain. More... | |
struct | ISwapChainVk |
Exposes Vulkan-specific functionality of a swap chain. More... | |
struct | ISwapChainWebGPU |
Exposes WebGPU-specific functionality of a swap chain. More... | |
struct | ITexture |
Texture interface. More... | |
struct | ITextureAtlasSuballocation |
Dynamic texture atlas suballocation. More... | |
struct | ITextureD3D11 |
Exposes Direct3D11-specific functionality of a texture object. More... | |
struct | ITextureD3D12 |
Exposes Direct3D12-specific functionality of a texture object. More... | |
struct | ITextureGL |
Exposes OpenGL-specific functionality of a texture object. More... | |
struct | ITextureLoader |
Texture loader object. More... | |
struct | ITextureMtl |
Exposes Metal-specific functionality of a texture object. More... | |
class | ITextureUploader |
Asynchronous texture uploader. More... | |
struct | ITextureView |
Texture view interface. More... | |
struct | ITextureViewD3D11 |
Exposes Direct3D11-specific functionality of a texture view object. More... | |
struct | ITextureViewD3D12 |
Exposes Direct3D12-specific functionality of a texture view object. More... | |
struct | ITextureViewGL |
Exposes OpenGL-specific functionality of a texture view object. More... | |
struct | ITextureViewMtl |
Exposes Metal-specific functionality of a texture view object. More... | |
struct | ITextureViewVk |
Exposes Vulkan-specific functionality of a texture view object. More... | |
struct | ITextureViewWebGPU |
Exposes WebGPU-specific functionality of a texture view object. More... | |
struct | ITextureVk |
Exposes Vulkan-specific functionality of a texture object. More... | |
struct | ITextureWebGPU |
Exposes WebGPU-specific functionality of a texture object. More... | |
struct | IThreadPool |
Thread pool interface. More... | |
struct | ITopLevelAS |
Top-level AS interface. More... | |
struct | ITopLevelASD3D12 |
Exposes Direct3D12-specific functionality of a top-level acceleration structure object. More... | |
struct | ITopLevelASMtl |
Exposes Metal-specific functionality of a top-level acceleration structure object. More... | |
struct | ITopLevelASVk |
Exposes Vulkan-specific functionality of a Top-level acceleration structure object. More... | |
struct | IVertexPool |
Vertex pool interface. More... | |
struct | IVertexPoolAllocation |
Vertex pool allocation. More... | |
struct | LayoutElement |
Description of a single element of the input layout. More... | |
struct | LinearTexFilterSampleInfo |
class | LinuxAppBase |
Base class for iOS applications. More... | |
struct | LoadPipelineStateInfo |
Pipeline state load info. More... | |
struct | LoadRenderPassInfo |
Render pass load info. More... | |
struct | LoadResourceSignatureInfo |
Resource signature load info. More... | |
struct | LoadShaderInfo |
Shader load info. More... | |
class | LRUCache |
A thread-safe and exception-safe LRU cache. More... | |
class | MacOSAppBase |
Base class for MacOS applications. More... | |
class | MapHelper |
Facilitates resource mapping. More... | |
struct | MappedTextureSubresource |
Describes the data for one mapped subresource. More... | |
class | MemoryFileStream |
Memory file stream implementation. More... | |
struct | MemoryShaderSourceFactoryCreateInfo |
Memory shader source factory create info. More... | |
struct | MemoryShaderSourceFactoryCreateInfoX |
C++ wrapper over MemoryShaderSourceFactoryCreateInfo. More... | |
struct | MemoryShaderSourceFileInfo |
Shader source file info. More... | |
struct | MeshShaderProperties |
Mesh Shader Properties. More... | |
struct | MipLevelProperties |
Describes the mip level properties. More... | |
struct | MultiDrawAttribs |
MultiDraw command attributes. More... | |
class | MultiDrawAttribsX |
C++ wrapper over MultiDrawAttribs. More... | |
struct | MultiDrawIndexedAttribs |
MultiDraw command attributes. More... | |
class | MultiDrawIndexedAttribsX |
C++ wrapper over MultiDrawIndexedAttribs. More... | |
struct | MultiDrawIndexedItem |
Multi-draw indexed command item. More... | |
struct | MultiDrawItem |
Multi-draw command item. More... | |
struct | NDCAttribs |
Normalized device coordinates attributes. More... | |
class | ObjectBase |
Template class implementing base functionality for an object. More... | |
class | ObjectsRegistry |
struct | OpenXRAttribs |
OpenXR attributes. More... | |
struct | OptimizedClearValue |
Defines optimized clear value. More... | |
class | PipelineLayoutVk |
Implementation of the Diligent::PipelineLayoutVk class. More... | |
class | PipelineLayoutWebGPU |
Implementation of the Diligent::PipelineLayoutWebGPU class. More... | |
struct | PipelineResourceBinding |
Pipeline resource binding. More... | |
struct | PipelineResourceBindingAttribs |
Contains attributes to calculate pipeline resource bindings. More... | |
struct | PipelineResourceDesc |
Pipeline resource description. More... | |
struct | PipelineResourceLayoutDesc |
Pipeline layout description. More... | |
struct | PipelineResourceLayoutDescX |
C++ wrapper over PipelineResourceSignatureDesc. More... | |
class | PipelineResourceSignatureBase |
Template class implementing base functionality of the pipeline resource signature object. More... | |
class | PipelineResourceSignatureD3D11Impl |
Implementation of the Diligent::PipelineResourceSignatureD3D11Impl class. More... | |
class | PipelineResourceSignatureD3D12Impl |
Implementation of the Diligent::PipelineResourceSignatureD3D12Impl class. More... | |
struct | PipelineResourceSignatureDesc |
Pipeline resource signature description. More... | |
class | PipelineResourceSignatureDescWrapper |
Helper class that wraps the pipeline resource signature description. More... | |
struct | PipelineResourceSignatureDescX |
C++ wrapper over PipelineResourceSignatureDesc. More... | |
class | PipelineResourceSignatureGLImpl |
Implementation of the Diligent::PipelineResourceSignatureGLImpl class. More... | |
struct | PipelineResourceSignatureInternalData |
Pipeline resource signature internal data required for serialization/deserialization. More... | |
class | PipelineResourceSignatureVkImpl |
Implementation of the Diligent::PipelineResourceSignatureVkImpl class. More... | |
class | PipelineResourceSignatureWebGPUImpl |
Implementation of the Diligent::PipelineResourceSignatureWebGPUImpl class. More... | |
struct | PipelineStateArchiveInfo |
Pipeline state archive info. More... | |
class | PipelineStateBase |
Template class implementing base functionality of the pipeline state object. More... | |
class | PipelineStateCacheBase |
Template class implementing base functionality of the pipeline state cache object. More... | |
struct | PipelineStateCacheCreateInfo |
Pipeline state pbject cache create info. More... | |
class | PipelineStateCacheD3D12Impl |
Pipeline state cache implementation in Direct3D12 backend. More... | |
struct | PipelineStateCacheDesc |
Pipeline state cache description. More... | |
class | PipelineStateCacheVkImpl |
Pipeline state cache object implementation in Vulkan backend. More... | |
struct | PipelineStateCreateInfo |
Pipeline state creation attributes. More... | |
struct | PipelineStateCreateInfoX |
C++ wrapper over PipelineStateCreateInfo. More... | |
class | PipelineStateD3D11Impl |
Pipeline state object implementation in Direct3D11 backend. More... | |
class | PipelineStateD3D12Impl |
Pipeline state object implementation in Direct3D12 backend. More... | |
struct | PipelineStateDesc |
Pipeline state description. More... | |
class | PipelineStateGLImpl |
Pipeline state object implementation in OpenGL backend. More... | |
struct | PipelineStateNotation |
Pipeline state notation. More... | |
struct | PipelineStateUnpackInfo |
Pipeline state unpack parameters. More... | |
class | PipelineStateVkImpl |
Pipeline state object implementation in Vulkan backend. More... | |
class | PipelineStateWebGPUImpl |
Pipeline state object implementation in WebGPU backend. More... | |
struct | Plane3D |
class | Polygon2DTriangulator |
class | Polygon3DTriangulator |
3D polygon triangulator. More... | |
struct | PremultiplyAlphaAttribs |
Parameters of the PremultiplyAlpha function. More... | |
class | ProxyDataBlob |
Implementation of the proxy data blob that does not own the data. More... | |
class | ProxyPipelineState |
Proxy pipeline state delegates all calls to the internal pipeline object. More... | |
class | QueryBase |
Template class implementing base functionality of the query object. More... | |
class | QueryD3D11Impl |
Query implementation in Direct3D11 backend. More... | |
class | QueryD3D12Impl |
Query implementation in Direct3D12 backend. More... | |
struct | QueryDataBinaryOcclusion |
Binary occlusion query data. More... | |
struct | QueryDataDuration |
Duration query data. More... | |
struct | QueryDataOcclusion |
Occlusion query data. More... | |
struct | QueryDataPipelineStatistics |
Pipeline statistics query data. More... | |
struct | QueryDataTimestamp |
Timestamp query data. More... | |
struct | QueryDesc |
Query description. More... | |
class | QueryGLImpl |
Query object implementation in OpenGL backend. More... | |
class | QueryVkImpl |
Query implementation in Vulkan backend. More... | |
class | QueryWebGPUImpl |
Query implementation in WebGPU backend. More... | |
struct | RasterizationRateLayerDesc |
Rasterization rate map layer description. More... | |
struct | RasterizationRateMapCreateInfo |
Rasterization rate map create info. More... | |
struct | RasterizationRateMapDesc |
Rasterization rate map description. More... | |
struct | RasterizerStateDesc |
Rasterizer state description. More... | |
struct | RayTracingGeneralShaderGroup |
Ray tracing general shader group description. More... | |
struct | RayTracingPipelineDesc |
This structure describes the ray tracing pipeline state and is part of the RayTracingPipelineStateCreateInfo structure. More... | |
struct | RayTracingPipelineNotation |
Ray tracing pipeline state notation. More... | |
struct | RayTracingPipelineStateCreateInfo |
Ray tracing pipeline state initialization information. More... | |
struct | RayTracingPipelineStateCreateInfoX |
C++ wrapper over RayTracingPipelineStateCreateInfo. More... | |
struct | RayTracingProceduralHitShaderGroup |
Ray tracing procedural hit shader group description. More... | |
struct | RayTracingProperties |
Ray tracing properties. More... | |
struct | RayTracingTriangleHitShaderGroup |
Ray tracing triangle hit shader group description. More... | |
struct | Rect |
Describes the rectangle. More... | |
class | RefCntAutoPtr |
Template class that implements reference counting. More... | |
struct | RefCntContainer |
Template struct that wraps an object of type Type into a reference-counted container. More... | |
class | RefCntWeakPtr |
Implementation of weak pointer. More... | |
class | RefCountedObject |
Base class for all reference counting objects. More... | |
class | ReloadablePipelineState |
class | ReloadableShader |
class | RenderDeviceBase |
Base implementation of a render device. More... | |
class | RenderDeviceD3D11Impl |
Render device implementation in Direct3D11 backend. More... | |
class | RenderDeviceD3D12Impl |
Render device implementation in Direct3D12 backend. More... | |
class | RenderDeviceD3DBase |
Base implementation of a D3D render device. More... | |
class | RenderDeviceGLImpl |
Render device implementation in OpenGL backend. More... | |
struct | RenderDeviceInfo |
Render device information. More... | |
class | RenderDeviceNextGenBase |
Base implementation of the render device for next-generation backends. More... | |
struct | RenderDeviceShaderVersionInfo |
Render device shader version information. More... | |
class | RenderDeviceVkImpl |
Render device implementation in Vulkan backend. More... | |
class | RenderDeviceWebGPUImpl |
Render device implementation in WebGPU backend. More... | |
class | RenderDeviceWithCache |
C++ wrapper over IRenderDevice and IRenderStateCache. More... | |
class | RenderDeviceX |
C++ wrapper over IRenderDevice. More... | |
struct | RenderPassAttachmentDesc |
Render pass attachment description. More... | |
class | RenderPassBase |
Template class implementing base functionality of the render pass object. More... | |
class | RenderPassD3D11Impl |
Render pass implementation in Direct3D11 backend. More... | |
class | RenderPassD3D12Impl |
Render pass implementation in Direct3D12 backend. More... | |
struct | RenderPassDesc |
Render pass description. More... | |
struct | RenderPassDescX |
C++ wrapper over Diligent::RenderPassDesc. More... | |
class | RenderPassGLImpl |
Render pass implementation in OpenGL backend. More... | |
struct | RenderPassUnpackInfo |
Render pass unpack parameters. More... | |
class | RenderPassVkImpl |
Render pass implementation in Vulkan backend. More... | |
class | RenderPassWebGPUImpl |
Render pass implementation in WebGPU backend. More... | |
struct | RenderStateCacheCreateInfo |
Render state cache create information. More... | |
class | RenderStateCacheImpl |
Implementation of IRenderStateCache. More... | |
struct | RenderStateNotationLoaderCreateInfo |
Render state notation loader initialization info. More... | |
class | RenderStateNotationLoaderImpl |
Implementation of IRenderStateNotationLoader. More... | |
struct | RenderStateNotationParserCreateInfo |
Render state notation parser initialization information. More... | |
class | RenderStateNotationParserImpl |
Implementation of IRenderStateNotationParser. More... | |
struct | RenderStateNotationParserInfo |
Render state notation parser info. More... | |
struct | RenderTargetBlendDesc |
Describes a blend state for a single render target. More... | |
struct | ResolveTextureSubresourceAttribs |
Describes multi-sampled texture resolve command arguments. More... | |
class | ResourceD3D11Base |
Base implementation of a D3D11 resource. More... | |
struct | ResourceMappingCreateInfo |
Resource mapping create information. More... | |
struct | ResourceMappingEntry |
Describes the resource mapping object entry. More... | |
class | ResourceMappingImpl |
Implementation of the resource mapping. More... | |
class | ResourceRegistry |
Helper class that facilitates resource management. More... | |
class | ResourceReleaseQueue |
Facilitates safe resource destruction in D3D12 and Vulkan. More... | |
struct | ResourceSignatureArchiveInfo |
Pipeline resource signature archive info. More... | |
struct | ResourceSignatureUnpackInfo |
Resource signature unpack parameters. More... | |
struct | ResourceTileMappingsD3D12 |
This structure is used by ICommandQueueD3D12::UpdateTileMappings(). More... | |
class | RingBuffer |
Implementation of a ring buffer. The class is not thread-safe. More... | |
class | RootParamsManager |
Container for root parameters. More... | |
class | RootSignatureCacheD3D12 |
Root signature cache that deduplicates RootSignatureD3D12 objects. More... | |
class | RootSignatureD3D12 |
Implementation of the Diligent::RootSignature class. More... | |
struct | RTGeneralShaderGroupNotation |
Ray tracing general shader group notation. More... | |
struct | RTProceduralHitShaderGroupNotation |
Ray tracing procedural hit shader group notation. More... | |
struct | RTTriangleHitShaderGroupNotation |
Ray tracing triangle hit shader group notation. More... | |
struct | SampleDesc |
Sample description. More... | |
class | SamplerBase |
Template class implementing base functionality of the sampler object. More... | |
class | SamplerD3D11Impl |
Sampler implementation in Direct3D11 backend. More... | |
class | SamplerD3D12Impl |
Sampler object implementation in Direct3D12 backend. More... | |
struct | SamplerDesc |
Sampler description. More... | |
class | SamplerGLImpl |
Sampler implementation in OpenGL backend. More... | |
struct | SamplerProperties |
Texture sampler properties. More... | |
class | SamplerVkImpl |
Sampler object object implementation in Vulkan backend. More... | |
class | SamplerWebGPUImpl |
Sampler implementation in WebGPU backend. More... | |
class | ScopedDebugGroup |
Helper class to manage scoped debug group. More... | |
class | ScopedQueryHelper |
Helper class to manage scoped queries. More... | |
struct | ScratchBufferSizes |
Defines the scratch buffer info for acceleration structure. More... | |
class | ScreenSpaceAmbientOcclusion |
Implements screen-space ambient occlusion post-process effect. More... | |
class | ScreenSpaceReflection |
Implements screen-space reflection post-process effect. More... | |
struct | SerializationDeviceCreateInfo |
Serialization device creation information. More... | |
struct | SerializationDeviceD3D11Info |
Serialization device attributes for Direct3D11 backend. More... | |
struct | SerializationDeviceD3D12Info |
Serialization device attributes for Direct3D12 backend. More... | |
struct | SerializationDeviceGLInfo |
Serialization device attributes for OpenGL backend. More... | |
struct | SerializationDeviceMtlInfo |
Serialization device attributes for Metal backend. More... | |
struct | SerializationDeviceVkInfo |
Serialization device attributes for Vulkan backend. More... | |
struct | SetRenderTargetsAttribs |
SetRenderTargetsExt command attributes. More... | |
struct | ShaderArchiveInfo |
Shader archive info. More... | |
class | ShaderBase |
Template class implementing base functionality of the shader object. More... | |
class | ShaderBindingTableBase |
Template class implementing base functionality of the shader binding table object. More... | |
class | ShaderBindingTableD3D12Impl |
Shader binding table object implementation in Direct3D12 backend. More... | |
struct | ShaderBindingTableDesc |
Shader binding table description. More... | |
struct | ShaderCodeBufferDesc |
Describes a shader constant buffer. More... | |
struct | ShaderCodeVariableDesc |
Describes the shader code variable. More... | |
struct | ShaderCreateInfo |
Shader creation attributes. More... | |
class | ShaderD3D11Impl |
Shader implementation in Direct3D11 backend. More... | |
class | ShaderD3D12Impl |
Implementation of a shader object in Direct3D12 backend. More... | |
class | ShaderD3DBase |
Base implementation of a D3D shader. More... | |
struct | ShaderDesc |
Shader description. More... | |
class | ShaderGLImpl |
Shader object implementation in OpenGL backend. More... | |
struct | ShaderIncludePreprocessInfo |
Shader include preprocess info. More... | |
struct | ShaderMacro |
Shader Macro. More... | |
struct | ShaderMacroArray |
Shader macro array. More... | |
class | ShaderResourceBindingBase |
Template class implementing base functionality of the shader resource binding. More... | |
class | ShaderResourceBindingD3D11Impl |
Implementation of shader resource binding object in Direct3D11 backend. More... | |
class | ShaderResourceBindingD3D12Impl |
Implementation of the Diligent::IShaderResourceBindingD3D12 interface. More... | |
class | ShaderResourceBindingGLImpl |
Shader resource binding object implementation in OpenGL backend. More... | |
class | ShaderResourceBindingVkImpl |
Implementation of the Diligent::IShaderResourceBindingVk interface. More... | |
class | ShaderResourceBindingWebGPUImpl |
Shader resource binding object implementation in OpenGL backend. More... | |
class | ShaderResourceCacheD3D11 |
The class implements a cache that holds resources bound to all shader stages. More... | |
struct | ShaderResourceDesc |
Shader resource description. More... | |
struct | ShaderResourceHashKey |
Hash map key that identifies shader resource by its name and shader stages. More... | |
class | ShaderResources |
Diligent::ShaderResources class. More... | |
class | ShaderResourcesD3D11 |
Diligent::ShaderResourcesD3D11 class. More... | |
class | ShaderResourcesD3D12 |
Diligent::ShaderResourcesD3D12 class. More... | |
struct | ShaderResourceVariableDesc |
Describes shader variable. More... | |
class | ShaderResourceVariableX |
C++ wrapper over IShaderResourceVariable. More... | |
struct | ShaderSourceFileSubstitueInfo |
Shader source file substitute info. More... | |
struct | ShaderUnpackInfo |
Shader unpack parameters. More... | |
struct | ShaderVariableBase |
Base implementation of a shader variable. More... | |
class | ShaderVariableManagerD3D11 |
Diligent::ShaderVariableManagerD3D11 class. More... | |
class | ShaderVkImpl |
Shader object object implementation in Vulkan backend. More... | |
class | ShaderWebGPUImpl |
Shader implementation in WebGPU backend. More... | |
struct | ShadingRateAttachment |
Shading rate attachment description. More... | |
struct | ShadingRateMode |
Combination of a shading rate and supported multi-sampling mode. More... | |
struct | ShadingRateProperties |
Shading rate properties. More... | |
class | ShadowMapManager |
Shadow map manager. More... | |
struct | SparseBufferMemoryBindInfo |
Defines the sparse buffer memory binding information. More... | |
struct | SparseBufferMemoryBindRange |
Defines the sparse buffer memory binding range. More... | |
struct | SparseBufferProperties |
Describes the sparse buffer properties. More... | |
struct | SparseResourceProperties |
Sparse memory properties. More... | |
struct | SparseTextureFormatInfo |
This structure is returned by IRenderDevice::GetSparseTextureFormatInfo() More... | |
struct | SparseTextureMemoryBindInfo |
Sparse texture memory binding information. More... | |
struct | SparseTextureMemoryBindRange |
Defines the sparse texture memory binding range. More... | |
struct | SparseTextureProperties |
Describes the sparse texture properties. More... | |
struct | SphereGeometryPrimitiveAttributes |
Sphere geometry primitive attributes. More... | |
class | SPIRVShaderResources |
Diligent::SPIRVShaderResources class. More... | |
struct | StateTransitionDesc |
Resource state transition barrier description. More... | |
class | StaticStaleResourceWrapper |
Helper class that wraps stale resources of the same type. More... | |
struct | StencilOpDesc |
Describes stencil operations that are performed based on the results of depth test. More... | |
class | StringDataBlobImpl |
String data blob implementation. More... | |
class | StringPool |
Implementation of a simple fixed-size string pool. More... | |
struct | SubpassDependencyDesc |
Subpass dependency description. More... | |
struct | SubpassDesc |
Render pass subpass description. More... | |
struct | SubpassDescX |
C++ wrapper over Diligent::SubpassDesc struct. More... | |
class | SuperResolution |
Implements super-resolution post-process effect. More... | |
class | SwapChainBase |
Base implementation of the swap chain. More... | |
class | SwapChainD3D11Impl |
Swap chain implementation in Direct3D11 backend. More... | |
class | SwapChainD3D12Impl |
Swap chain implementation in Direct3D12 backend. More... | |
class | SwapChainD3DBase |
Base implementation of a D3D swap chain. More... | |
struct | SwapChainDesc |
Swap chain description. More... | |
class | SwapChainGLBase |
Base implementation of a swap chain for OpenGL. More... | |
class | SwapChainGLImpl |
Swap chain implementation in OpenGL backend. More... | |
class | SwapChainGLIOS |
Implementation of the Diligent::ISwapChainGL interface on IOS. More... | |
class | SwapChainVkImpl |
Swap chain implementation in Vulkan backend. More... | |
class | SwapChainWebGPUImpl |
Swap chain implementation in WebGPU backend. More... | |
class | TemporalAntiAliasing |
Implements temporal anti-aliasing. More... | |
class | Texture1D_D3D11 |
Implementation of a 1D texture in Direct3D11 backend. More... | |
class | Texture1D_GL |
1D texture implementation in OpenGL backend. More... | |
class | Texture1DArray_GL |
1D texture array implementation in OpenGL backend. More... | |
class | Texture2D_D3D11 |
Implementation of a 2D texture in Direct3D11 backend. More... | |
class | Texture2D_GL |
2D texture implementation in OpenGL backend. More... | |
class | Texture2DArray_GL |
2D texture array implementation in OpenGL backend. More... | |
class | Texture3D_D3D11 |
Implementation of a 3D texture in Direct3D11 backend. More... | |
class | Texture3D_GL |
3D texture implementation in OpenGL backend. More... | |
class | TextureBase |
Base implementation of the ITexture interface. More... | |
class | TextureBaseD3D11 |
Base implementation of a texture object in Direct3D11 backend. More... | |
class | TextureBaseGL |
Base implementation of a texture object in OpenGL backend. More... | |
struct | TextureComponentMapping |
Defines the per-channel texutre component mapping. More... | |
class | TextureCube_GL |
Cube texture implementation in OpenGL backend. More... | |
class | TextureCubeArray_GL |
Cube array texture implementation in OpenGL backend. More... | |
class | TextureD3D12Impl |
Implementation of a texture object in Direct3D12 backend. More... | |
struct | TextureData |
Describes the initial data to store in the texture. More... | |
struct | TextureDesc |
Texture description. More... | |
struct | TextureFormatAttribs |
Describes invariant texture format attributes. More... | |
struct | TextureFormatInfo |
Basic texture format description. More... | |
struct | TextureFormatInfoExt |
Extended texture format information. More... | |
class | TextureLoaderImpl |
Implementation of ITextureLoader. More... | |
struct | TextureLoadInfo |
Texture loading information. More... | |
struct | TextureProperties |
Texture properties. More... | |
struct | TextureSubResData |
Describes data for one subresource. More... | |
struct | TextureUploaderDesc |
Texture uploader description. More... | |
struct | TextureUploaderStats |
Texture uploader statistics. More... | |
class | TextureViewBase |
Template class implementing base functionality of the texture view interface. More... | |
class | TextureViewD3D11Impl |
Texture view implementation in Direct3D11 backend. More... | |
class | TextureViewD3D12Impl |
Texture view object implementation in Direct3D12 backend. More... | |
struct | TextureViewDesc |
Texture view description. More... | |
class | TextureViewGLImpl |
Texture view implementation in OpenGL backend. More... | |
class | TextureViewVkImpl |
Texture view implementation in Vulkan backend. More... | |
class | TextureViewWebGPUImpl |
Texture view implementation in WebGPU backend. More... | |
class | TextureVkImpl |
Texture object implementation in Vulkan backend. More... | |
class | TextureWebGPUImpl |
Texture implementation in WebGPU backend. More... | |
struct | ThreadPoolCreateInfo |
Thread pool create information. More... | |
struct | TilePipelineDesc |
Tile pipeline state description. More... | |
struct | TilePipelineNotation |
Tile pipeline state notation. More... | |
struct | TilePipelineStateCreateInfo |
Tile pipeline state initialization information. More... | |
struct | TilePipelineStateCreateInfoX |
C++ wrapper over TilePipelineStateCreateInfo. More... | |
struct | TLASBuildInfo |
Defines TLAS state that was used in the last build. More... | |
struct | TLASBuildInstanceData |
This structure is used by BuildTLASAttribs. More... | |
struct | TLASInstanceDesc |
Top-level AS instance description. More... | |
class | TopLevelASBase |
Template class implementing base functionality of the top-level acceleration structure object. More... | |
class | TopLevelASD3D12Impl |
Top-level acceleration structure object implementation in Direct3D12 backend. More... | |
struct | TopLevelASDesc |
Top-level AS description. More... | |
struct | TraceRaysAttribs |
This structure is used by IDeviceContext::TraceRays(). More... | |
struct | TraceRaysIndirectAttribs |
This structure is used by IDeviceContext::TraceRaysIndirect(). More... | |
class | TVOSAppBase |
Base class for tvOS applications. More... | |
struct | UpdateIndirectRTBufferAttribs |
This structure is used by IDeviceContext::UpdateSBT(). More... | |
struct | UploadBufferDesc |
Upload buffer description. More... | |
class | USD_Renderer |
Implementation of a GLTF PBR renderer. More... | |
class | UWPAppBase |
Base class for UWP applications. More... | |
struct | VALUE_TYPE2CType |
Template structure to convert VALUE_TYPE enumeration into C-type. More... | |
struct | VALUE_TYPE2CType< VT_FLOAT16 > |
VALUE_TYPE2CType<> template specialization for half-precision 16-bit floating-point value type. More... | |
struct | VALUE_TYPE2CType< VT_FLOAT32 > |
VALUE_TYPE2CType<> template specialization for full-precision 32-bit floating-point value type. More... | |
struct | VALUE_TYPE2CType< VT_FLOAT64 > |
VALUE_TYPE2CType<> template specialization for double-precision 64-bit floating-point value type. More... | |
struct | VALUE_TYPE2CType< VT_INT16 > |
VALUE_TYPE2CType<> template specialization for 16-bit integer value type. More... | |
struct | VALUE_TYPE2CType< VT_INT32 > |
VALUE_TYPE2CType<> template specialization for 32-bit integer value type. More... | |
struct | VALUE_TYPE2CType< VT_INT8 > |
VALUE_TYPE2CType<> template specialization for 8-bit integer value type. More... | |
struct | VALUE_TYPE2CType< VT_UINT16 > |
VALUE_TYPE2CType<> template specialization for 16-bit unsigned-integer value type. More... | |
struct | VALUE_TYPE2CType< VT_UINT32 > |
VALUE_TYPE2CType<> template specialization for 32-bit unsigned-integer value type. More... | |
struct | VALUE_TYPE2CType< VT_UINT8 > |
VALUE_TYPE2CType<> template specialization for 8-bit unsigned-integer value type. More... | |
class | VectorFieldRenderer |
Renders 2D vector field (e.g. motion vectors). More... | |
struct | Version |
Version. More... | |
struct | VertexPoolCreateInfo |
Vertex pool create information. More... | |
struct | VertexPoolDesc |
Vertex pool description. More... | |
struct | VertexPoolElementDesc |
Vertex pool element description. More... | |
struct | VertexPoolUsageStats |
Vertex pool usage stats. More... | |
struct | VertexStreamInfo |
Describes input vertex stream. More... | |
struct | Viewport |
Describes the viewport. More... | |
struct | VulkanDescriptorPoolSize |
Descriptor pool size. More... | |
struct | WaveOpProperties |
Wave operation properties. More... | |
struct | WebGPUResourceAttribs |
WebGPU-specific resource attributes. More... | |
class | WebGPUResourceBase |
Base implementation of a WebGPU resource. More... | |
class | WGSLShaderResources |
Diligent::WGSLShaderResources class. More... | |
class | Win32AppBase |
Base class for Win32 applications. More... | |
struct | WriteBLASCompactedSizeAttribs |
This structure is used by IDeviceContext::WriteBLASCompactedSize(). More... | |
struct | WriteTLASCompactedSizeAttribs |
This structure is used by IDeviceContext::WriteTLASCompactedSize(). More... | |
Typedefs | |
typedef struct Diligent::ShaderCodeVariableDesc | ShaderCodeVariableDesc |
Describes the shader code variable. | |
typedef struct Diligent::ShaderCodeBufferDesc | ShaderCodeBufferDesc |
Describes a shader constant buffer. | |
using | D3D11ShaderResourceCounters = std::array<D3D11ResourceRangeCounters, D3D11_RESOURCE_RANGE_COUNT> |
Resource counters for all shader stages and all resource types. | |
typedef void(DILIGENT_CALL_TYPE * | ReloadGraphicsPipelineCallbackType) (const char *PipelineName, GraphicsPipelineDesc &GraphicsDesc, void *pUserData) |
Type of the callback function called by the IRenderStateCache::Reload method. | |
typedef float | Float32 |
32-bit float | |
typedef double | Float64 |
64-bit float | |
typedef int64_t | Int64 |
64-bit signed integer | |
typedef int32_t | Int32 |
32-bit signed integer | |
typedef int16_t | Int16 |
16-bit signed integer | |
typedef int8_t | Int8 |
8-bit signed integer | |
typedef uint64_t | Uint64 |
64-bit unsigned integer | |
typedef uint32_t | Uint32 |
32-bit unsigned integer | |
typedef uint16_t | Uint16 |
16-bit unsigned integer | |
typedef uint8_t | Uint8 |
8-bit unsigned integer | |
typedef size_t | SizeType |
Size type. | |
typedef void * | PVoid |
Pointer to void. | |
typedef const void * | CPVoid |
Pointer to const void. | |
typedef bool | Bool |
Boolean. | |
using | String = std::basic_string<Char> |
String variable. | |
typedef void(DILIGENT_CALL_TYPE * | DebugMessageCallbackType) (enum DEBUG_MESSAGE_SEVERITY Severity, const Char *Message, const Char *Function, const Char *File, int Line) |
Type of the debug message callback function. | |
Functions | |
void | ExtractViewFrustumPlanesFromMatrix (const float4x4 &Matrix, ViewFrustum &Frustum, bool bIsOpenGL) |
float3 | GetBoxNearestCorner (const float3 &Direction, const BoundBox &Box) |
Returns the nearest bounding box corner along the given direction. | |
float3 | GetBoxFarthestCorner (const float3 &Direction, const BoundBox &Box) |
Returns the farthest bounding box corner along the given direction. | |
BoxVisibility | GetBoxVisibilityAgainstPlane (const Plane3D &Plane, const BoundBox &Box) |
BoxVisibility | GetBoxVisibilityAgainstPlane (const Plane3D &Plane, const OrientedBoundingBox &Box) |
void | GetFrustumMinimumBoundingSphere (float Proj_00, float Proj_11, float NearPlane, float FarPlane, float3 &Center, float &Radius) |
Returns the minimum bounding sphere of a view frustum. | |
bool | IntersectRayBox3D (const float3 &RayOrigin, const float3 &RayDirection, float3 BoxMin, float3 BoxMax, float &EnterDist, float &ExitDist) |
Intersects a ray with 3D box and computes distances to intersections. | |
bool | IntersectRayAABB (const float3 &RayOrigin, const float3 &RayDirection, const BoundBox &AABB, float &EnterDist, float &ExitDist) |
Intersects a ray with the axis-aligned bounding box and computes distances to intersections. | |
bool | IntersectRayBox2D (const float2 &RayOrigin, const float2 &RayDirection, float2 BoxMin, float2 BoxMax, float &EnterDist, float &ExitDist) |
Intersects a 2D ray with the 2D axis-aligned bounding box and computes distances to intersections. | |
float | IntersectRayTriangle (const float3 &V0, const float3 &V1, const float3 &V2, const float3 &RayOrigin, const float3 &RayDirection, bool CullBackFace=false) |
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> | |
bool | 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<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> | |
bool | CheckBox2DBox2DOverlap (const Vector2< T > &Box0Min, const Vector2< T > &Box0Max, const Vector2< T > &Box1Min, const Vector2< T > &Box1Max) |
Checks if two 2D-boxes overlap. | |
template<bool AllowTouch, typename T> | |
bool | CheckLineSectionOverlap (T Min0, T Max0, T Min1, T Max1) |
Checks if two 1D-line sections overlap. | |
void | GetArray2DMinMaxValue (const float *pData, size_t StrideInFloats, Uint32 Width, Uint32 Height, float &MinValue, float &MaxValue) |
Computes the minimum and the maximum value in a 2D floating-point array. | |
template<typename T> | |
std::enable_if< std::is_integral< T >::value, T >::type | ExtractLSB (T &bits) |
Returns the least-significant bit and clears it in the input argument. | |
template<typename T> | |
std::enable_if< std::is_enum< T >::value, T >::type | ExtractLSB (T &bits) |
Returns the enum value representing the least-significant bit and clears it in the input argument. | |
template<typename T> | |
T | WrapToRange (T Value, T Min, T Range) |
Wraps Value to the range [Min, Min + Range) | |
template<typename T> | |
bool | BasisFromDirection (const Vector3< T > &Dir, bool IsRightHanded, Vector3< T > &X, Vector3< T > &Y, Vector3< T > &Z) |
template<typename CallbackType> | |
auto | MakeCallback (CallbackType &&Callback) |
template<TEXTURE_ADDRESS_MODE AddressMode, bool IsNormalizedCoord> | |
LinearTexFilterSampleInfo | GetLinearTexFilterSampleInfo (Uint32 Width, float u) |
template<typename SrcType, typename DstType, TEXTURE_ADDRESS_MODE AddressModeU, TEXTURE_ADDRESS_MODE AddressModeV, bool IsNormalizedCoord> | |
DstType | FilterTexture2DBilinear (Uint32 Width, Uint32 Height, const SrcType *pData, size_t Stride, float u, float v) |
template<typename SrcType, typename DstType> | |
DstType | FilterTexture2DBilinearClamp (Uint32 Width, Uint32 Height, const SrcType *pData, size_t Stride, float u, float v) |
template<typename SrcType, typename DstType> | |
DstType | FilterTexture2DBilinearClampUC (Uint32 Width, Uint32 Height, const SrcType *pData, size_t Stride, float u, float v) |
Uint32 | GetGeometryPrimitiveVertexSize (GEOMETRY_PRIMITIVE_VERTEX_FLAGS VertexFlags) |
Returns the size of the geometry primitive vertex in bytes. | |
void | CreateGeometryPrimitive (const GeometryPrimitiveAttributes &Attribs, IDataBlob **ppVertices, IDataBlob **ppIndices, GeometryPrimitiveInfo *pInfo=nullptr) |
void | ComputeImageDifference (const ComputeImageDifferenceAttribs &Attribs, ImageDiffInfo &ImageDiff) |
size_t | CountFloatNumberChars (const char *Str) |
template<typename IterType, typename HandlerType> | |
void | SplitLongString (IterType Start, IterType End, size_t MaxChunkLen, size_t NewLineSearchLen, HandlerType &&Handler) |
template<typename IterType, typename HandlerType> | |
void | SplitString (IterType Start, IterType End, const char *Delimiters, HandlerType &&Handler) |
template<typename IterType> | |
std::vector< std::string > | SplitString (IterType Start, IterType End, const char *Delimiters=nullptr) |
template<typename Type> | |
size_t | GetPrintWidth (Type Num, Type Base=10) |
Returns the print width of a number Num. | |
Uint64 | PinWorkerThread (Uint32 ThreadId, Uint64 AllowedCoresMask) |
template<typename HanlderType> | |
RefCntAutoPtr< IAsyncTask > | EnqueueAsyncWork (IThreadPool *pThreadPool, IAsyncTask **ppPrerequisites, Uint32 NumPrerequisites, HanlderType Handler, float fPriority=0) |
float | LinearToGamma (float x) |
Converts linear color to gamma color space. | |
float | GammaToLinear (float x) |
Converts gamma color to linear color space. | |
float | LinearToGamma (Uint8 x) |
Converts linear color to gamma color space. | |
float | GammaToLinear (Uint8 x) |
Converts gamma color to linear color space. | |
float | FastLinearToGamma (float x) |
Converts linear color to gamma color space using fast approximation. | |
float | FastGammaToLinear (float x) |
Converts gamma color to linear color space using fast approximation. | |
float3 | LinearToSRGB (const float3 &RGB) |
Converts RGB color from linear to gamma color space. | |
float4 | LinearToSRGBA (const float4 &RGBA) |
Converts RGBA color from linear to gamma color space. | |
float3 | FastLinearToSRGB (const float3 &RGB) |
Converts RGB color from gamma to linear color space using fast approximation. | |
float4 | FastLinearToSRGBA (const float4 &RGBA) |
Converts RGBA color from gamma to linear color space using fast approximation. | |
float3 | SRGBToLinear (const float3 &SRGB) |
Converts RGB color from gamma to linear color space. | |
float4 | SRGBAToLinear (const float4 &SRGBA) |
Converts RGBA color from gamma to linear color space. | |
float3 | FastSRGBToLinear (const float3 &SRGB) |
Converts RGB color from gamma to linear color space using fast approximation. | |
float4 | FastSRGBAToLinear (const float4 &SRGBA) |
Converts RGBA color from gamma to linear color space using fast approximation. | |
Uint32 | GetValueSize (VALUE_TYPE Val) |
Returns the size of the specified value type. | |
const Char * | GetValueTypeString (VALUE_TYPE Val) |
Returns the string representing the specified value type. | |
const TextureFormatAttribs & | GetTextureFormatAttribs (TEXTURE_FORMAT Format) |
Returns invariant texture format attributes, see TextureFormatAttribs for details. | |
COMPONENT_TYPE | ValueTypeToComponentType (VALUE_TYPE ValType, bool IsNormalized, bool IsSRGB) |
Converts value type to component type. | |
VALUE_TYPE | ComponentTypeToValueType (COMPONENT_TYPE CompType, Uint32 Size) |
Converts component type and size to value type. | |
TEXTURE_FORMAT | TextureComponentAttribsToTextureFormat (COMPONENT_TYPE CompType, Uint32 ComponentSize, Uint32 NumComponents) |
Returns texture format for the specified component type, size and number of components. | |
TEXTURE_FORMAT | GetDefaultTextureViewFormat (TEXTURE_FORMAT TextureFormat, TEXTURE_VIEW_TYPE ViewType, Uint32 BindFlags) |
Returns the default format for a specified texture view type. | |
TEXTURE_FORMAT | GetDefaultTextureViewFormat (const TextureDesc &TexDesc, TEXTURE_VIEW_TYPE ViewType) |
Returns the default format for a specified texture view type. | |
const Char * | GetTexViewTypeLiteralName (TEXTURE_VIEW_TYPE ViewType) |
const Char * | GetBufferViewTypeLiteralName (BUFFER_VIEW_TYPE ViewType) |
const Char * | GetShaderTypeLiteralName (SHADER_TYPE ShaderType) |
String | GetShaderStagesString (SHADER_TYPE ShaderStages) |
const Char * | GetShaderVariableTypeLiteralName (SHADER_RESOURCE_VARIABLE_TYPE VarType, bool bGetFullName=false) |
const Char * | GetShaderResourceTypeLiteralName (SHADER_RESOURCE_TYPE ResourceType, bool bGetFullName=false) |
const Char * | GetViewTypeLiteralName (TEXTURE_VIEW_TYPE TexViewType) |
const Char * | GetViewTypeLiteralName (BUFFER_VIEW_TYPE BuffViewType) |
const Char * | GetFilterTypeLiteralName (FILTER_TYPE FilterType, bool bGetFullName) |
const Char * | GetTextureAddressModeLiteralName (TEXTURE_ADDRESS_MODE AddressMode, bool bGetFullName) |
const Char * | GetComparisonFunctionLiteralName (COMPARISON_FUNCTION ComparisonFunc, bool bGetFullName) |
const Char * | GetStencilOpLiteralName (STENCIL_OP StencilOp) |
Returns the literal name of a stencil operation. | |
const Char * | GetBlendFactorLiteralName (BLEND_FACTOR BlendFactor) |
Returns the literal name of a blend factor. | |
const Char * | GetBlendOperationLiteralName (BLEND_OPERATION BlendOp) |
Returns the literal name of a blend operation. | |
const Char * | GetFillModeLiteralName (FILL_MODE FillMode) |
Returns the literal name of a fill mode. | |
const Char * | GetCullModeLiteralName (CULL_MODE CullMode, bool GetEnumString=false) |
Returns the literal name of a cull mode. | |
const Char * | GetMapTypeString (MAP_TYPE MapType) |
Returns the string containing the map type. | |
const Char * | GetUsageString (USAGE Usage) |
Returns the string containing the usage. | |
const Char * | GetResourceDimString (RESOURCE_DIMENSION TexType) |
Returns the string containing the texture type. | |
const Char * | GetBindFlagString (Uint32 BindFlag) |
Returns the string containing single bind flag. | |
String | GetBindFlagsString (Uint32 BindFlags, const char *Delimiter="|") |
Returns the string containing the bind flags. | |
String | GetCPUAccessFlagsString (Uint32 CpuAccessFlags) |
Returns the string containing the CPU access flags. | |
String | GetTextureDescString (const TextureDesc &Desc) |
Returns the string containing the texture description. | |
String | GetBufferFormatString (const BufferFormat &Fmt) |
Returns the string containing the buffer format description. | |
const Char * | GetBufferModeString (BUFFER_MODE Mode) |
Returns the string containing the buffer mode description. | |
String | GetBufferDescString (const BufferDesc &Desc) |
Returns the string containing the buffer description. | |
String | GetShaderDescString (const ShaderDesc &Desc) |
Returns the string containing the shader description. | |
const Char * | GetResourceStateFlagString (RESOURCE_STATE State) |
Returns the string containing the buffer mode description. | |
String | GetCommandQueueTypeString (COMMAND_QUEUE_TYPE Type) |
Returns the string containing the command queue type. | |
const Char * | GetFenceTypeString (FENCE_TYPE Type) |
Returns the string containing the fence type. | |
const Char * | GetShaderStatusString (SHADER_STATUS ShaderStatus, bool GetEnumString=false) |
const Char * | GetPipelineStateStatusString (PIPELINE_STATE_STATUS PipelineStatus, bool GetEnumString=false) |
template<typename TObjectDescType> | |
String | GetObjectDescString (const TObjectDescType &) |
Helper template function that converts object description into a string. | |
template<> | |
String | GetObjectDescString (const TextureDesc &TexDesc) |
Template specialization for texture description. | |
template<> | |
String | GetObjectDescString (const BufferDesc &BuffDesc) |
Template specialization for buffer description. | |
const char * | GetQueryTypeString (QUERY_TYPE QueryType) |
Returns the string representation of the QUERY_TYPE enum value (e.g. "QUERY_TYPE_OCCLUSION") | |
const char * | GetSurfaceTransformString (SURFACE_TRANSFORM SrfTransform) |
Returns the string representation of the SURFACE_TRANSFORM enum value (e.g. "SURFACE_TRANSFORM_ROTATE_90") | |
const char * | GetPipelineTypeString (PIPELINE_TYPE PipelineType) |
Returns the string representation of the PIPELINE_TYPE enum value (e.g. "PIPELINE_TYPE_COMPUTE") | |
const char * | GetShaderCompilerTypeString (SHADER_COMPILER Compiler) |
Returns the string representation of the SHADER_COMPILER enum value (e.g. "SHADER_COMPILER_GLSLANG") | |
const char * | GetArchiveDeviceDataFlagString (ARCHIVE_DEVICE_DATA_FLAGS Flag, bool bGetFullName=false) |
Returns the string representation of the ARCHIVE_DEVICE_DATA_FLAGS enum value. | |
const char * | GetDeviceFeatureStateString (DEVICE_FEATURE_STATE State, bool bGetFullName=false) |
Returns the string representation of the DEVICE_FEATURE_STATE enum value. | |
const char * | GetRenderDeviceTypeString (RENDER_DEVICE_TYPE DeviceType, bool GetEnumString=false) |
const char * | GetRenderDeviceTypeShortString (RENDER_DEVICE_TYPE DeviceType, bool Capital=false) |
String | GetShaderCodeBufferDescString (const ShaderCodeBufferDesc &Desc, size_t GlobalIdent=0, size_t MemberIdent=2) |
Returns the string containing the shader buffer description. | |
String | GetShaderCodeVariableDescString (const ShaderCodeVariableDesc &Desc, size_t GlobalIdent=0, size_t MemberIdent=2) |
Returns the string containing the shader code variable description. | |
const char * | GetInputElementFrequencyString (INPUT_ELEMENT_FREQUENCY Frequency) |
Returns the string representation of the input element frequency (e.g. "undefined") | |
String | GetLayoutElementString (const LayoutElement &Element) |
Returns the string containing the layout element description. | |
PIPELINE_RESOURCE_FLAGS | GetValidPipelineResourceFlags (SHADER_RESOURCE_TYPE ResourceType) |
Returns valid pipeline resource flags for the specified shader resource type. | |
PIPELINE_RESOURCE_FLAGS | ShaderVariableFlagsToPipelineResourceFlags (SHADER_VARIABLE_FLAGS Flags) |
Converts shader variable flags to corresponding pipeline resource flags. | |
BIND_FLAGS | SwapChainUsageFlagsToBindFlags (SWAP_CHAIN_USAGE_FLAGS SwapChainUsage) |
Returns bind flags for the specified swap chain usage flags. | |
Uint32 | ComputeMipLevelsCount (Uint32 Width) |
Returns the number of mip levels for the specified texture dimensions. | |
Uint32 | ComputeMipLevelsCount (Uint32 Width, Uint32 Height) |
Returns the number of mip levels for the specified texture dimensions. | |
Uint32 | ComputeMipLevelsCount (Uint32 Width, Uint32 Height, Uint32 Depth) |
Returns the number of mip levels for the specified texture dimensions. | |
bool | IsComparisonFilter (FILTER_TYPE FilterType) |
Checks if the specified filter type is a point filter. | |
bool | IsAnisotropicFilter (FILTER_TYPE FilterType) |
Checks if the specified filter type is an anisotropic filter. | |
MipLevelProperties | GetMipLevelProperties (const TextureDesc &TexDesc, Uint32 MipLevel) |
Returns mip level properties for the specified texture description and mip level. | |
Uint64 | GetStagingTextureLocationOffset (const TextureDesc &TexDesc, Uint32 ArraySlice, Uint32 MipLevel, Uint32 Alignment, Uint32 LocationX, Uint32 LocationY, Uint32 LocationZ) |
Uint64 | GetStagingTextureSubresourceOffset (const TextureDesc &TexDesc, Uint32 ArraySlice, Uint32 MipLevel, Uint32 Alignment) |
Uint64 | GetStagingTextureDataSize (const TextureDesc &TexDesc, Uint32 Alignment=4) |
Returns the total memory size required to store the staging texture data. | |
void | CopyTextureSubresource (const TextureSubResData &SrcSubres, Uint32 NumRows, Uint32 NumDepthSlices, Uint64 RowSize, void *pDstData, Uint64 DstRowStride, Uint64 DstDepthStride) |
Copies texture subresource data on the CPU. | |
TEXTURE_FORMAT | UnormFormatToSRGB (TEXTURE_FORMAT Fmt) |
Converts UNORM format to a corresponding SRGB format. | |
TEXTURE_FORMAT | SRGBFormatToUnorm (TEXTURE_FORMAT Fmt) |
Converts SRGB format to a corresponding UNORM format. | |
TEXTURE_FORMAT | BCFormatToUncompressed (TEXTURE_FORMAT Fmt) |
Converts block-compressed format to a corresponding uncompressed format. | |
TEXTURE_FORMAT | TypelessFormatToUnorm (TEXTURE_FORMAT Fmt) |
Converts typeless format to a corresponding UNORM format. | |
TEXTURE_FORMAT | TypelessFormatToSRGB (TEXTURE_FORMAT Fmt) |
Converts typeless format to a corresponding SRGB format. | |
bool | IsSRGBFormat (TEXTURE_FORMAT Fmt) |
Checks if the format is an SRGB format. | |
String | GetTextureComponentMappingString (const TextureComponentMapping &Mapping) |
Converts texture component mapping to a string. | |
bool | TextureComponentMappingFromString (const String &MappingStr, TextureComponentMapping &Mapping) |
Converts texture component mapping string to the mapping. | |
SparseTextureProperties | GetStandardSparseTextureProperties (const TextureDesc &TexDesc) |
Returns the sparse texture properties assuming the standard tile shapes. | |
uint3 | GetNumSparseTilesInBox (const Box &Region, const Uint32 TileSize[3]) |
Returns the number of sparse memory tiles in the given box region. | |
uint3 | GetNumSparseTilesInMipLevel (const TextureDesc &Desc, const Uint32 TileSize[3], Uint32 MipLevel) |
Returns the number of sparse memory tiles in the given texture mip level. | |
bool | IsIdentityComponentMapping (const TextureComponentMapping &Mapping) |
Returns true if the Mapping defines an identity texture component swizzle. | |
std::vector< Uint32 > | ResolveInputLayoutAutoOffsetsAndStrides (LayoutElement *pLayoutElements, Uint32 NumElements) |
template<typename FeaturesType> | |
std::string | GetDeviceFeaturesString (const FeaturesType &Features, size_t NumColumns, int Indent=4, int Spacing=4, Uint32 Flags=~0u) |
void | ValidateBottomLevelASDesc (const BottomLevelASDesc &Desc) noexcept(false) |
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(false) |
Copies bottom-level AS geometry description using MemPool to allocate required space. | |
void | ValidateBufferDesc (const BufferDesc &Desc, const IRenderDevice *pDevice) noexcept(false) |
Validates buffer description and throws an exception in case of an error. | |
void | ValidateBufferInitData (const BufferDesc &Desc, const BufferData *pBuffData) noexcept(false) |
Validates initial buffer data parameters and throws an exception in case of an error. | |
void | ValidateAndCorrectBufferViewDesc (const BufferDesc &BuffDesc, BufferViewDesc &ViewDesc, Uint32 StructuredBufferOffsetAlignment) noexcept(false) |
Validates and corrects buffer view description; throws an exception in case of an error. | |
void | CreateDefaultShaderSourceStreamFactory (const Char *SearchDirectories, IShaderSourceInputStreamFactory **ppShaderSourceStreamFactory) |
void | ValidateDeviceMemoryDesc (const DeviceMemoryDesc &Desc, const IRenderDevice *pDevice) noexcept(false) |
Validates device memory description and throws an exception in case of an error. | |
void | VerifyEngineCreateInfo (const EngineCreateInfo &EngineCI, const GraphicsAdapterInfo &AdapterInfo) noexcept(false) |
Validates engine create info EngineCI and throws an exception in case of an error. | |
void | ValidatePipelineResourceSignatureDesc (const PipelineResourceSignatureDesc &Desc, const IRenderDevice *pDevice, RENDER_DEVICE_TYPE DeviceType) noexcept(false) |
Uint32 | FindImmutableSampler (const ImmutableSamplerDesc ImtblSamplers[], Uint32 NumImtblSamplers, SHADER_TYPE ShaderStages, const char *ResourceName, const char *SamplerSuffix) |
Uint32 | FindResource (const PipelineResourceDesc Resources[], Uint32 NumResources, SHADER_TYPE ShaderStage, const char *ResourceName) |
bool | PipelineResourceSignaturesCompatible (const PipelineResourceSignatureDesc &Desc0, const PipelineResourceSignatureDesc &Desc1, bool IgnoreSamplerDescriptions=false) noexcept |
Returns true if two pipeline resource signature descriptions are compatible, and false otherwise. | |
size_t | CalculatePipelineResourceSignatureDescHash (const PipelineResourceSignatureDesc &Desc) noexcept |
Calculates hash of the pipeline resource signature description. | |
void | ReserveSpaceForPipelineResourceSignatureDesc (FixedLinearAllocator &Allocator, const PipelineResourceSignatureDesc &Desc) |
Reserves space for pipeline resource signature description in the Allocator. | |
void | CopyPipelineResourceSignatureDesc (FixedLinearAllocator &Allocator, const PipelineResourceSignatureDesc &SrcDesc, PipelineResourceSignatureDesc &DstDesc, std::array< Uint16, SHADER_RESOURCE_VARIABLE_TYPE_NUM_TYPES+1 > &ResourceOffsets) |
Copies pipeline resource signature description using the allocator. | |
void | ValidatePipelineResourceCompatibility (const PipelineResourceDesc &ResDesc, SHADER_RESOURCE_TYPE Type, PIPELINE_RESOURCE_FLAGS ResourceFlags, Uint32 ArraySize, const char *ShaderName, const char *SignatureName) noexcept(false) |
void | CopyRTShaderGroupNames (std::unordered_map< HashMapStringKey, Uint32 > &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. | |
ShaderResourceVariableDesc | FindPipelineResourceLayoutVariable (const PipelineResourceLayoutDesc &LayoutDesc, const char *Name, SHADER_TYPE ShaderStage, const char *CombinedSamplerSuffix) |
void | ValidatePipelineStateCacheCreateInfo (const PipelineStateCacheCreateInfo &CreateInfo) noexcept(false) |
Validates PSO cache create info and throws an exception in case of an error. | |
DeviceFeatures | EnableDeviceFeatures (const DeviceFeatures &SupportedFeatures, const DeviceFeatures &RequestedFeatures) noexcept(false) |
COMPONENT_TYPE | CheckSparseTextureFormatSupport (TEXTURE_FORMAT TexFormat, RESOURCE_DIMENSION Dimension, Uint32 SampleCount, const SparseResourceProperties &SparseRes) noexcept |
Checks sparse texture format support and returns the component type. | |
void | ValidateSamplerDesc (const SamplerDesc &Desc, const IRenderDevice *pDevice) noexcept(false) |
Validates sampler description and throws an exception in case of an error. | |
void | ValidateShaderBindingTableDesc (const ShaderBindingTableDesc &Desc, Uint32 ShaderGroupHandleSize, Uint32 MaxShaderRecordStride) noexcept(false) |
Validates SBT description and throws an exception in case of an error. | |
void | ValidateTextureDesc (const TextureDesc &TexDesc, const IRenderDevice *pDevice) noexcept(false) |
Validates texture description and throws an exception in case of an error. | |
void | ValidatedAndCorrectTextureViewDesc (const TextureDesc &TexDesc, TextureViewDesc &ViewDesc) noexcept(false) |
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 parameters. | |
void | ValidateCopyTextureParams (const CopyTextureAttribs &CopyAttribs) |
Validates copy texture command parameters. | |
void | ValidateMapTextureParams (const TextureDesc &TexDesc, Uint32 MipLevel, Uint32 ArraySlice, MAP_TYPE MapType, Uint32 MapFlags, const Box *pMapRegion) |
Validates map texture command parameters. | |
void | ValidateTopLevelASDesc (const TopLevelASDesc &Desc) noexcept(false) |
Validates top-level AS description and throws an exception in case of an error. | |
bool | PipelineResourcesCompatible (const PipelineResourceDesc &lhs, const PipelineResourceDesc &rhs) |
Returns true if two pipeline resources are compatible. | |
void | VerifyD3DResourceMerge (const char *PSOName, const D3DShaderResourceAttribs &ExistingRes, const D3DShaderResourceAttribs &NewResAttribs) noexcept(false) |
Verifies that two pipeline resources are compatible and throws an exception in case of an error. | |
void | ValidateShaderResourceBindings (const char *PSOName, const ShaderResources &Resources, const ResourceBinding::TMap &BindingsMap) noexcept(false) |
Verifies that shader resource bindings match the bindings map and throws an exception in case of an error. | |
void | CreateBufferSuballocator (IRenderDevice *pDevice, const BufferSuballocatorCreateInfo &CreateInfo, IBufferSuballocator **ppBufferSuballocator) |
Creates a new buffer suballocator. | |
Uint32 | ComputeTextureAtlasSuballocationAlignment (Uint32 Width, Uint32 Height, Uint32 MinAlignment) |
Computes the texture atlas suballocation alignment for the region of a given size. | |
void | CreateDynamicTextureAtlas (IRenderDevice *pDevice, const DynamicTextureAtlasCreateInfo &CreateInfo, IDynamicTextureAtlas **ppAtlas) |
Creates a new dynamic texture atlas. | |
void | CreateSparseTextureMtl (IRenderDevice *pDevice, const TextureDesc &TexDesc, IDeviceMemory *pMemory, ITexture **ppTexture) |
Creates a sparse texture in Metal backend. | |
ITextureView * | GetDefaultSRV (ITexture *pTexture) |
Returns default shader resource view of a texture. | |
ITextureView * | GetDefaultRTV (ITexture *pTexture) |
Returns default render target view of a texture. | |
ITextureView * | GetDefaultDSV (ITexture *pTexture) |
Returns default depth-stencil view of a texture. | |
ITextureView * | GetDefaultUAV (ITexture *pTexture) |
Returns default unordered access view of a texture. | |
IBufferView * | GetDefaultSRV (IBuffer *pBuffer) |
Returns default shader resource view of a buffer. | |
IBufferView * | GetDefaultUAV (IBuffer *pBuffer) |
Returns default unordered access view of a buffer. | |
ITextureView * | GetTextureDefaultSRV (IObject *pTexture) |
Returns default shader resource view of a texture. | |
ITextureView * | GetTextureDefaultRTV (IObject *pTexture) |
Returns default render target view of a texture. | |
ITextureView * | GetTextureDefaultDSV (IObject *pTexture) |
Returns default depth-stencil view of a texture. | |
ITextureView * | GetTextureDefaultUAV (IObject *pTexture) |
Returns default unordered access view of a texture. | |
IBufferView * | GetBufferDefaultSRV (IObject *pBuffer) |
Returns default shader resource view of a buffer. | |
IBufferView * | GetBufferDefaultUAV (IObject *pBuffer) |
Returns default unordered access view of a buffer. | |
const char * | GetWebGPUEmulatedArrayIndexSuffix (IShader *pShader) |
int64_t | GetNativeTextureFormat (TEXTURE_FORMAT TexFormat, enum RENDER_DEVICE_TYPE DeviceType) |
Returns the native texture format (e.g. DXGI_FORMAT, VkFormat) for the given texture format and device type. | |
TEXTURE_FORMAT | GetTextureFormatFromNative (int64_t NativeFormat, enum RENDER_DEVICE_TYPE DeviceType) |
Returns the texture format for the given native format (e.g. DXGI_FORMAT, VkFormat) and device type. | |
void | CreateGeometryPrimitiveBuffers (IRenderDevice *pDevice, const GeometryPrimitiveAttributes &Attribs, const GeometryPrimitiveBuffersCreateInfo *pBufferCI, IBuffer **ppVertices, IBuffer **ppIndices, GeometryPrimitiveInfo *pInfo=nullptr) |
Creates vertex and index buffers for a geometry primitive (see Diligent::CreateGeometryPrimitive) | |
void | CreateOffScreenSwapChain (IRenderDevice *pDevice, IDeviceContext *pContext, const SwapChainDesc &SCDesc, ISwapChain **ppSwapChain) |
Creates an off-screen swap chain. | |
void | GetOpenXRGraphicsBinding (IRenderDevice *pDevice, IDeviceContext *pContext, IDataBlob **ppGraphicsBinding) |
Prepares OpenXR graphics binding for the specified device and context. | |
XrDebugUtilsMessengerEXT | CreateOpenXRDebugUtilsMessenger (XrInstance xrInstance, XrDebugUtilsMessageSeverityFlagsEXT xrMessageSeverities) |
Creates OpenXR debug utils messenger. | |
XrResult | DestroyOpenXRDebugUtilsMessenger (XrDebugUtilsMessengerEXT xrDebugUtilsMessenger) |
Destroys OpenXR debug utils messenger. | |
void | AllocateOpenXRSwapchainImageData (RENDER_DEVICE_TYPE DeviceType, Uint32 ImageCount, IDataBlob **ppSwapchainImageData) |
void | GetOpenXRSwapchainImage (IRenderDevice *pDevice, const XrSwapchainImageBaseHeader *ImageData, Uint32 ImageIndex, const Diligent::TextureDesc &TexDesc, ITexture **ppImage) |
Returns the texture object that corresponds to the specified OpenXR swapchain image. | |
std::string | GetRenderStateCacheFilePath (const char *CacheLocation, const char *AppName, RENDER_DEVICE_TYPE DeviceType) |
Returns the path to the render state cache file. | |
void | CreateCompoundShaderSourceFactory (const CompoundShaderSourceFactoryCreateInfo &CreateInfo, IShaderSourceInputStreamFactory **ppFactory) |
Creates a compound shader source factory. | |
void | CreateMemoryShaderSourceFactory (const MemoryShaderSourceFactoryCreateInfo &CreateInfo, IShaderSourceInputStreamFactory **ppFactory) |
void | CreateVertexPool (IRenderDevice *pDevice, const VertexPoolCreateInfo &CreateInfo, IVertexPool **ppVertexPool) |
Creates a new vertex pool. | |
void | CreateDxcBlobWrapper (IDataBlob *pDataBlob, IDxcBlob **pDxcBlobWrapper) |
Creates a DXC blob wrapper around the provided data blob. | |
std::vector< std::pair< std::string, std::string > > | GetGLSLExtensions (const char *Source, size_t SourceLen=0) |
ShaderMacroArray | GetShaderTypeMacros (SHADER_TYPE Type) |
void | AppendShaderMacros (std::string &Source, const ShaderMacroArray &Macros) |
void | AppendShaderTypeDefinitions (std::string &Source, SHADER_TYPE Type) |
void | AppendPlatformDefinition (std::string &Source) |
void | AppendShaderSourceLanguageDefinition (std::string &Source, SHADER_SOURCE_LANGUAGE Language) |
SHADER_SOURCE_LANGUAGE | ParseShaderSourceLanguageDefinition (const std::string &Source) |
ShaderSourceFileData | ReadShaderSourceFile (const char *SourceCode, size_t SourceLength, IShaderSourceInputStreamFactory *pShaderSourceStreamFactory, const char *FilePath) noexcept(false) |
Reads shader source code from a file or uses the one from the shader create info. | |
void | AppendLine1Marker (std::string &Source, const char *FileName) |
void | AppendShaderSourceCode (std::string &Source, const ShaderCreateInfo &ShaderCI) noexcept(false) |
Appends shader source code to the source string. | |
bool | ProcessShaderIncludes (const ShaderCreateInfo &ShaderCI, std::function< void(const ShaderIncludePreprocessInfo &)> IncludeHandler) noexcept |
std::string | UnrollShaderIncludes (const ShaderCreateInfo &ShaderCI) noexcept(false) |
Unrolls all include files into a single file. | |
std::vector< uint32_t > | PatchImageFormats (const std::vector< uint32_t > &SPIRV, const std::unordered_map< HashMapStringKey, TEXTURE_FORMAT > &ImageFormats) |
std::string | GetWGSLResourceAlternativeName (const tint::Program &Program, const tint::inspector::ResourceBinding &Binding) |
WGSLEmulatedResourceArrayElement | GetWGSLEmulatedArrayElement (const std::string &Name, const std::string &Suffix) |
void | SetDebugMessageCallback (DebugMessageCallbackType DbgMessageCallback) |
Sets the debug message callback function. | |
float3 | ReverseExpToneMap (const float3 &Color, float MiddleGray, float AverageLogLum) |
bool | ToneMappingUpdateUI (HLSL::ToneMappingAttribs &Attribs, float *AverageLogLum=nullptr) |
Adds tone mapping UI elements. | |
void | DecompressBC1Block (const Uint8 *Bits, Uint8 *DstBuffer, Uint32 DstChannels=4) |
Decompresses BC1 block (4x4 RGB). | |
void | DecompressBC3Block (const Uint8 *Bits, Uint8 *DstBuffer) |
Decompresses BC3 block (4x4 RGB+A). | |
void | DecompressBC4Block (const Uint8 *Bits, Uint8 *DstBuffer, Uint32 DstChannels=1) |
Decompresses BC4 block (4x4 R). | |
void | DecompressBC5Block (const Uint8 *Bits, Uint8 *DstBuffer, Uint32 DstChannels=2) |
Decompresses BC5 block (4x4 R+G). | |
IMAGE_FILE_FORMAT | CreateImageFromFile (const Char *FilePath, Image **ppImage, IDataBlob **ppRawData=nullptr) |
Creates an image from file. | |
IMAGE_FILE_FORMAT | CreateImageFromMemory (const void *pImageData, size_t DataSize, Image **ppImage) |
Creates an image from memory. | |
DECODE_JPEG_RESULT | DecodeJpeg (const void *pSrcJpegBits, size_t JpegDataSize, IDataBlob *pDstPixels, ImageDesc *pDstImgDesc) |
Decodes jpeg image. | |
ENCODE_JPEG_RESULT | EncodeJpeg (Uint8 *pSrcRGBPixels, Uint32 Width, Uint32 Height, int quality, IDataBlob *pDstJpegBits) |
Encodes an image jpeg PNG format. | |
DECODE_PNG_RESULT | DecodePng (const void *pSrcPngBits, size_t PngDataSize, IDataBlob *pDstPixels, ImageDesc *pDstImgDesc) |
Decodes png image. | |
ENCODE_PNG_RESULT | EncodePng (const Uint8 *pSrcPixels, Uint32 Width, Uint32 Height, Uint32 StrideInBytes, int PngColorType, IDataBlob *pDstPngBits) |
Encodes an image into PNG format. | |
bool | LoadSGI (const void *pSGIData, size_t DataSize, IDataBlob *pDstPixels, ImageDesc *pDstImgDesc) |
Loads an SGI image. | |
void | CreateTextureLoaderFromImage (struct Image *pSrcImage, const TextureLoadInfo &TexLoadInfo, ITextureLoader **ppLoader) |
Creates a texture loader from image. | |
void | CreateTextureLoaderFromFile (const char *FilePath, IMAGE_FILE_FORMAT FileFormat, const TextureLoadInfo &TexLoadInfo, ITextureLoader **ppLoader) |
Creates a texture loader from file. | |
void | CreateTextureLoaderFromMemory (const void *pData, size_t Size, bool MakeCopy, const TextureLoadInfo &TexLoadInfo, ITextureLoader **ppLoader) |
Creates a texture loader from memory. | |
void | CreateTextureLoaderFromDataBlob (IDataBlob *pDataBlob, const TextureLoadInfo &TexLoadInfo, ITextureLoader **ppLoader) |
size_t | GetTextureLoaderMemoryRequirement (const void *pData, size_t Size, const TextureLoadInfo &TexLoadInfo) |
bool | SaveTextureAsDDS (const char *FilePath, const TextureDesc &Desc, const TextureData &TexData) |
Writes texture data as DDS file. | |
bool | WriteDDSToStream (IFileStream *pFileStream, const TextureDesc &Desc, const TextureData &TexData) |
Writes texture as DDS to a file stream. | |
void | CopyPixels (const CopyPixelsAttribs &Attribs) |
Copies texture pixels allowing changing the number of components. | |
void | ExpandPixels (const ExpandPixelsAttribs &Attribs) |
Expands the texture pixels by repeating the last row and column. | |
void | PremultiplyAlpha (const PremultiplyAlphaAttribs &Attribs) |
void | CreateTextureFromFile (const Char *FilePath, const TextureLoadInfo &TexLoadInfo, IRenderDevice *pDevice, ITexture **ppTexture) |
Creates a texture from file. | |
Graphics engine namespace.
Unique identification structures.
Namespace for the OpenGL implementation of the graphics engine.
This file must be included after D3D11TypeDefinitions.h or D3D12TypeDefinitions.h.
The library uses Direct3D-style math:
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.
typedef void(DILIGENT_CALL_TYPE * Diligent::DebugMessageCallbackType) (enum DEBUG_MESSAGE_SEVERITY Severity, const Char *Message, const Char *Function, const Char *File, int Line) |
Type of the debug message callback function.
[in] | Severity | - Message severity |
[in] | Message | - Debug message |
[in] | Function | - Name of the function or nullptr |
[in] | Function | - File name or nullptr |
[in] | Line | - Line number |
enum Diligent::ACCESS_FLAGS : Uint32 |
Access flag.
The flags mirror VkAccessFlags enum and only have effect in Vulkan backend.
enum Diligent::ADAPTER_TYPE : Uint8 |
enum Diligent::ADAPTER_VENDOR : Uint8 |
Graphics adapter vendor.
Flags that indicate which device data will be serialized.
Asynchronous task status.
Render pass attachment load operation Vulkan counterpart: VkAttachmentLoadOp. D3D12 counterpart: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE.
Render pass attachment store operation Vulkan counterpart: VkAttachmentStoreOp. D3D12 counterpart: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE.
enum Diligent::AXIS_SHADING_RATE : Uint8 |
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_BIND_FLAG enumeration. It is used by
Shader resource binding flags.
Enumerator | |
---|---|
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.
|
BIND_SHADER_RESOURCES_ALLOW_OVERWRITE | Allow overwriting static and mutable variables, see Diligent::SET_SHADER_RESOURCE_FLAG_ALLOW_OVERWRITE. |
enum Diligent::BLEND_FACTOR : Int8 |
Blend factors.
This enumeration defines blend factors for alpha-blending. It generally mirrors D3D11_BLEND and D3D12_BLEND enumerations and is used by RenderTargetBlendDesc structure to define source and destination blend factors for color and alpha channels.
enum Diligent::BLEND_OPERATION : Int8 |
Blending operation.
This enumeration describes blending operation for RGB or Alpha channels and generally mirrors D3D11_BLEND_OP and D3D12_BLEND_OP enums. It is used by RenderTargetBlendDesc structure to define RGB and Alpha blending operations
|
strong |
Bounding box visibility.
enum Diligent::BUFFER_MODE : Uint8 |
Describes the buffer access mode.
This enumeration is used by BufferDesc structure.
Enumerator | |
---|---|
BUFFER_MODE_UNDEFINED | Undefined mode. |
BUFFER_MODE_FORMATTED | Formatted 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::BUFFER_VIEW_TYPE : Uint8 |
Buffer view type.
This enumeration describes allowed view types for a buffer view. It is used by BufferViewDesc structure.
enum Diligent::COLOR_MASK : Uint8 |
Color component write flags.
These flags are used by RenderTargetBlendDesc structure to define writable components of the render target
Command queue type.
Comparison function.
This enumeration defines a comparison function. It generally mirrors D3D11_COMPARISON_FUNC/D3D12_COMPARISON_FUNC enum and is used by
enum Diligent::COMPONENT_TYPE : Uint8 |
Describes texture format component type.
enum Diligent::COPY_AS_MODE : Uint8 |
Defines acceleration structure copy mode.
These the flags used by IDeviceContext::CopyBLAS() and IDeviceContext::CopyTLAS().
enum Diligent::CPU_ACCESS_FLAGS : Uint8 |
Allowed CPU access mode flags when mapping a resource.
The enumeration is used by
Enumerator | |
---|---|
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. |
Describes the flags that can be passed over to IShaderSourceInputStreamFactory::CreateInputStream2() function.
Enumerator | |
---|---|
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::CULL_MODE : Int8 |
Cull mode.
This enumeration defines which triangles are not drawn during the rasterization and mirrors D3D11_CULL_MODE/D3D12_CULL_MODE enum. It is used by RasterizerStateDesc structure to define the polygon cull mode.
Enumerator | |
---|---|
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::FrontCounterClockwise member. |
CULL_MODE_BACK | Do not draw triangles that are back-facing. Front- and back-facing triangles are determined by the RasterizerStateDesc::FrontCounterClockwise member. |
CULL_MODE_NUM_MODES | Helper value that stores the total number of cull modes in the enumeration. |
Direct3D11-specific validation options.
Enumerator | |
---|---|
D3D11_VALIDATION_FLAG_NONE | Direct3D11-specific validation is disabled. |
D3D11_VALIDATION_FLAG_VERIFY_COMMITTED_RESOURCE_RELEVANCE | Verify that all committed context resources are relevant, i.e. they are consistent with the committed resource cache. This is very expensive and should only be used for engine debugging. This option is enabled in validation level 2 (see Diligent::VALIDATION_LEVEL).
|
Direct3D12-specific validation flags.
Enumerator | |
---|---|
D3D12_VALIDATION_FLAG_NONE | Direct3D12-specific validation is disabled. |
D3D12_VALIDATION_FLAG_BREAK_ON_ERROR | Whether to break execution when D3D12 debug layer detects an error. This flag only has effect if validation is enabled (EngineCreateInfo.EnableValidation is true). This option is disabled by default in all validation levels. |
D3D12_VALIDATION_FLAG_BREAK_ON_CORRUPTION | Whether to break execution when D3D12 debug layer detects a memory corruption. This flag only has effect if validation is enabled (EngineCreateInfo.EnableValidation is true). This option is enabled by default when validation is enabled. |
D3D12_VALIDATION_FLAG_ENABLE_GPU_BASED_VALIDATION | Enable validation on the GPU timeline. See https://docs.microsoft.com/en-us/windows/win32/direct3d12/using-d3d12-debug-layer-gpu-based-validation This flag only has effect if validation is enabled (EngineCreateInfo.EnableValidation is true). This option is enabled in validation level 2 (see Diligent::VALIDATION_LEVEL).
|
JPEG image decoding result.
PNG decoding result.
Device feature state.
Enumerator | |
---|---|
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::Features, 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. |
Describes the device memory type.
This enumeration is used by DeviceMemoryDesc structure.
Enumerator | |
---|---|
DEVICE_MEMORY_TYPE_UNDEFINED | Indicates that the memory type is not defined. |
DEVICE_MEMORY_TYPE_SPARSE | Indicates that memory will be used for sparse resources. |
Defines the draw command capability flags.
enum Diligent::DRAW_FLAGS : Uint8 |
Draw command flags.
enum Diligent::FENCE_TYPE : Uint8 |
Describes the fence type.
This enumeration is used by FenceDesc structure.
Enumerator | |
---|---|
FENCE_TYPE_CPU_WAIT_ONLY | Basic fence that may be used for:
|
FENCE_TYPE_GENERAL | General fence that may be used for:
If NativeFence feature is enabled (see Diligent::DeviceFeatures), the fence may also be used for:
|
enum Diligent::FILL_MODE : Int8 |
Fill mode.
This enumeration determines the fill mode to use when rendering triangles and mirrors the D3D11_FILL_MODE/D3D12_FILL_MODE enum. It is used by RasterizerStateDesc structure to define the fill mode.
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.
Geometry primitive vertex flags.
Defines hit group binding mode used by the top-level AS.
Enumerator | |
---|---|
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::BindHitGroupForGeometry(). |
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::BindHitGroupForInstance(). |
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::BindHitGroupForTLAS(). |
HIT_GROUP_BINDING_MODE_USER_DEFINED | The user must specify TLASBuildInstanceData::ContributionToHitGroupIndex and only use IShaderBindingTable::BindHitGroupByIndex(). |
enum Diligent::HOT_KEY_FLAGS : Uint32 |
enum Diligent::IMAGE_FILE_FORMAT : Uint8 |
Image file format.
Enumerator | |
---|---|
IMAGE_FILE_FORMAT_UNKNOWN | Unknown format. |
IMAGE_FILE_FORMAT_JPEG | The image is encoded in JPEG format. |
IMAGE_FILE_FORMAT_PNG | The image is encoded in PNG format. |
IMAGE_FILE_FORMAT_TIFF | The image is encoded in TIFF format. |
IMAGE_FILE_FORMAT_DDS | DDS file. |
IMAGE_FILE_FORMAT_KTX | KTX file. |
IMAGE_FILE_FORMAT_SGI | Silicon Graphics Image aka RGB file https://en.wikipedia.org/wiki/Silicon_Graphics_Image |
Conversion mode to apply to imgui colors.
Imgui colors are defined in sRGB space. Depending on the use case, they may need to be converted to linear space.
Input frequency.
enum Diligent::LOGIC_OPERATION : Int8 |
Logic operation.
This enumeration describes logic operation and generally mirrors D3D12_LOGIC_OP enum. It is used by RenderTargetBlendDesc structure to define logic operation. Only available on D3D12 engine
enum Diligent::MAP_FLAGS : Uint8 |
Special map flags.
Describes special arguments for a map operation. This enumeration is used by
enum Diligent::MAP_TYPE : Uint8 |
Resource mapping type.
Describes how a mapped resource will be accessed. This enumeration generally mirrors D3D11_MAP enumeration. It is used by
Memory property flags.
Enumerator | |
---|---|
MEMORY_PROPERTY_UNKNOWN | Memory properties are unknown. |
MEMORY_PROPERTY_HOST_COHERENT | The device (GPU) memory is coherent with the host (CPU), meaning that CPU writes are automatically available to the GPU and vice versa. If memory is not coherent, it must be explicitly flushed after being modified by the CPU, or invalidated before being read by the CPU.
|
enum Diligent::MIP_FILTER_TYPE : Uint8 |
Coarse mip filter type.
enum Diligent::MISC_BUFFER_FLAGS : Uint8 |
Miscellaneous texture flags.
The enumeration is used by TextureDesc to describe misc texture flags
Pipeline resource property flags.
Pipeline state shading rate flags.
Pipeline stage flags.
These flags mirror VkPipelineStageFlagBits enum and only have effect in Vulkan backend.
Pipeline state status.
enum Diligent::PIPELINE_TYPE : Uint8 |
Pipeline type.
Input primitive topology.
This enumeration is used by GraphicsPipelineDesc structure to define input primitive topology.
Pipeline state archive flags.
enum Diligent::PSO_CACHE_FLAGS : Uint8 |
enum Diligent::PSO_CACHE_MODE : Uint8 |
enum Diligent::PSO_CREATE_FLAGS : Uint32 |
Pipeline state creation flags.
Enumerator | |
---|---|
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. |
PSO_CREATE_FLAG_DONT_REMAP_SHADER_RESOURCES | Do not remap shader resources when creating the pipeline. Resource bindings in all shaders must match the bindings expected by the PSO's resource signatures. |
PSO_CREATE_FLAG_ASYNCHRONOUS | Create the pipeline state asynchronously. When this flag is set to true and if the devices supports AsyncShaderCompilation feature, the pipeline will be created asynchronously in the background. An application should use the IPipelineState::GetStatus() method to check the pipeline status. If the device does not support asynchronous shader compilation, the flag is ignored and the pipeline is created synchronously. |
Internal PSO create flags.
enum Diligent::PSO_UNPACK_FLAGS : Uint32 |
Pipeline state unpack flags.
enum Diligent::QUERY_TYPE |
Query type.
Enumerator | |
---|---|
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::BeginQuery and IDeviceContext::EndQuery. IQuery::GetData fills a Diligent::QueryDataOcclusion struct. |
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::GetData fills a Diligent::QueryDataBinaryOcclusion struct. |
QUERY_TYPE_TIMESTAMP | Gets the GPU timestamp corresponding to IDeviceContext::EndQuery call. For this query type IDeviceContext::BeginQuery is disabled. IQuery::GetData fills a Diligent::QueryDataTimestamp struct. |
QUERY_TYPE_PIPELINE_STATISTICS | Gets pipeline statistics, such as the number of pixel shader invocations in between IDeviceContext::BeginQuery and IDeviceContext::EndQuery. IQuery::GetData fills a Diligent::QueryDataPipelineStatistics struct. |
QUERY_TYPE_DURATION | Gets the number of high-frequency counter ticks between IDeviceContext::BeginQuery and IDeviceContext::EndQuery calls. IQuery::GetData fills a Diligent::QueryDataDuration struct. |
QUERY_TYPE_NUM_TYPES | The number of query types in the enum. |
enum Diligent::QUEUE_PRIORITY : Uint8 |
Queue priority.
Ray tracing capability flags.
Defines acceleration structures build flags.
Defines geometry flags for ray tracing.
TLAS instance flags that are used in IDeviceContext::BuildTLAS().
Device type.
Describes resource dimension.
This enumeration is used by
Describes device support of a particular resource dimension for a given texture format.
enum Diligent::RESOURCE_STATE : Uint32 |
Resource usage state.
Defines resource state transition mode performed by various commands.
Refer to http://diligentgraphics.com/2018/12/09/resource-state-management/ for detailed explanation of resource state management in Diligent Engine.
|
strong |
enum Diligent::SAMPLER_FLAGS : Uint8 |
Sampler flags.
Flags indicating how an image is stretched to fit a given monitor's resolution.
Flags indicating the method the raster uses to create an image on a surface.
Flags used by IShaderResourceVariable::Set, IShaderResourceVariable::SetArray, and IShaderResourceVariable::SetBufferRange methods.
Describes the basic type of a shader code variable.
Enumerator | |
---|---|
SHADER_CODE_BASIC_TYPE_UNKNOWN | The type is unknown. |
SHADER_CODE_BASIC_TYPE_VOID | Void pointer. |
SHADER_CODE_BASIC_TYPE_BOOL | Boolean (bool). |
SHADER_CODE_BASIC_TYPE_INT | Integer (int). |
SHADER_CODE_BASIC_TYPE_INT8 | 8-bit integer (int8). |
SHADER_CODE_BASIC_TYPE_INT16 | 16-bit integer (int16). |
SHADER_CODE_BASIC_TYPE_INT64 | 64-bit integer (int64). |
SHADER_CODE_BASIC_TYPE_UINT | Unsigned integer (uint). |
SHADER_CODE_BASIC_TYPE_UINT8 | 8-bit unsigned integer (uint8). |
SHADER_CODE_BASIC_TYPE_UINT16 | 16-bit unsigned integer (uint16). |
SHADER_CODE_BASIC_TYPE_UINT64 | 64-bit unsigned integer (uint64). |
SHADER_CODE_BASIC_TYPE_FLOAT | Floating-point number (float). |
SHADER_CODE_BASIC_TYPE_FLOAT16 | 16-bit floating-point number (half). |
SHADER_CODE_BASIC_TYPE_DOUBLE | Double-precision (64-bit) floating-point number (double). |
SHADER_CODE_BASIC_TYPE_MIN8FLOAT | 8-bit float (min8float). |
SHADER_CODE_BASIC_TYPE_MIN10FLOAT | 10-bit float (min10float). |
SHADER_CODE_BASIC_TYPE_MIN16FLOAT | 16-bit float (min16float). |
SHADER_CODE_BASIC_TYPE_MIN12INT | 12-bit int (min12int). |
SHADER_CODE_BASIC_TYPE_MIN16INT | 16-bit int (min16int). |
SHADER_CODE_BASIC_TYPE_MIN16UINT | 16-bit unsigned int (min12uint). |
SHADER_CODE_BASIC_TYPE_STRING | String (string). |
Describes the class of a shader code variable.
Shader compilation flags.
Enumerator | |
---|---|
SHADER_COMPILE_FLAG_NONE | No flags. |
SHADER_COMPILE_FLAG_ENABLE_UNBOUNDED_ARRAYS | Enable unbounded resource arrays (e.g. |
SHADER_COMPILE_FLAG_SKIP_REFLECTION | Don't load shader reflection. |
SHADER_COMPILE_FLAG_ASYNCHRONOUS | Compile the shader asynchronously. When this flag is set to true and if the devices supports AsyncShaderCompilation feature, the shader will be compiled asynchronously in the background. An application should use the IShader::GetStatus() method to check the shader status. If the device does not support asynchronous shader compilation, the flag is ignored and the shader is compiled synchronously. |
SHADER_COMPILE_FLAG_PACK_MATRIX_ROW_MAJOR | Pack matrices in row-major order. By default, matrices are laid out in GPU memory in column-major order, which means that the first four values in a 4x4 matrix represent the first column, the next four values represent the second column, and so on. If this flag is set, matrices are packed in row-major order, i.e. they are laid out in memory row-by-row. |
SHADER_COMPILE_FLAG_HLSL_TO_SPIRV_VIA_GLSL | Convert HLSL to GLSL when compiling HLSL shaders to SPIRV. HLSL shaders can be compiled to SPIRV directly using either DXC or glslang. While glslang supports most HLSL 5.1 features, some Vulkan-specific functionality is missing. Notably, glslang does not support UAV texture format annotations (see https://github.com/KhronosGroup/glslang/issues/3790), for example: [[vk::image_format("rgba8")]] RWTexture2D<float4> g_rwTexture; This flag provides a workaround by converting HLSL to GLSL before compiling it to SPIRV. The converter supports specially formatted comments to specify UAV texture formats: RWTexture2D<float4 /*format = rgba8*‍/> g_rwTexture; Another use case for this flag is to leverage GLSL-specific keywords in HLSL shaders, such as This flag only takes effect when compiling HLSL to SPIRV with glslang. Since DXC does not support GLSL, this flag is ignored when SHADER_COMPILER_DXC is used. |
enum Diligent::SHADER_COMPILER : Uint32 |
Describes the shader compiler that will be used to compile the shader source code.
Describes shader resource type.
Describes the type of the shader resource variable.
Enumerator | |
---|---|
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::IShaderResourceBinding). It must be set once through Diligent::IShaderResourceBinding interface. It cannot be set through Diligent::IPipelineState interface and cannot be change once bound. |
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::IShaderResourceBinding). It cannot be set through Diligent::IPipelineState interface. |
SHADER_RESOURCE_VARIABLE_TYPE_NUM_TYPES | Total number of shader variable types. |
Shader resource variable type flags.
Describes the shader source code language.
enum Diligent::SHADER_STATUS : Uint32 |
enum Diligent::SHADER_TYPE : Uint32 |
Describes the shader type.
Shader variable property flags.
Enumerator | |
---|---|
SHADER_VARIABLE_FLAG_NONE | Shader variable has no special properties. |
SHADER_VARIABLE_FLAG_NO_DYNAMIC_BUFFERS | Indicates that dynamic buffers will never be bound to the resource variable. Applies to Diligent::SHADER_RESOURCE_TYPE_CONSTANT_BUFFER, Diligent::SHADER_RESOURCE_TYPE_BUFFER_UAV, Diligent::SHADER_RESOURCE_TYPE_BUFFER_SRV resources.
|
SHADER_VARIABLE_FLAG_GENERAL_INPUT_ATTACHMENT_VK | Indicates that the resource is an input attachment in general layout, which allows simultaneously reading from the resource through the input attachment and writing to it via color or depth-stencil attachment.
|
SHADER_VARIABLE_FLAG_UNFILTERABLE_FLOAT_TEXTURE_WEBGPU | Indicates that the resource is an unfilterable-float texture.
|
SHADER_VARIABLE_FLAG_NON_FILTERING_SAMPLER_WEBGPU | Indicates that the resource is a non-filtering sampler.
|
SHADER_VARIABLE_FLAG_LAST | Special value that indicates the last flag in the enumeration. |
enum Diligent::SHADING_RATE : Uint8 |
Defines the shading rate for both axes.
Defines the shading rate capability flags.
Enumerator | |
---|---|
SHADING_RATE_CAP_FLAG_NONE | No shading rate capabilities. |
SHADING_RATE_CAP_FLAG_PER_DRAW | Shading rate can be specified for the whole draw call using IDeviceContext::SetShadingRate(). |
SHADING_RATE_CAP_FLAG_PER_PRIMITIVE | Shading rate can be specified in the vertex shader for each primitive and combined with the base rate. Use IDeviceContext::SetShadingRate() to set base rate and per-primitive combiner. |
SHADING_RATE_CAP_FLAG_TEXTURE_BASED | Shading rate is specified by a texture, each texel defines a shading rate for the tile. Supported tile size is specified in ShadingRateProperties::MinTileSize/MaxTileSize. Use IDeviceContext::SetShadingRate() to set the base rate and texture combiner. Use IDeviceContext::SetRenderTargetsExt() to set the shading rate texture. |
SHADING_RATE_CAP_FLAG_SAMPLE_MASK | Allows to set zero bits in GraphicsPipelineDesc::SampleMask with the enabled variable rate shading. |
SHADING_RATE_CAP_FLAG_SHADER_SAMPLE_MASK | Allows to get or set SampleMask in the shader with enabled variable rate shading.
|
SHADING_RATE_CAP_FLAG_SHADER_DEPTH_STENCIL_WRITE | Allows to write depth and stencil from the pixel shader. |
SHADING_RATE_CAP_FLAG_PER_PRIMITIVE_WITH_MULTIPLE_VIEWPORTS | Allows to use per primitive shading rate when multiple viewports are used. |
SHADING_RATE_CAP_FLAG_SAME_TEXTURE_FOR_WHOLE_RENDERPASS | Shading rate attachment for render pass must be the same for all subpasses. See SubpassDesc::pShadingRateAttachment. |
SHADING_RATE_CAP_FLAG_TEXTURE_ARRAY | Allows to use texture 2D array for shading rate. |
SHADING_RATE_CAP_FLAG_SHADING_RATE_SHADER_INPUT | Allows to read current shading rate in the pixel shader.
|
SHADING_RATE_CAP_FLAG_ADDITIONAL_INVOCATIONS | Indicates that driver may generate additional fragment shader invocations in order to make transitions between fragment areas with different shading rates more smooth. |
SHADING_RATE_CAP_FLAG_NON_SUBSAMPLED_RENDER_TARGET | Indicates that there are no additional requirements for render targets that are used in texture-based VRS rendering. |
SHADING_RATE_CAP_FLAG_SUBSAMPLED_RENDER_TARGET | Indicates that render targets that are used in texture-based VRS rendering must be created with Diligent::MISC_TEXTURE_FLAG_SUBSAMPLED flag. Intermediate targets must be scaled to the final resolution in a separate pass. Intermediate targets can only be sampled with an immutable sampler created with Diligent::SAMPLER_FLAG_SUBSAMPLED flag. If supported, rendering to the subsampled render targets may be more optimal.
|
Defines how shading rates coming from the different sources (base rate, primitive rate and VRS image rate) are combined. The combiner may be described by the following function:
ApplyCombiner(SHADING_RATE_COMBINER Combiner, SHADING_RATE OriginalRate, SHADING_RATE NewRate).
See IDeviceContext::SetShadingRate() for details.
Shading rate texture format supported by the device.
Enumerator | |
---|---|
SHADING_RATE_FORMAT_UNKNOWN | Variable rate shading is not supported. |
SHADING_RATE_FORMAT_PALETTE | Single-channel 8-bit surface that contains Diligent::SHADING_RATE values. Only 2D and 2D array textures with R8_UNORM format are allowed.
|
SHADING_RATE_FORMAT_UNORM8 | RG 8-bit UNORM texture that defines shading rate (0.5, 0.25 etc.) R channel is used for X axis, G channel is used for Y axis.
|
SHADING_RATE_FORMAT_COL_ROW_FP32 | This format is only used in Metal when shading rate is defined by column/row rates instead of a texture. The values are 32-bit floating point values in 0 to 1 range (0.5, 0.25 etc.). |
Defines how the shading rate texture is accessed.
Sparse memory capability flags.
Enumerator | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SPARSE_RESOURCE_CAP_FLAG_NONE | No sparse resource capabilities. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_SHADER_RESOURCE_RESIDENCY | Specifies whether texture operations that return resource residency information are supported in shader code.
| ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_BUFFER | Specifies whether the device supports sparse buffers. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_TEXTURE_2D | Specifies whether the device supports sparse 2D textures with 1 sample per pixel. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_TEXTURE_3D | Specifies whether the device supports sparse 3D textures. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_TEXTURE_2_SAMPLES | Specifies whether the device supports sparse 2D textures with 2 samples per pixel. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_TEXTURE_4_SAMPLES | Specifies whether the device supports sparse 2D textures with 4 samples per pixel. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_TEXTURE_8_SAMPLES | Specifies whether the device supports sparse 2D textures with 8 samples per pixel. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_TEXTURE_16_SAMPLES | Specifies whether the device supports sparse 2D textures with 16 samples per pixel. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_ALIASED | Specifies whether the device can correctly access memory aliased into multiple locations, and reading physical memory from multiple aliased locations will return the same value. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_STANDARD_2D_TILE_SHAPE | Specifies whether the device accesses single-sample 2D sparse textures using the standard sparse texture tile shapes.
If not present, call IRenderDevice::GetSparseTextureFormatInfo() to get the supported sparse tile dimensions. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_STANDARD_2DMS_TILE_SHAPE | Specifies whether the device accesses multi-sample 2D sparse textures using the standard sparse texture tile shapes.
If not present, call IRenderDevice::GetSparseTextureFormatInfo() to get the supported sparse tile dimensions. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_STANDARD_3D_TILE_SHAPE | Specifies whether the device accesses 3D sparse textures using the standard sparse texture tile shapes.
If not present, call IRenderDevice::GetSparseTextureFormatInfo() to get the supported sparse tile dimensions. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_ALIGNED_MIP_SIZE | Specifies if textures with mip level dimensions that are not integer multiples of the corresponding dimensions of the sparse texture tile may be placed in the mip tail. If this capability is not reported, only mip levels with dimensions smaller than the SparseTextureProperties::TilesSize will be placed in the mip tail. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_NON_RESIDENT_STRICT | Specifies whether the device can consistently access non-resident (without bound memory) regions of a resource. If not present, reads of unbound regions of the resource will return undefined values. Both reads and writes are still considered safe and will not affect other resources or populated regions of the resource. If present, all reads of unbound regions of the resource will behave as if the region was bound to memory populated with all zeros; writes will be discarded. Non-existent components of the format are replaced by 1. For example, RG8_UNORM format will be read as (0, 0, 1, 1). | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_TEXTURE_2D_ARRAY_MIP_TAIL | Specifies whether the device supports sparse texture arrays with mip levels whose dimensions are less than the tile size. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_BUFFER_STANDARD_BLOCK | Indicates that sparse buffers use the standard block, see SparseResourceProperties::StandardBlockSize. If this capability is not reported, call IBuffer::GetSparseProperties() and check SparseBufferProperties::BlockSize. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_NON_RESIDENT_SAFE | Reads or writes from unbound memory must not cause device removal. Note that if SPARSE_RESOURCE_CAP_FLAG_NON_RESIDENT_STRICT capability is not present, the result is still undefined even when this capability is reported. | ||||||||||||||||||||||||||||||
SPARSE_RESOURCE_CAP_FLAG_MIXED_RESOURCE_TYPE_SUPPORT | Indicates that single device memory object can be used to bind memory for different resource types. This capability is always enabled in Vulkan when sparse resources feature is enabled. In Direct3D12, this capability is enabled on D3D12_RESOURCE_HEAP_TIER_2 hardware and above. If this capability is not reported, the device is D3D12_RESOURCE_HEAP_TIER_1 hardware, which requires that one memory object is only used to allocate resources from one of the following categories:
The engine automatically selects the required category based on the list of compatible resources. Binding a resource from different category will result in an undefined behavior. Note that sharing the same memory block between buffers and textures is never allowed. |
Describes the sparse texture packing mode.
Resource state transition flags.
Enumerator | |
---|---|
STATE_TRANSITION_FLAG_NONE | No flags. |
STATE_TRANSITION_FLAG_UPDATE_STATE | Indicates that the internal resource state should be updated to the new state specified by StateTransitionDesc, and the engine should take over the resource state management. If an application was managing the resource state manually, it is responsible for making sure that all subresources are indeed in the designated state. If not used, internal resource state will be unchanged.
|
STATE_TRANSITION_FLAG_DISCARD_CONTENT | If set, the contents of the resource will be discarded, when possible. This may avoid potentially expensive operations such as render target decompression or a pipeline stall when transitioning to COMMON or UAV state. |
STATE_TRANSITION_FLAG_ALIASING | Indicates state transition between aliased resources that share the same memory. Currently it is only supported for sparse resources that were created with aliasing flag. |
State transition barrier type.
Enumerator | |
---|---|
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_RESOURCE_BARRIER_FLAG_BEGIN_ONLY flag. See https://docs.microsoft.com/en-us/windows/desktop/direct3d12/using-resource-barriers-to-synchronize-resource-states-in-direct3d-12#split-barriers. In other backends, begin-split barriers are ignored. |
STATE_TRANSITION_TYPE_END | End split barrier. This mode only has effect in Direct3D12 backend, and corresponds to D3D12_RESOURCE_BARRIER_FLAG_END_ONLY flag. See https://docs.microsoft.com/en-us/windows/desktop/direct3d12/using-resource-barriers-to-synchronize-resource-states-in-direct3d-12#split-barriers. In other backends, this mode is similar to STATE_TRANSITION_TYPE_IMMEDIATE. |
enum Diligent::STENCIL_OP : Int8 |
Stencil operation.
This enumeration describes the stencil operation and generally mirrors D3D11_STENCIL_OP/D3D12_STENCIL_OP enumeration. It is used by Diligent::StencilOpDesc structure to describe the stencil fail, depth fail and stencil pass operations
The transform applied to the image content prior to presentation.
Defines allowed swap chain usage flags.
Texture address mode.
Defines a technique for resolving texture coordinates that are outside of the boundaries of a texture. The enumeration generally mirrors D3D11_TEXTURE_ADDRESS_MODE/D3D12_TEXTURE_ADDRESS_MODE enumeration. It is used by SamplerDesc structure to define the address mode for U,V and W texture coordinates.
Enumerator | |
---|---|
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. |
Texture component swizzle.
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.
Enumerator | |
---|---|
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. |
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. |
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. |
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. |
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-precision 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_EXT_texture_norm16 extension is required |
TEX_FORMAT_R16_UINT | Single-component 16-bit unsigned-integer format. |
TEX_FORMAT_R16_SNORM | Single-component 16-bit signed-normalized-integer format. |
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.
|
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.
|
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.
|
TEX_FORMAT_BC2_TYPELESS | Four component typeless block-compression format with 1:4 compression ratio.
|
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.
|
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.
|
TEX_FORMAT_BC3_TYPELESS | Four-component typeless block-compression format with 1:4 compression ratio.
|
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.
|
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.
|
TEX_FORMAT_BC4_TYPELESS | One-component typeless block-compression format with 1:2 compression ratio.
|
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.
|
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.
|
TEX_FORMAT_BC5_TYPELESS | Two-component typeless block-compression format with 1:2 compression ratio.
|
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.
|
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.
|
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. |
TEX_FORMAT_BC6H_UF16 | Three-component unsigned half-precision floating-point format with 16 bits for each channel. |
TEX_FORMAT_BC6H_SF16 | Three-channel signed half-precision floating-point format with 16 bits per each channel. |
TEX_FORMAT_BC7_TYPELESS | Three-component typeless block-compression format. |
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. |
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. |
TEX_FORMAT_ETC2_RGB8_UNORM | Three-component block-compression unsigned-normalized-integer format. |
TEX_FORMAT_ETC2_RGB8_UNORM_SRGB | Three-component block-compression unsigned-normalized-integer sRGB format. |
TEX_FORMAT_ETC2_RGB8A1_UNORM | Four-component block-compression unsigned-normalized-integer format. |
TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB | Four-component block-compression unsigned-normalized-integer sRGB format. |
TEX_FORMAT_ETC2_RGBA8_UNORM | Four-component block-compression unsigned-normalized-integer format. |
TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB | Four-component block-compression unsigned-normalized-integer sRGB format. |
TEX_FORMAT_NUM_FORMATS | Helper member containing the total number of texture formats in the enumeration. |
Texture compression mode.
Coarse mip filter type.
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.
Triangulation result flags returned by the polygon triangulator.
enum Diligent::UAV_ACCESS_FLAG : Uint8 |
enum Diligent::USAGE : Uint8 |
Resource usage.
This enumeration describes expected resource usage. It generally mirrors D3D11_USAGE enumeration. The enumeration is used by
Enumerator | |
---|---|
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. An application should check if unified memory is available on the device by querying the adapter info (see Diligent::IRenderDevice::GetAdapterInfo().Memory and Diligent::AdapterMemoryInfo). If there is no unified memory, an application should choose another usage type (typically, USAGE_DEFAULT). 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 querying the device caps. (see Diligent::AdapterMemoryInfo::UnifiedMemoryCPUAccess). |
USAGE_SPARSE | A resource that can be partially committed to physical memory. |
USAGE_NUM_USAGES | Helper value indicating the total number of elements in the enum. |
enum Diligent::VALIDATION_FLAGS : Uint32 |
Common validation options.
enum Diligent::VALIDATION_LEVEL : Uint8 |
Common validation levels that translate to specific settings for different backends.
enum Diligent::VALUE_TYPE : Uint8 |
Value type.
This enumeration describes value type. It is used by
enum Diligent::VERIFY_SBT_FLAGS : Uint32 |
Defines shader binding table validation flags, see IShaderBindingTable::Verify().
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 https://github.com/DiligentGraphics/DiligentCore/blob/master/doc/WaveOp.md
WebGPU-specific resource binding types.
void Diligent::AllocateOpenXRSwapchainImageData | ( | RENDER_DEVICE_TYPE | DeviceType, |
Uint32 | ImageCount, | ||
IDataBlob ** | ppSwapchainImageData ) |
Allocates OpenXR swapchain image data, i.e. an array of appropriate structures for each device type (XrSwapchainImageVulkanKHR
, XrSwapchainImageD3D11KHR
, etc.).
[in] | DeviceType | - Type of the render device. |
[out] | ImageCount | - Number of images in the swapchain returned by OpenXR. |
[out] | ppSwapchainImageData | - Address of the memory location where the pointer to the data blob containing the swapchain image data will be stored. |
The data blob data pointer should be passed to xrEnumerateSwapchainImages:
uint32_t SwapchainImageCount = 0; xrEnumerateSwapchainImages(xrSwapchain, 0, &SwapchainImageCount, nullptr); RefCntAutoPtr<IDataBlob> pSwapchainImageData; AllocateOpenXRSwapchainImageData(m_DeviceType, SwapchainImageCount, &pSwapchainImageData); xrEnumerateSwapchainImages(xrSwapchain, SwapchainImageCount, &SwapchainImageCount, pSwapchainImageData->GetDataPtr<XrSwapchainImageBaseHeader>());
void Diligent::AppendLine1Marker | ( | std::string & | Source, |
const char * | FileName ) |
Appends #line 1 directive to the source string to make sure that the error messages contain correct line numbers.
void Diligent::AppendPlatformDefinition | ( | std::string & | Source | ) |
Appends platform definition macro, e.g. for Windows:
#define PLATFORM_WIN32 1
void Diligent::AppendShaderMacros | ( | std::string & | Source, |
const ShaderMacroArray & | Macros ) |
Appends shader macro definitions to the end of the source string:
#define Name[0] Definition[0] #define Name[1] Definition[1] ...
void Diligent::AppendShaderSourceLanguageDefinition | ( | std::string & | Source, |
SHADER_SOURCE_LANGUAGE | Language ) |
Appends a special comment that contains the shader source language definition. For example, for HLSL:
/*$SHADER_SOURCE_LANGUAGE=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.
bool Diligent::BasisFromDirection | ( | const Vector3< T > & | Dir, |
bool | IsRightHanded, | ||
Vector3< T > & | X, | ||
Vector3< T > & | Y, | ||
Vector3< T > & | Z ) |
Constructs an orthonormal basis from the given direction vector.
[in] | Dir | - The direction vector. |
[in] | IsRightHanded | - Flag indicating if the basis should be right-handed. |
[out] | X | - The resulting X basis vector. |
[out] | Y | - The resulting Y basis vector. |
[out] | Z | - The resulting Z basis vector. |
TEXTURE_FORMAT Diligent::BCFormatToUncompressed | ( | TEXTURE_FORMAT | Fmt | ) |
Converts block-compressed format to a corresponding uncompressed format.
For example:
BC1_UNORM -> RGBA8_UNORM
BC4_UNORM -> R8_UNORM
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.
[in] | AllowTouch - Whether to consider two boxes overlapping if they only touch at their boundaries or corners. |
[in] | T - Component type. |
[in] | Box0Min | - Min corner of the first box. |
[in] | Box0Max | - Max corner of the first box. |
[in] | Box1Min | - Min corner of the second box. |
[in] | Box1Max | - Max corner of the second box. |
bool Diligent::CheckLineSectionOverlap | ( | T | Min0, |
T | Max0, | ||
T | Min1, | ||
T | Max1 ) |
Checks if two 1D-line sections overlap.
[in] | AllowTouch - Whether to consider two sections overlapping if they only touch at their end points. |
[in] | T - Component type. |
[in] | Min0 | - Min end point of the first section |
[in] | Max0 | - Max end point of the first section |
[in] | Min1 | - Min end point of the second section |
[in] | Max1 | - Max end point of the second section |
VALUE_TYPE Diligent::ComponentTypeToValueType | ( | COMPONENT_TYPE | CompType, |
Uint32 | Size ) |
Converts component type and size to value type.
For example:
COMPONENT_TYPE_UNORM, 1 -> VT_UINT8
COMPONENT_TYPE_FLOAT, 4 -> VT_FLOAT32
void Diligent::ComputeImageDifference | ( | const ComputeImageDifferenceAttribs & | Attribs, |
ImageDiffInfo & | ImageDiff ) |
Computes the difference between two images
[in] | Attribs | Image difference attributes, see Diligent::ComputeImageDifferenceAttribs. |
The difference between two pixels is calculated as the maximum of the absolute differences of all channels. The average difference is the average of all differences, not counting pixels that are equal. The root mean square difference is calculated as the square root of the average of the squares of all differences, not counting pixels that are equal.
Uint32 Diligent::ComputeTextureAtlasSuballocationAlignment | ( | Uint32 | Width, |
Uint32 | Height, | ||
Uint32 | MinAlignment ) |
Computes the texture atlas suballocation alignment for the region of a given size.
[in] | Width | - Region width. |
[in] | Height | - Region height. |
[in] | MinAlignment | - Minimum required alignment, see DynamicTextureAtlasCreateInfo::MinAlignment. |
void Diligent::CopyTextureSubresource | ( | const TextureSubResData & | SrcSubres, |
Uint32 | NumRows, | ||
Uint32 | NumDepthSlices, | ||
Uint64 | RowSize, | ||
void * | pDstData, | ||
Uint64 | DstRowStride, | ||
Uint64 | DstDepthStride ) |
Copies texture subresource data on the CPU.
[in] | SrcSubres | - Source subresource data. |
[in] | NumRows | - The number of rows in the subresource. |
[in] | NumDepthSlices | - The number of depth slices in the subresource. |
[in] | RowSize | - Subresource data row size, in bytes. |
[in] | pDstData | - Pointer to the destination subresource data. |
[in] | DstRowStride | - Destination subresource row stride, in bytes. |
[in] | DstDepthStride | - Destination subresource depth stride, in bytes. |
|
inline |
Returns the number of characters at the beginning of the string that form a floating point number.
void Diligent::CreateBufferSuballocator | ( | IRenderDevice * | pDevice, |
const BufferSuballocatorCreateInfo & | CreateInfo, | ||
IBufferSuballocator ** | ppBufferSuballocator ) |
Creates a new buffer suballocator.
[in] | pDevice | - A pointer to the render device that will be used to initialize the internal buffer object. If this parameter is null, the buffer will be created when Update() is called. |
[in] | CreateInfo | - Suballocator create info, see Diligent::BufferSuballocatorCreateInfo. |
[in] | ppBufferSuballocator | - Memory location where pointer to the buffer suballocator will be stored. |
void Diligent::CreateCompoundShaderSourceFactory | ( | const CompoundShaderSourceFactoryCreateInfo & | CreateInfo, |
IShaderSourceInputStreamFactory ** | ppFactory ) |
Creates a compound shader source factory.
[in] | CreateInfo | - Compound shader source factory create info, see Diligent::CompoundShaderSourceFactoryCreateInfo. |
[out] | ppFactory | - Address of the memory location where the pointer to the created factory will be written. |
Compound shader source stream factory is a wrapper around multiple shader source stream factories. It is used to combine multiple shader source stream factories into a single one. When a source file is requested, the factory will iterate over all factories in the array and return the first one that returns a non-null stream.
The factory also allows substituting source file names. This is useful when the same shader source is used for multiple shaders, but some of them require a modified version of the source.
void Diligent::CreateDefaultShaderSourceStreamFactory | ( | const Char * | SearchDirectories, |
IShaderSourceInputStreamFactory ** | ppShaderSourceStreamFactory ) |
Creates a default shader source stream factory
[in] | SearchDirectories | - Semicolon-separated list of search directories. |
[out] | ppShaderSourceStreamFactory | - Memory address where the pointer to the shader source stream factory will be written. |
void Diligent::CreateDynamicTextureAtlas | ( | IRenderDevice * | pDevice, |
const DynamicTextureAtlasCreateInfo & | CreateInfo, | ||
IDynamicTextureAtlas ** | ppAtlas ) |
Creates a new dynamic texture atlas.
[in] | pDevice | - 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 Update() is called. |
[in] | CreateInfo | - Atlas create info, see Diligent::DynamicTextureAtlasCreateInfo. |
[in] | ppAtlas | - Memory location where pointer to the texture atlas object will be written. |
void Diligent::CreateGeometryPrimitive | ( | const GeometryPrimitiveAttributes & | Attribs, |
IDataBlob ** | ppVertices, | ||
IDataBlob ** | ppIndices, | ||
GeometryPrimitiveInfo * | pInfo = nullptr ) |
Creates a geometry primitive
[in] | Attribs | - Geometry primitive attributes, see Diligent::GeometryPrimitiveAttributes. |
[out] | ppVertices | - Address of the memory location where the pointer to the output vertex data blob will be stored. The vertex components are stored as interleaved floating-point values. For example, if VertexFlags = Diligent::GEOMETRY_PRIMITIVE_VERTEX_FLAG_POS_NORM, the vertex data will be stored as follows: P0, N0, P1, N1, ..., Pn, Nn. |
[out] | ppIndices | - Address of the memory location where the pointer to the output index data blob will be stored. Index data is stored as 32-bit unsigned integers representing the triangle list. |
[out] | pInfo | - A pointer to the structure that will receive information about the created geometry primitive. See Diligent::GeometryPrimitiveInfo. |
void Diligent::CreateGeometryPrimitiveBuffers | ( | IRenderDevice * | pDevice, |
const GeometryPrimitiveAttributes & | Attribs, | ||
const GeometryPrimitiveBuffersCreateInfo * | pBufferCI, | ||
IBuffer ** | ppVertices, | ||
IBuffer ** | ppIndices, | ||
GeometryPrimitiveInfo * | pInfo = nullptr ) |
Creates vertex and index buffers for a geometry primitive (see Diligent::CreateGeometryPrimitive)
[in] | pDevice | - A pointer to the render device that will be used to create the buffers. |
[in] | Attribs | - Geometry primitive attributes, see Diligent::GeometryPrimitiveAttributes. |
[in] | pBufferCI | - Optional buffer create info, see Diligent::GeometryPrimitiveBufferCreateInfo. If null, default values are used. |
[out] | ppVertices | - Address of the memory location where the pointer to the vertex buffer will be stored. |
[out] | ppIndices | - Address of the memory location where the pointer to the index buffer will be stored. |
[out] | pInfo | - A pointer to the structure that will receive information about the created geometry primitive. See Diligent::GeometryPrimitiveInfo. |
IMAGE_FILE_FORMAT Diligent::CreateImageFromFile | ( | const Char * | FilePath, |
Image ** | ppImage, | ||
IDataBlob ** | ppRawData = nullptr ) |
Creates an image from file.
[in] | FilePath | - Source file path |
[out] | ppImage | - Memory location where pointer to the created image will be stored |
[out] | ppRawData | - If the file format is not recognized by the function, it will load raw bytes and return them in the data blob. This parameter can be null. |
IMAGE_FILE_FORMAT Diligent::CreateImageFromMemory | ( | const void * | pImageData, |
size_t | DataSize, | ||
Image ** | ppImage ) |
Creates an image from memory.
[in] | pImageData | - Source image data |
[in] | DataSize | - Size of the image data |
[out] | ppImage | - Memory location where pointer to the created image will be stored |
void Diligent::CreateMemoryShaderSourceFactory | ( | const MemoryShaderSourceFactoryCreateInfo & | CreateInfo, |
IShaderSourceInputStreamFactory ** | ppFactory ) |
Crates a memory shader source factory.
[in] | CreateInfo | - Memory shader source factory create info, see Diligent::MemoryShaderSourceFactoryCreateInfo. |
[out] | ppFactory | - Address of the memory location where the pointer to the created factory will be written. |
void Diligent::CreateOffScreenSwapChain | ( | IRenderDevice * | pDevice, |
IDeviceContext * | pContext, | ||
const SwapChainDesc & | SCDesc, | ||
ISwapChain ** | ppSwapChain ) |
Creates an off-screen swap chain.
[in] | pDevice | - Pointer to the render device. |
[in] | pContext | - Pointer to the device context. |
[in] | SCDesc | - Swap chain description. |
[out] | ppSwapChain | - Address of the pointer to the swap chain object. |
void Diligent::CreateSparseTextureMtl | ( | IRenderDevice * | pDevice, |
const TextureDesc & | TexDesc, | ||
IDeviceMemory * | pMemory, | ||
ITexture ** | ppTexture ) |
Creates a sparse texture in Metal backend.
[in] | pDevice | - A pointer to the render device. |
[in] | TexDesc | - Texture description. |
[in] | pMemory | - A pointer to the device memory. |
[out] | ppTexture | - Address of the memory location where a pointer to the sparse texture will be written. |
If pDevice
is a pointer to Metal device (Diligent::IRenderDeviceMtl), this function creates a sparse texture using IRenderDeviceMtl::CreateSparseTexture method. Otherwise, it does nothing.
void Diligent::CreateTextureFromFile | ( | const Char * | FilePath, |
const TextureLoadInfo & | TexLoadInfo, | ||
IRenderDevice * | pDevice, | ||
ITexture ** | ppTexture ) |
Creates a texture from file.
[in] | FilePath | - Source file path. |
[in] | TexLoadInfo | - Texture loading information. |
[in] | pDevice | - Render device that will be used to create the texture. |
[out] | ppTexture | - Memory location where pointer to the created texture will be written. |
void Diligent::CreateTextureLoaderFromDataBlob | ( | IDataBlob * | pDataBlob, |
const TextureLoadInfo & | TexLoadInfo, | ||
ITextureLoader ** | ppLoader ) |
Creates a texture loader from data blob.
[in] | pDataBlob | - Pointer to the data blob that contains the texture data. |
[in] | TexLoadInfo | - Texture loading information, see Diligent::TextureLoadInfo. |
[out] | ppLoader | - Memory location where a pointer to the created texture loader will be written. |
void Diligent::CreateTextureLoaderFromFile | ( | const char * | FilePath, |
IMAGE_FILE_FORMAT | FileFormat, | ||
const TextureLoadInfo & | TexLoadInfo, | ||
ITextureLoader ** | ppLoader ) |
Creates a texture loader from file.
[in] | FilePath | - File path. |
[in] | FileFormat | - File format. If this parameter is IMAGE_FILE_FORMAT_UNKNOWN, the format will be derived from the file contents. |
[in] | TexLoadInfo | - Texture loading information, see Diligent::TextureLoadInfo. |
[out] | ppLoader | - Memory location where a pointer to the created texture loader will be written. |
void Diligent::CreateTextureLoaderFromImage | ( | struct Image * | pSrcImage, |
const TextureLoadInfo & | TexLoadInfo, | ||
ITextureLoader ** | ppLoader ) |
Creates a texture loader from image.
[in] | pSrcImage | - Pointer to the source image object. |
[in] | TexLoadInfo | - Texture loading information, see Diligent::TextureLoadInfo. |
[out] | ppLoader | - Memory location where a pointer to the created texture loader will be written. |
void Diligent::CreateTextureLoaderFromMemory | ( | const void * | pData, |
size_t | Size, | ||
bool | MakeCopy, | ||
const TextureLoadInfo & | TexLoadInfo, | ||
ITextureLoader ** | ppLoader ) |
Creates a texture loader from memory.
[in] | pData | - Pointer to the texture data. |
[in] | Size | - The data size. |
[in] | MakeCopy | - Whether to make the copy of the data (see remarks). |
[in] | TexLoadInfo | - Texture loading information, see Diligent::TextureLoadInfo. |
[out] | ppLoader | - Memory location where a pointer to the created texture loader will be written. |
void Diligent::CreateVertexPool | ( | IRenderDevice * | pDevice, |
const VertexPoolCreateInfo & | CreateInfo, | ||
IVertexPool ** | ppVertexPool ) |
Creates a new vertex pool.
[in] | pDevice | - A pointer to the render device that will be used to initialize internal buffer objects. If this parameter is null, the buffers will be created when Update() is called. |
[in] | CreateInfo | - Vertex pool create info, see Diligent::VertexPoolCreateInfo. |
[in] | ppVertexPool | - Memory location where a pointer to the vertex pool will be stored. |
DECODE_JPEG_RESULT Diligent::DecodeJpeg | ( | const void * | pSrcJpegBits, |
size_t | JpegDataSize, | ||
IDataBlob * | pDstPixels, | ||
ImageDesc * | pDstImgDesc ) |
Decodes jpeg image.
[in] | pSrcJpegBits | - JPEG image encoded bits. |
[in] | JpegDataSize | - Size of the encoded JPEG image data. |
[out] | pDstPixels | - Decoded pixels data blob. The pixels are always tightly packed (for instance, components of 3-channel image will be written as |r|g|b|r|g|b|r|g|b|...). |
[out] | pDstImgDesc | - Decoded image description. |
If pDstPixels
is null, the function will only decode the image description and return DECODE_JPEG_RESULT_OK.
DECODE_PNG_RESULT Diligent::DecodePng | ( | const void * | pSrcPngBits, |
size_t | PngDataSize, | ||
IDataBlob * | pDstPixels, | ||
ImageDesc * | pDstImgDesc ) |
Decodes png image.
[in] | pSrcPngBits | - PNG image encoded bits. |
[in] | PngDataSize | - Size of the PNG image data, in bytes. |
[out] | pDstPixels | - Decoded pixels data blob. The pixels are always tightly packed (for instance, components of 3-channel image will be written as |r|g|b|r|g|b|r|g|b|... ). |
[out] | pDstImgDesc | - Decoded image description. |
pDstPixels
is null, the function will only decode the image description. Decompresses BC1 block (4x4 RGB).
[in] | Bits | - Compressed block bits. |
[out] | DstBuffer | - Pointer to the output 4x4 RGB or RGBA buffer. |
[in] | DstChannels | - The number of components in the output buffer. Must be 3 (RGB) or 4 (RGBA). |
Decompresses BC3 block (4x4 RGB+A).
[in] | Bits | - Compressed block bits. |
[out] | DstBuffer | - Pointer to the output 4x4 RGBA buffer. |
Decompresses BC4 block (4x4 R).
[in] | Bits | - Compressed block bits. |
[out] | DstBuffer | - Pointer to the output 4x4 pixel buffer. |
[in] | DstChannels | - The number of components in the output buffer. |
Decompresses BC5 block (4x4 R+G).
[in] | Bits | - Compressed block bits. |
[out] | DstBuffer | - Pointer to the output 4x4 pixel buffer. |
[in] | DstChannels | - The number of components in the output buffer. Must be greater than 2. |
DeviceFeatures Diligent::EnableDeviceFeatures | ( | const DeviceFeatures & | SupportedFeatures, |
const DeviceFeatures & | RequestedFeatures ) |
Returns enabled device features based on the supported features and requested features, and throws an exception in case requested features are missing:
SupportedFeature | RequestedFeature | Result |
---|---|---|
DISABLED | DISABLED | DISABLED |
OPTIONAL | DISABLED | DISABLED |
ENABLED | DISABLED | ENABLED |
DISABLED | OPTIONAL | DISABLED |
OPTIONAL | OPTIONAL | ENABLED |
ENABLED | OPTIONAL | ENABLED |
DISABLED | ENABLED | EXCEPTION |
OPTIONAL | ENABLED | ENABLED |
ENABLED | ENABLED | ENABLED |
ENCODE_JPEG_RESULT Diligent::EncodeJpeg | ( | Uint8 * | pSrcRGBPixels, |
Uint32 | Width, | ||
Uint32 | Height, | ||
int | quality, | ||
IDataBlob * | pDstJpegBits ) |
Encodes an image jpeg PNG format.
[in] | pSrcPixels | - Source pixels. The pixels must be tightly packed (for instance, components of 3-channel image must be stored as |r|g|b|r|g|b|r|g|b|... ). At the moment, only RGB images are supported. |
[in] | Width | - Image width. |
[in] | Height | - Image height. |
[in] | quality | - JPEG encoding qulaity, in the range from 0 to 100. |
[out] | pDstJpegBits | - Encoded JPEG image bits. |
ENCODE_PNG_RESULT Diligent::EncodePng | ( | const Uint8 * | pSrcPixels, |
Uint32 | Width, | ||
Uint32 | Height, | ||
Uint32 | StrideInBytes, | ||
int | PngColorType, | ||
IDataBlob * | pDstPngBits ) |
Encodes an image into PNG format.
[in] | pSrcPixels | - Source pixels. The pixels must be tightly packed (for instance, components of 3-channel image must be stored as |r|g|b|r|g|b|r|g|b|... ). The number of components is defined by the PngColorType parameter. |
[in] | Width | - Image width. |
[in] | Height | - Image height. |
[in] | StrideInBytes | - Image data stride, in bytes. |
[in] | PngColorType | - PNG color type (PNG_COLOR_TYPE_RGB , PNG_COLOR_TYPE_RGBA , etc.). The color type defines the number of color components, which must be tightly packed. |
[out] | pDstPngBits | - Encoded PNG image bits. |
RefCntAutoPtr< IAsyncTask > Diligent::EnqueueAsyncWork | ( | IThreadPool * | pThreadPool, |
IAsyncTask ** | ppPrerequisites, | ||
Uint32 | NumPrerequisites, | ||
HanlderType | Handler, | ||
float | fPriority = 0 ) |
Enqueues a function to be executed asynchronously by the thread pool. For the list of parameters, see Diligent::IThreadPool::EnqueueTask() method. The handler function must return the task status, see Diligent::IAsyncTask::Run() method.
|
inline |
For OpenGL, matrix is still considered row-major. The only difference is that near clip plane is at -1, not 0.
Note that returned plane normal vectors are not normalized, which does not make a difference when testing a point against the plane:
IsPointInsidePlane = dot(Plane.Normal, Point) < Plane.Distance
However, to use the planes with other distances (e.g. for testing a sphere against the plane), the normal vectors must be normalized and the distances scaled accordingly.
|
inline |
Converts gamma color to linear color space using fast approximation.
x | - Gamma color value in the range [0, 1] |
|
inline |
Converts linear color to gamma color space using fast approximation.
x | - Linear color value in the range [0, 1] |
|
inline |
Converts RGB color from gamma to linear color space using fast approximation.
RGB | - Gamma color value in the range [0, 1] |
|
inline |
Converts RGBA color from gamma to linear color space using fast approximation.
RGBA | - Gamma color value in the range [0, 1] |
|
inline |
Converts RGBA color from gamma to linear color space using fast approximation.
RGBA | - Gamma color value in the range [0, 1] |
|
inline |
Converts RGB color from gamma to linear color space using fast approximation.
RGB | - Gamma color value in the range [0, 1] |
DstType Diligent::FilterTexture2DBilinear | ( | Uint32 | Width, |
Uint32 | Height, | ||
const SrcType * | pData, | ||
size_t | Stride, | ||
float | u, | ||
float | v ) |
Samples 2D texture using bilinear filter.
SrcType | - Source pixel type. |
DstType | - Destination type. |
AddressModeU | - U coordinate address mode. |
AddressModeV | - V coordinate address mode. |
IsNormalizedCoord | - Whether sample coordinates are normalized. |
[in] | Width | - Texture width. |
[in] | Height | - Texture height. |
[in] | pData | - Pointer to the texture data. |
[in] | Stride | - Data stride, in pixels. |
[in] | u | - Sample u coordinate. |
[in] | v | - Sample v coordinate. |
DstType Diligent::FilterTexture2DBilinearClamp | ( | Uint32 | Width, |
Uint32 | Height, | ||
const SrcType * | pData, | ||
size_t | Stride, | ||
float | u, | ||
float | v ) |
Specialization of FilterTexture2DBilinear function that uses CLAMP texture address mode and takes normalized texture coordinates.
DstType Diligent::FilterTexture2DBilinearClampUC | ( | Uint32 | Width, |
Uint32 | Height, | ||
const SrcType * | pData, | ||
size_t | Stride, | ||
float | u, | ||
float | v ) |
Specialization of FilterTexture2DBilinear function that uses CLAMP texture address mode and takes unnormalized texture coordinates.
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.
ShaderResourceVariableDesc 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 not found, returns default variable {ShaderStage, Name, LayoutDesc.DefaultVariableType}.
Uint32 Diligent::FindResource | ( | const PipelineResourceDesc | Resources[], |
Uint32 | NumResources, | ||
SHADER_TYPE | ShaderStage, | ||
const char * | ResourceName ) |
Finds a resource with the given name in the specified shader stage and returns its index in Resources[], or InvalidPipelineResourceIndex if the resource is not found.
|
inline |
Converts gamma color to linear color space.
x | - Gamma color value in the range [0, 1] |
float Diligent::GammaToLinear | ( | Uint8 | x | ) |
Converts gamma color to linear color space.
x | - Gamma color value in the range [0, 255] |
const char * Diligent::GetArchiveDeviceDataFlagString | ( | ARCHIVE_DEVICE_DATA_FLAGS | Flag, |
bool | bGetFullName = false ) |
Returns the string representation of the ARCHIVE_DEVICE_DATA_FLAGS enum value.
[in] | Flag | - Archive device data flag. |
[in] | bGetFullName | - Whether to return full name of the enum value |
For example, if bGetFullName == true, "ARCHIVE_DEVICE_DATA_FLAG_D3D11" will be returned; if bGetFullName == false, "D3D11" will be returned.
void Diligent::GetArray2DMinMaxValue | ( | const float * | pData, |
size_t | StrideInFloats, | ||
Uint32 | Width, | ||
Uint32 | Height, | ||
float & | MinValue, | ||
float & | MaxValue ) |
Computes the minimum and the maximum value in a 2D floating-point array.
[in] | pData | - A pointer to the array data. |
[in] | StrideInFloats | - Row stride in 32-bit floats. |
[in] | Width | - 2D array width. |
[in] | Height | - 2D array height. |
[out] | MinValue | - Minimum value. |
[out] | MaxValue | - Maximum value. |
const Char * Diligent::GetBlendFactorLiteralName | ( | BLEND_FACTOR | BlendFactor | ) |
Returns the literal name of a blend factor.
[in] | BlendFactor | - Blend factor, see Diligent::BLEND_FACTOR. |
const Char * Diligent::GetBlendOperationLiteralName | ( | BLEND_OPERATION | BlendOp | ) |
Returns the literal name of a blend operation.
[in] | BlendOp | - Blend operation, see Diligent::BLEND_OPERATION. |
|
inline |
Tests if the bounding box is fully visible, intersecting or invisible with respect to the plane.
Plane normal doesn't have to be normalized. The box is visible when it is in the positive halfspace of the plane.
Invisible | Visible | N |===> | |
|
inline |
Tests if the oriented bounding box is fully visible, intersecting or invisible with respect to the plane.
IBufferView * Diligent::GetBufferDefaultSRV | ( | IObject * | pBuffer | ) |
Returns default shader resource view of a buffer.
If the buffer is null, returns null.
IBufferView * Diligent::GetBufferDefaultUAV | ( | IObject * | pBuffer | ) |
Returns default unordered access view of a buffer.
If the buffer is null, returns null.
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.
[in] | ViewType | - Buffer view type. |
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.
[in] | ComparisonFunc | - Comparison function, see Diligent::COMPARISON_FUNCTION. |
[in] | bGetFullName | - Whether to return string representation of the enum value. |
const Char * Diligent::GetCullModeLiteralName | ( | CULL_MODE | CullMode, |
bool | GetEnumString = false ) |
Returns the literal name of a cull mode.
[in] | CullMode | - Cull mode, see Diligent::CULL_MODE. |
[in] | GetEnumString | - Whether to return string representation of the enum value. |
ITextureView * Diligent::GetDefaultDSV | ( | ITexture * | pTexture | ) |
Returns default depth-stencil view of a texture.
If the texture is null, returns null.
ITextureView * Diligent::GetDefaultRTV | ( | ITexture * | pTexture | ) |
Returns default render target view of a texture.
If the texture is null, returns null.
IBufferView * Diligent::GetDefaultSRV | ( | IBuffer * | pBuffer | ) |
Returns default shader resource view of a buffer.
If the buffer is null, returns null.
ITextureView * Diligent::GetDefaultSRV | ( | ITexture * | pTexture | ) |
Returns default shader resource view of a texture.
If the texture is null, returns null.
|
inline |
Returns the default format for a specified texture view type.
[in] | TexDesc | - texture description |
[in] | ViewType | - texture view type |
TEXTURE_FORMAT Diligent::GetDefaultTextureViewFormat | ( | TEXTURE_FORMAT | TextureFormat, |
TEXTURE_VIEW_TYPE | ViewType, | ||
Uint32 | BindFlags ) |
Returns the default format for a specified texture view type.
The default view is defined as follows:
R32_FLOAT -> D32_FLOAT
)XXXX32_FLOAT
(where XXXX
are the actual format components)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
.XXXX8_UNORM
(where XXXX
are the actual format components)RGBA8_UNORM_SRGB
, TEX_FORMAT_BC1_UNORM_SRGB
, etc.)R24_UNORM_X8_TYPELESS
for D24S8
formats, and R32_FLOAT_X8X24_TYPELESS
for D32S8X24
formats)[in] | Format | - texture format, for which the view format is requested |
[in] | ViewType | - texture view type |
[in] | BindFlags | - texture bind flags |
IBufferView * Diligent::GetDefaultUAV | ( | IBuffer * | pBuffer | ) |
Returns default unordered access view of a buffer.
If the buffer is null, returns null.
ITextureView * Diligent::GetDefaultUAV | ( | ITexture * | pTexture | ) |
Returns default unordered access view of a texture.
If the texture is null, returns null.
std::string Diligent::GetDeviceFeaturesString | ( | const FeaturesType & | Features, |
size_t | NumColumns, | ||
int | Indent = 4, | ||
int | Spacing = 4, | ||
Uint32 | Flags = ~0u ) |
Returns the string containing the device features
Features | - device features. |
NumColumns | - the number of columns in the output. |
Indent | - indentation of the first column. |
Spacing | - spacing between columns. |
Flags | - flags to control which features to include in the output. If (1<<State) & Flags is true, the feature will be included. |
const char * Diligent::GetDeviceFeatureStateString | ( | DEVICE_FEATURE_STATE | State, |
bool | bGetFullName = false ) |
Returns the string representation of the DEVICE_FEATURE_STATE enum value.
[in] | State | - Device feature state. |
[in] | bGetFullName | - Whether to return full name of the enum value |
For example, if bGetFullName == true, "DEVICE_FEATURE_STATE_ENABLED" will be returned; if bGetFullName == false, "Enabled" will be returned.
const Char * Diligent::GetFillModeLiteralName | ( | FILL_MODE | FillMode | ) |
Returns the literal name of a fill mode.
[in] | FillMode | - Fill mode, see Diligent::FILL_MODE. |
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.
[in] | FilterType | - Filter type, see Diligent::FILTER_TYPE. |
[in] | bGetFullName | - Whether to return string representation of the enum value. |
|
inline |
Returns the minimum bounding sphere of a view frustum.
Proj_00 | cot(HorzFOV / 2) |
Proj_11 | cot(VertFOV / 2) == proj_00 / AspectRatio |
NearPlane | Near clip plane |
FarPlane | Far clip plane |
Center | Sphere center == (0, 0, c) |
Radius | Sphere radius |
std::vector< std::pair< std::string, std::string > > Diligent::GetGLSLExtensions | ( | const char * | Source, |
size_t | SourceLen = 0 ) |
Extracts all #extension directives from the GLSL source, returning them as a vector of pairs (extension name, extension behavior). The behavior is the string following the extension name.
LinearTexFilterSampleInfo Diligent::GetLinearTexFilterSampleInfo | ( | Uint32 | Width, |
float | u ) |
Returns linear texture filter sample info, see Diligent::LinearTexFilterSampleInfo.
AddressMode | - Texture addressing mode, see Diligent::TEXTURE_ADDRESS_MODE. |
IsNormalizedCoord | - Whether sample coordinate is normalized. |
[in] | Width | - Texture width. |
[in] | u | - Texture sample coordinate. |
void Diligent::GetOpenXRGraphicsBinding | ( | IRenderDevice * | pDevice, |
IDeviceContext * | pContext, | ||
IDataBlob ** | ppGraphicsBinding ) |
Prepares OpenXR graphics binding for the specified device and context.
[in] | pDevice | - Pointer to the render device. |
[in] | pContext | - Pointer to the device context. |
[out] | ppGraphicsBinding | - Address of the memory location where the pointer to the data blob containing the graphics binding will be stored. |
The function returns the data blob that contains the OpenXR graphics binding structure (XrGraphicsBindingVulkanKHR
, XrGraphicsBindingD3D11KHR
, etc.). The data blob should be used to create the OpenXR session, for example:
RefCntAutoPtr<IDataBlob> pGraphicsBinding; GetOpenXRGraphicsBinding(m_pDevice, m_pImmediateContext, &pGraphicsBinding); XrSessionCreateInfo sessionCI{XR_TYPE_SESSION_CREATE_INFO}; sessionCI.next = pGraphicsBinding->GetConstDataPtr(); sessionCI.systemId = m_SystemId; xrCreateSession(m_xrInstance, &sessionCI, &m_xrSession);
void Diligent::GetOpenXRSwapchainImage | ( | IRenderDevice * | pDevice, |
const XrSwapchainImageBaseHeader * | ImageData, | ||
Uint32 | ImageIndex, | ||
const Diligent::TextureDesc & | TexDesc, | ||
ITexture ** | ppImage ) |
Returns the texture object that corresponds to the specified OpenXR swapchain image.
[in] | pDevice | - Pointer to the render device. |
[in] | ImageData | - Pointer to the OpenXR swapchain image data returned by xrEnumerateSwapchainImages. |
[in] | ImageIndex | - Index of the swapchain image. |
[in] | TexDesc | - Texture description. |
[out] | ppImage | - Address of the memory location where the pointer to the texture object will be stored. |
The function creates a texture object that corresponds to the specified OpenXR swapchain image.
Typically, ImageData should be allocated by AllocateOpenXRSwapchainImageData and filled by xrEnumerateSwapchainImages
(see Diligent::AllocateOpenXRSwapchainImageData):
RefCntAutoPtr<ITexture> pImage; GetOpenXRSwapchainImage(pDevice, pSwapchainImageData->GetConstDataPtr<XrSwapchainImageBaseHeader>(), ImageIndex, Desc, &pImage);
TexDesc
should be filled with the texture description that corresponds to the swapchain. On Direct3D, the texture parameters will be derived from the swapchain resource. On Vulkan, the texture description should be filled manually since Vulkan does not provide a way to query texture parameters from the image.
const Char * Diligent::GetPipelineStateStatusString | ( | PIPELINE_STATE_STATUS | PipelineStatus, |
bool | GetEnumString = false ) |
Returns the string containing the pipeline state status (e.g. "PIPELINE_STATE_STATUS_UNINITIALIZED" when GetEnumString is true, or "Uninitialized" when GetEnumString is false).
const char * Diligent::GetRenderDeviceTypeShortString | ( | RENDER_DEVICE_TYPE | DeviceType, |
bool | Capital = false ) |
Returns the render device type short string (e.g. "D3D11" when Capital is true, or "d3d11" when Capital is false).
const char * Diligent::GetRenderDeviceTypeString | ( | RENDER_DEVICE_TYPE | DeviceType, |
bool | GetEnumString = false ) |
Returns the render device type string (e.g. "RENDER_DEVICE_TYPE_D3D11" when GetEnumString is true, or "Direct3D11" when GetEnumString is false).
std::string Diligent::GetRenderStateCacheFilePath | ( | const char * | CacheLocation, |
const char * | AppName, | ||
RENDER_DEVICE_TYPE | DeviceType ) |
Returns the path to the render state cache file.
[in] | CacheLocation | - Cache location. If it is equal to RenderStateCacheLocationAppData, the function returns the path to the cache file in the application data folder. Otherwise, the function returns the path to the cache file in the specified folder. |
[in] | AppName | - Application name. |
[in] | DeviceType | - Render device 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
[in] | ResourceType | - Resource type. |
[in] | bGetFullName | - Whether to return string representation of the enum value |
String Diligent::GetShaderStagesString | ( | SHADER_TYPE | ShaderStages | ) |
[in] | ShaderStages | - Shader stages. |
const Char * Diligent::GetShaderStatusString | ( | SHADER_STATUS | ShaderStatus, |
bool | GetEnumString = false ) |
Returns the string containing the shader status (e.g. "SHADER_STATUS_UNINITIALIZED" when GetEnumString is true, or "Uninitialized" when GetEnumString is false).
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.
[in] | ShaderType | - Shader type. |
ShaderMacroArray Diligent::GetShaderTypeMacros | ( | SHADER_TYPE | Type | ) |
Returns shader type definition macro(s), e.g., for a vertex shader:
ShaderMacroArray{{{"VERTEX_SHADER", "1"}}, 1}
or, for a fragment shader:
ShaderMacroArray{{{"FRAGMENT_SHADER", "1"}, {"PIXEL_SHADER", "1"}}, 2}
etc.
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
[in] | VarType | - Variable type. |
[in] | bGetFullName | - Whether to return string representation of the enum value |
Uint64 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.
[in] | TexDesc | - Staging texture description. |
[in] | ArraySlice | - Array slice. |
[in] | MipLevel | - Mip level. |
[in] | Alignment | - 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. |
[in] | LocationX | - X location within the subresource. |
[in] | LocationY | - Y location within the subresource. |
[in] | LocationZ | - Z location within the subresource. |
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'
|
inline |
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.
const Char * Diligent::GetStencilOpLiteralName | ( | STENCIL_OP | StencilOp | ) |
Returns the literal name of a stencil operation.
[in] | StencilOp | - Stencil operation, see Diligent::STENCIL_OP. |
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.
[in] | AddressMode | - Texture address mode, see Diligent::TEXTURE_ADDRESS_MODE. |
[in] | bGetFullName | - Whether to return string representation of the enum value. |
String Diligent::GetTextureComponentMappingString | ( | const TextureComponentMapping & | Mapping | ) |
Converts texture component mapping to a string.
For example:
{R, G, B, A} -> "rgba"
{R, G, B, 1} -> "rgb1"
ITextureView * Diligent::GetTextureDefaultDSV | ( | IObject * | pTexture | ) |
Returns default depth-stencil view of a texture.
If the texture is null, returns null.
ITextureView * Diligent::GetTextureDefaultRTV | ( | IObject * | pTexture | ) |
Returns default render target view of a texture.
If the texture is null, returns null.
ITextureView * Diligent::GetTextureDefaultSRV | ( | IObject * | pTexture | ) |
Returns default shader resource view of a texture.
If the texture is null, returns null.
ITextureView * Diligent::GetTextureDefaultUAV | ( | IObject * | pTexture | ) |
Returns default unordered access view of a texture.
If the texture is null, returns null.
const TextureFormatAttribs & Diligent::GetTextureFormatAttribs | ( | TEXTURE_FORMAT | Format | ) |
Returns invariant texture format attributes, see TextureFormatAttribs for details.
[in] | Format | - Texture format which attributes are requested for. |
size_t Diligent::GetTextureLoaderMemoryRequirement | ( | const void * | pData, |
size_t | Size, | ||
const TextureLoadInfo & | TexLoadInfo ) |
Returns the memory requirement for the texture loader.
[in] | pData | - Pointer to the source image data. |
[in] | Size | - The data size. |
[in] | TexLoadInfo | - Texture loading information, see Diligent::TextureLoadInfo. |
This function can be used to estimate the memory requirement for the texture loader. The memory requirement includes the size of the texture data plus the size of the intermediate data structures used by the loader. It does not include the size of the source image data. The actual memory used by the loader may be slightly different.
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.
[in] | ViewType | - Texture view type. |
|
inline |
Overloaded function that returns the literal name of a buffer view type. see GetBufferViewTypeLiteralName().
|
inline |
Overloaded function that returns the literal name of a texture view type. see GetTexViewTypeLiteralName().
const char * Diligent::GetWebGPUEmulatedArrayIndexSuffix | ( | IShader * | pShader | ) |
For WebGPU shaders, returns the suffix to append to the name of emulated array variables to get the indexed array element name. For other shader types, returns null.
WGSLEmulatedResourceArrayElement Diligent::GetWGSLEmulatedArrayElement | ( | const std::string & | Name, |
const std::string & | Suffix ) |
Returns WGSL emulated resource array element info, for example g_Tex2D_7 -> {Name = "g_Tex2D", Index = 7} g_Tex2D -> {Name = "g_Tex2D", Index = -1}
std::string Diligent::GetWGSLResourceAlternativeName | ( | const tint::Program & | Program, |
const tint::inspector::ResourceBinding & | Binding ) |
When WGSL is generated from SPIR-V, the names of resources may be mangled
Constant buffers: HLSL: cbuffer CB0 { float4 g_Data0; } WGSL: struct CB0 { g_Data0 : vec4f, } @group(0) @binding(0) var<uniform> x_13 : CB0;
Structured buffers: HLSL: struct BufferData0 { float4 data; }; StructuredBuffer<BufferData0> g_Buff0; StructuredBuffer<BufferData0> g_Buff1; WGSL: struct g_Buff0 { x_data : RTArr, } @group(0) @binding(0) var<storage, read> g_Buff0_1 : g_Buff0; @group(0) @binding(1) var<storage, read> g_Buff1 : g_Buff0;
This function returns the alternative name of the resource binding.
|
inline |
Intersects a ray with the triangle using Moller-Trumbore algorithm and returns the distance along the ray to the intersection point. If the intersection point is behind the ray origin, the distance will be negative. If there is no intersection, returns +FLT_MAX.
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.
T | - Vector component type |
IntermediateType | - Intermediate type used in calculations |
[in] | V0 | - First triangle vertex |
[in] | V1 | - Second triangle vertex |
[in] | V2 | - Third triangle vertex |
[in] | Point | - Point to test |
[in] | AllowEdges | - Whether to accept points lying on triangle edges |
|
inline |
Converts linear color to gamma color space.
x | - Linear color value in the range [0, 1] |
float Diligent::LinearToGamma | ( | Uint8 | x | ) |
Converts linear color to gamma color space.
x | - Linear color value in the range [0, 255] |
|
inline |
Converts RGB color from linear to gamma color space.
RGB | - Linear color value in the range [0, 1] |
|
inline |
Converts RGBA color from linear to gamma color space.
RGBA | - Linear color value in the range [0, 1] |
bool Diligent::LoadSGI | ( | const void * | pSGIData, |
size_t | DataSize, | ||
IDataBlob * | pDstPixels, | ||
ImageDesc * | pDstImgDesc ) |
Loads an SGI image.
[in] | pSGIData | - SGI image data. |
[in] | DataSize | - Size of the data. |
[out] | pDstPixels | - Destination pixels data blob. The pixels are always tightly packed (for instance, components of a 3-channel image will be written as |r|g|b|r|g|b|r|g|b|... ). |
[out] | pDstImgDesc | - Image description. |
pDstPixels
is null, the function will only decode the image description and return true. auto Diligent::MakeCallback | ( | CallbackType && | Callback | ) |
Makes a callback wrapper for a function of type F(Args..., void*)
Example:
auto ModifyPipelineCI = MakeCallback([&](PipelineStateCreateInfo* pPipelineCI) { auto* pGraphicsPipelineCI = static_cast<GraphicsPipelineStateCreateInfo*>(pPipelineCI); pGraphicsPipelineCI->GraphicsPipeline.RTVFormats[0] = m_pSwapChain->GetDesc().ColorBufferFormat; pGraphicsPipelineCI->GraphicsPipeline.DSVFormat = m_pSwapChain->GetDesc().DepthBufferFormat; pGraphicsPipelineCI->GraphicsPipeline.NumRenderTargets = 1; }); LoadPipelineStateInfo PipelineLI{}; PipelineLI.Modify = ModifyPipelineCI; PipelineLI.pUserData = ModifyPipelineCI;
SHADER_SOURCE_LANGUAGE Diligent::ParseShaderSourceLanguageDefinition | ( | const std::string & | Source | ) |
Parses the shader source language definition comment and returns the result. If the comment is not present or can't be parsed, returns SHADER_SOURCE_LANGUAGE_DEFAULT.
std::vector< uint32_t > Diligent::PatchImageFormats | ( | const std::vector< uint32_t > & | SPIRV, |
const std::unordered_map< HashMapStringKey, TEXTURE_FORMAT > & | ImageFormats ) |
Patches image format declarations in the SPIRV code using the provided mapping.
[in] | SPIRV | - SPIRV code. |
[in] | ImageFormats | - Mapping from image format names to texture formats. |
Pins the worker thread to one of the allowed cores.
ThreadId | - The thread ID. |
AllowedCoresMask | - The bit mask of allowed cores. |
The function selects the core by looping through the bits in the AllowedCoresMask. For example, if cores 1, 3, 6 are allowed by the mask, the threads will be assigned to cores 1, 3, 6, 1, 3, 6, etc.
This function can be used as the OnThreadStarted callback in the ThreadPoolCreateInfo.
void Diligent::PremultiplyAlpha | ( | const PremultiplyAlphaAttribs & | Attribs | ) |
Premultiplies image components with alpha in place.
|
noexcept |
The function recursively finds all include files in the shader and calls the IncludeHandler function for all source files, including the original one. Includes are processed in a depth-first order such that original source file is processed last.
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.
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
[in] | T - Vertex component type. |
TCallback | - Type of the callback function. |
[in] | V0 | - First triangle vertex. |
[in] | V1 | - Second triangle vertex. |
[in] | V2 | - Third triangle vertex. |
[in] | Callback | - Callback function that will be called with the argument of type int2 for every sample covered. |
std::vector< Uint32 > Diligent::ResolveInputLayoutAutoOffsetsAndStrides | ( | LayoutElement * | pLayoutElements, |
Uint32 | NumElements ) |
Resolves LAYOUT_ELEMENT_AUTO_OFFSET and LAYOUT_ELEMENT_AUTO_STRIDE values in the input layout, and returns an array of buffer strides for each used input buffer slot.
float3 Diligent::ReverseExpToneMap | ( | const float3 & | Color, |
float | MiddleGray, | ||
float | AverageLogLum ) |
Computes approximate reverse tone mapping for the given tone-mapped color.
Color | - Tone-mapped color. |
MiddleGray | - Middle gray value used by the tone mapping operator. |
AverageLogLum | - Average log luminance of the original image. |
The function computes approximate reverse tone mapping assuming the exponential tone mapping operator. The value is not exact, but works well for practical purposes.
bool Diligent::SaveTextureAsDDS | ( | const char * | FilePath, |
const TextureDesc & | Desc, | ||
const TextureData & | TexData ) |
Writes texture data as DDS file.
[in] | FilePath | - DDS file path. |
[in] | Desc | - Texture description. |
[in] | TexData | - Texture subresource data. |
void Diligent::SetDebugMessageCallback | ( | DebugMessageCallbackType | DbgMessageCallback | ) |
Sets the debug message callback function.
void Diligent::SplitLongString | ( | IterType | Start, |
IterType | End, | ||
size_t | MaxChunkLen, | ||
size_t | NewLineSearchLen, | ||
HandlerType && | Handler ) |
Splits string [Start, End) into chunks of length no more than MaxChunkLen. For each chunk, searches back for the new line for no more than NewLineSearchLen symbols. For each chunk, calls the Handler.
void Diligent::SplitString | ( | IterType | Start, |
IterType | End, | ||
const char * | Delimiters, | ||
HandlerType && | Handler ) |
Splits string [Start, End) into chunks separated by Delimiters. Ignores all leading and trailing delimiters. For each chunk, calls the Handler.
std::vector< std::string > Diligent::SplitString | ( | IterType | Start, |
IterType | End, | ||
const char * | Delimiters = nullptr ) |
Splits string [Start, End) into chunks separated by Delimiters and returns them as vector of strings. Ignores all leading and trailing delimiters.
|
inline |
Converts RGBA color from gamma to linear color space.
RGBA | - Gamma color value in the range [0, 1] |
TEXTURE_FORMAT Diligent::SRGBFormatToUnorm | ( | TEXTURE_FORMAT | Fmt | ) |
Converts SRGB format to a corresponding UNORM format.
For example:
RGBA8_UNORM_SRGB -> RGBA8_UNORM
BC3_UNORM_SRGB -> BC3_UNORM
|
inline |
Converts RGB color from gamma to linear color space.
RGB | - Gamma color value in the range [0, 1] |
TEXTURE_FORMAT Diligent::TextureComponentAttribsToTextureFormat | ( | COMPONENT_TYPE | CompType, |
Uint32 | ComponentSize, | ||
Uint32 | NumComponents ) |
Returns texture format for the specified component type, size and number of components.
For example:
COMPONENT_TYPE_UNORM, 1, 4 -> TEX_FORMAT_RGBA8_UNORM
COMPONENT_TYPE_FLOAT, 4, 1 -> TEX_FORMAT_R32_FLOAT
If the format is not found, TEXTURE_FORMAT_UNKNOWN
is returned.
bool Diligent::TextureComponentMappingFromString | ( | const String & | MappingStr, |
TextureComponentMapping & | Mapping ) |
Converts texture component mapping string to the mapping.
For example:
"rgba" -> {R, G, B, A}
"rgb1" -> {R, G, B, 1}
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.
TCallback | - Type of the callback function. |
f2Start | - Line start point. |
f2End | - Line end point. |
i2GridSize | - Grid dimensions. |
Callback | - Callback function that will be called with the argument of type int2 for every cell visited. The function should return true to continue tracing and false to stop it. |
The algorithm clips the line against the grid boundaries [0 .. i2GridSize.x] x [0 .. i2GridSize.y]
When one of the end points falls exactly on a vertical cell boundary, cell to the right is enumerated. When one of the end points falls exactly on a horizontal cell boundary, cell above is enumerated.
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
TEXTURE_FORMAT Diligent::TypelessFormatToSRGB | ( | TEXTURE_FORMAT | Fmt | ) |
Converts typeless format to a corresponding SRGB format.
For example:
RGBA8_TYPELESS -> RGBA8_UNORM_SRGB
BC1_TYPELESS -> BC1_UNORM_SRGB
If the format is not typeless, or cannot be converted to SRGB, it is returned as is.
TEXTURE_FORMAT Diligent::TypelessFormatToUnorm | ( | TEXTURE_FORMAT | Fmt | ) |
Converts typeless format to a corresponding UNORM format.
For example:
RGBA8_TYPELESS -> RGBA8_UNORM
BC1_TYPELESS -> BC1_UNORM
If the format is not typeless, or cannot be converted to UNORM, it is returned as is.
TEXTURE_FORMAT Diligent::UnormFormatToSRGB | ( | TEXTURE_FORMAT | Fmt | ) |
Converts UNORM format to a corresponding SRGB format.
For example:
RGBA8_UNORM -> RGBA8_UNORM_SRGB
BC3_UNORM -> BC3_UNORM_SRGB
void Diligent::ValidatePipelineResourceCompatibility | ( | const PipelineResourceDesc & | ResDesc, |
SHADER_RESOURCE_TYPE | Type, | ||
PIPELINE_RESOURCE_FLAGS | ResourceFlags, | ||
Uint32 | ArraySize, | ||
const char * | ShaderName, | ||
const char * | SignatureName ) |
Validates that pipeline resource description 'ResDesc' is compatible with the actual resource attributes and throws an exception in case of an error.
void Diligent::ValidatePipelineResourceSignatureDesc | ( | const PipelineResourceSignatureDesc & | Desc, |
const IRenderDevice * | pDevice, | ||
RENDER_DEVICE_TYPE | DeviceType ) |
Validates pipeline resource signature description and throws an exception in case of an error.
COMPONENT_TYPE Diligent::ValueTypeToComponentType | ( | VALUE_TYPE | ValType, |
bool | IsNormalized, | ||
bool | IsSRGB ) |
Converts value type to component type.
For example:
VT_UINT8, true, false -> COMPONENT_TYPE_UNORM
VT_UINT8, false, false -> COMPONENT_TYPE_UINT
VT_UINT8, true, true -> COMPONENT_TYPE_UNORM_SRGB
bool Diligent::WriteDDSToStream | ( | IFileStream * | pFileStream, |
const TextureDesc & | Desc, | ||
const TextureData & | TexData ) |
Writes texture as DDS to a file stream.
[in] | pFileStream | - File stream. |
[in] | Desc | - Texture description. |
[in] | TexData | - Texture subresource data. |