Diligent Engine API Reference: Diligent Namespace Reference

Diligent Engine API Reference

Classes | Enumerations | Functions | Variables
Diligent Namespace Reference

Namespace for the OpenGL implementation of the graphics engine. More...

## Classes
class | BasicFileStream
| Basic file stream implementation. More...
struct | BlendStateDesc
| Blend state description. More...
struct | Box
| Box. More...
class | BufferBase
| Template class implementing base functionality for a buffer object. More...
class | BufferD3D11Impl
| Implementation of the Diligent::IBufferD3D11 interface. More...
class | BufferD3D12Impl
| Implementation of the Diligent::IBufferD3D12 interface. More...
struct | BufferData
| Describes the buffer initial data. More...
struct | BufferDesc
| Buffer description. More...
class | BufferGLImpl
| Implementation of the Diligent::IBufferGL interface. More...
class | BufferViewBase
| Template class implementing base functionality for a buffer view object. More...
class | BufferViewD3D11Impl
| Implementation of the Diligent::IBufferViewD3D11 interface. More...
class | BufferViewD3D12Impl
| Implementation of the Diligent::IBufferViewD3D12 interface. More...
struct | BufferViewDesc
| Buffer view description. More...
class | BufferViewGLImpl
| Implementation of the Diligent::IBufferViewGL interface. More...
class | CommandListBase
| Template class implementing base functionality for a command list object. More...
class | CommandListD3D11Impl
| Implementation of the Diligent::ICommandListD3D11 interface. More...
class | CommandListD3D12Impl
| Implementation of the Diligent::ICommandList interface. More...
class | CommandQueueD3D12Impl
| Implementation of the Diligent::ICommandQueueD3D12 interface. More...
struct | ComputePipelineDesc
| Compute pipeline state description. More...
class | D3D12ResourceBase
| Base implementation of a D3D12 resource. More...
class | DataBlobImpl
| Base interface for a file stream. More...
struct | DepthStencilClearValue
| Defines optimized depth-stencil clear value. More...
struct | DepthStencilStateDesc
| Depth stencil state description. More...
struct | DeviceCaps
| Device capabilities. More...
class | DeviceContextBase
| Base implementation of the device context. More...
class | DeviceContextD3D11Impl
| Implementation of the Diligent::IDeviceContextD3D11 interface. More...
class | DeviceContextD3D12Impl
| Implementation of the Diligent::IDeviceContext interface. More...
class | DeviceContextGLImpl
| Implementation of the Diligent::IDeviceContextGL interface. More...
struct | DeviceObjectAttribs
| Describes common device object attributes. More...
class | DeviceObjectBase
| Template class implementing base functionality for a device object. More...
struct | DispatchComputeAttribs
| Describes dispatch command arguments. More...
struct | DrawAttribs
| Defines the draw command attributes. More...
struct | DummyShaderVariable
| Implementation of a dummy shader variable that silently ignores all operations. More...
struct | EngineCreationAttribs
| Engine creation attibutes. More...
struct | EngineD3D11Attribs
| Attributes of the Direct3D11-based engine implementation. More...
struct | EngineD3D12Attribs
| Attributes specific to D3D12 engine. More...
class | FixedBlockMemoryAllocator
| Memory allocator that allocates memory in a fixed-size chunks. More...
struct | GraphicsPipelineDesc
| Graphics pipeline state description. More...
struct | HashMapStringKey
| This helper structure is intended to facilitate using strings as a hash table key. It provides constructors that can make a copy of the source string or just keep pointer to it, which enables searching in the hash using raw const Char* pointers. More...
class | HLSL2GLSLConverterObject
| Implementation of the Diligent::IHLSL2GLSLConverter interface. More...
class | IBuffer
| Buffer interface. More...
class | IBufferD3D11
| Interface to the buffer object implemented in D3D11. More...
class | IBufferD3D12
| Interface to the buffer object implemented in D3D12. More...
class | IBufferGL
| Interface to the buffer object implemented in OpenGL. More...
class | IBufferView
| Buffer view interface. More...
class | IBufferViewD3D11
| Interface to the buffer view object implemented in D3D11. More...
class | IBufferViewD3D12
| Interface to the buffer view object implemented in D3D12. More...
class | IBufferViewGL
| Interface to the buffer view object implemented in OpenGL. More...
class | ICommandList
| Command list interface. More...
class | ICommandQueueD3D12
| Command queue interface. More...
class | IDeviceContext
| Device context interface. More...
class | IDeviceContextD3D11
| Interface to the device context object implemented in D3D11. More...
class | IDeviceContextD3D12
| Interface to the device context object implemented in D3D12. More...
class | IDeviceContextGL
| Interface to the device context object implemented in OpenGL. More...
class | IDeviceObject
| Base interface for all objects created by the render device Diligent::IRenderDevice. More...
class | IHLSL2GLSLConverter
| Interface to the buffer object implemented in OpenGL. More...
struct | InputLayoutDesc
| Layout description. More...
class | IPipelineState
class | IPipelineStateD3D11
| Interface to the blend state object implemented in D3D11. More...
class | IPipelineStateD3D12
| Interface to the blend state object implemented in D3D12. More...
class | IPipelineStateGL
| Interface to the PipelineState object implemented in OpenGL. More...
class | IRenderDevice
| Render device interface. More...
class | IRenderDeviceD3D11
| Interface to the render device object implemented in D3D11. More...
class | IRenderDeviceD3D12
| Interface to the render device object implemented in D3D12. More...
class | IRenderDeviceGL
| Interface to the render device object implemented in OpenGL. More...
class | IRenderDeviceGLES
| Interface to the render device object implemented in OpenGLES. More...
class | IResourceMapping
| Resouce mapping. More...
class | ISampler
| Texture sampler interface. More...
class | ISamplerD3D11
| Interface to the sampler object implemented in D3D11. More...
class | ISamplerD3D12
| Interface to the sampler object implemented in D3D12. More...
class | ISamplerGL
| Interface to the sampler object object implemented in OpenGL. More...
class | IShader
| Shader interface. More...
class | IShaderD3D11
| Interface to the shader object implemented in D3D11. More...
class | IShaderD3D12
| Interface to the shader object implemented in D3D12. More...
class | IShaderGL
| Interface to the shader object implemented in OpenGL. More...
class | IShaderResourceBinding
| Shader resource binding interface. More...
class | IShaderResourceBindingD3D11
| Shader resource binding interface. More...
class | IShaderResourceBindingD3D12
| Shader resource binding interface. More...
class | IShaderResourceBindingGL
| Shader resource binding interface. More...
class | IShaderSourceInputStreamFactory
| Shader source stream factory interface. More...
class | IShaderVariable
| Shader resource variable. More...
class | ISwapChain
| Swap chain interface. More...
class | ISwapChainD3D11
| Interface to the swap chain object implemented in D3D11. More...
class | ISwapChainD3D12
| Interface to the swap chain object implemented in D3D12. More...
class | ISwapChainGL
| Interface to the swap chain object implemented in OpenGL. More...
class | ITexture
| Texture inteface. More...
class | ITextureD3D11
| Interface to the texture object implemented in D3D11. More...
class | ITextureD3D12
| Interface to the texture object implemented in D3D11. More...
class | ITextureGL
| Interface to the texture object implemented in OpenGL. More...
class | ITextureView
| Texture view interface. More...
class | ITextureViewD3D11
| Interface to the texture view object implemented in D3D11. More...
class | ITextureViewD3D12
| Interface to the texture view object implemented in D3D11. More...
class | ITextureViewGL
| Interface to the texture view object implemented in OpenGL. More...
struct | LayoutElement
| Description of a single element of the input layout. More...
class | MapHelper
| Facilitates resource mapping. More...
class | ObjectBase
| Template class implementing base functionality for an object. More...
struct | OptimizedClearValue
| Defines optimized clear value. More...
class | PipelineStateBase
| Template class implementing base functionality for a pipeline state object. More...
class | PipelineStateD3D11Impl
| Implementation of the Diligent::IPipelineStateD3D11 interface. More...
class | PipelineStateD3D12Impl
| Implementation of the Diligent::IRenderDeviceD3D12 interface. More...
struct | PipelineStateDesc
| Pipeline state description. More...
class | PipelineStateGLImpl
| Implementation of the Diligent::IPipelineStateGL interface. More...
struct | RasterizerStateDesc
| Rasterizer state description. More...
struct | Rect
| Describes the rectangle. More...
class | RefCntAutoPtr
| Template class that implements reference counting. More...
class | RefCntWeakPtr
| Implementation of weak pointers. More...
class | RefCountedObject
| Base class for all reference counting objects. More...
class | RenderDeviceBase
| Base implementation of a render device. More...
class | RenderDeviceD3D11Impl
| Implementation of the Diligent::IRenderDeviceD3D11 interface. More...
class | RenderDeviceD3D12Impl
| Implementation of the Diligent::IRenderDeviceD3D12 interface. More...
class | RenderDeviceGLImpl
| Implementation of the render device interface in OpenGL. More...
struct | RenderTargetBlendDesc
| Describes a blend state for a single render target. More...
struct | ResourceMappingDesc
| Resource mapping description. More...
struct | ResourceMappingEntry
| Describes the resourse mapping object entry. More...
class | ResourceMappingImpl
| Implementation of the resource mapping. More...
class | RootSignature
| Implementation of the Diligent::RootSignature class. More...
struct | SampleDesc
| Sample description. More...
class | SamplerBase
| Template class implementing base functionality for a sampler object. More...
struct | SamplerCaps
| Texture sampler capabilities. More...
class | SamplerD3D11Impl
| Implementation of the Diligent::ISamplerD3D11 interface. More...
class | SamplerD3D12Impl
| Implementation of the Diligent::ISamplerD3D12 interface. More...
struct | SamplerDesc
| Sampler description. More...
class | SamplerGLImpl
| Implementation of the Diligent::ISamplerGL interface. More...
class | ShaderBase
| Template class implementing base functionality for a shader object. More...
struct | ShaderCreationAttribs
| Shader creation attributes. More...
class | ShaderD3D11Impl
| Implementation of the Diligent::IShaderD3D11 interface. More...
class | ShaderD3D12Impl
| Implementation of the Diligent::IShaderD3D12 interface. More...
struct | ShaderDesc
| Shader description. More...
class | ShaderGLImpl
| Implementation of the Diligent::IShaderGL interface. More...
class | ShaderResourceBindingBase
| Template class implementing base functionality for a shader resource binding. More...
class | ShaderResourceBindingD3D11Impl
| Implementation of the Diligent::IShaderResourceBindingD3D11 interface. More...
class | ShaderResourceBindingD3D12Impl
| Implementation of the Diligent::IShaderResourceBindingD3D12 interface. More...
class | ShaderResourceBindingGLImpl
| Implementation of the Diligent::IShaderResourceBindingGL interface. More...
class | ShaderResourceCacheD3D11
| The class implements a cache that holds resources bound to a specific shader stage. More...
class | ShaderResourceLayoutD3D11
| Diligent::ShaderResourceLayoutD3D11 class http://diligentgraphics.com/diligent-engine/architecture/d3d11/shader-resource-layout/. More...
class | ShaderResourceLayoutD3D12
| Diligent::ShaderResourceLayoutD3D12 class. More...
class | ShaderResourcesD3D11
| Diligent::ShaderResources class. More...
class | ShaderResourcesD3D12
| Diligent::ShaderResources class. More...
struct | ShaderVariableBase
| Base implementation of a shader variable. More...
struct | ShaderVariableDesc
| Describes shader variable. More...
class | StateObjectsRegistry
| Template class implementing state object registry. More...
struct | StaticSamplerDesc
| Static sampler description. More...
struct | StencilOpDesc
| Describes stencil operations that are performed based on the results of depth test. More...
class | StringDataBlobImpl
| Base interface for a file stream. More...
class | SwapChainBase
| Base implementation of the swap chain. More...
class | SwapChainD3D11Impl
| Implementation of the Diligent::ISwapChainD3D11 interface. More...
class | SwapChainD3D12Impl
| Implementation of the Diligent::ISwapChainD3D12 interface. More...
struct | SwapChainDesc
| Swap chain description. More...
class | SwapChainGLImpl
| Implementation of the Diligent::ISwapChainGL interface. More...
class | Texture1D_D3D11
| Implementation of a 1D texture. More...
class | Texture2D_D3D11
| Implementation of a 2D texture. More...
class | Texture3D_D3D11
| Implementation of a 3D texture. More...
class | TextureBase
| Base implementation of the ITexture interface. More...
class | TextureBaseD3D11
| Base implementation of the Diligent::ITextureD3D11 interface. More...
class | TextureBaseGL
| Base implementation of the Diligent::ITextureGL interface. More...
struct | TextureCaps
| Texture capabilities. More...
class | TextureD3D12Impl
| Base implementation of the Diligent::ITextureD3D12 interface. 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. These attributes are intrinsic to the texture format itself and do not depend on the format support. More...
struct | TextureFormatInfo
| Basic texture format description. More...
struct | TextureFormatInfoExt
| Extended texture format description. More...
struct | TextureSubResData
| Describes data for one subresource. More...
class | TextureViewBase
| Template class implementing base functionality for a texture view interface. More...
class | TextureViewD3D11Impl
| Implementation of the Diligent::ITextureViewD3D11 interface. More...
class | TextureViewD3D12Impl
| Implementation of the Diligent::ITextureViewD3D12 interface. More...
struct | TextureViewDesc
| Texture view description. More...
class | TextureViewGLImpl
| Implementation of the Diligent::ITextureViewGL interface. More...
struct | VertexStreamInfo
| Describes input vertex stream. More...
struct | Viewport
| Describes the viewport. More...

## Enumerations
enum | EngineD3D11DebugFlags : Uint32 { EngineD3D11DebugFlags::VerifyCommittedShaderResources = 0x01, EngineD3D11DebugFlags::VerifyCommittedResourceRelevance = 0x02 }
| Debug flags that can be specified when creating Direct3D11-based engine implementation. More...
enum | BLEND_FACTOR : Int8 { BLEND_FACTOR_UNDEFINED = 0, BLEND_FACTOR_ZERO, BLEND_FACTOR_ONE, BLEND_FACTOR_SRC_COLOR, BLEND_FACTOR_INV_SRC_COLOR, BLEND_FACTOR_SRC_ALPHA, BLEND_FACTOR_INV_SRC_ALPHA, BLEND_FACTOR_DEST_ALPHA, BLEND_FACTOR_INV_DEST_ALPHA, BLEND_FACTOR_DEST_COLOR, BLEND_FACTOR_INV_DEST_COLOR, BLEND_FACTOR_SRC_ALPHA_SAT, BLEND_FACTOR_BLEND_FACTOR, BLEND_FACTOR_INV_BLEND_FACTOR, BLEND_FACTOR_SRC1_COLOR, BLEND_FACTOR_INV_SRC1_COLOR, BLEND_FACTOR_SRC1_ALPHA, BLEND_FACTOR_INV_SRC1_ALPHA, BLEND_FACTOR_NUM_FACTORS }
| Blend factors. More...
enum | BLEND_OPERATION : Int8 { BLEND_OPERATION_UNDEFINED = 0, BLEND_OPERATION_ADD, BLEND_OPERATION_SUBTRACT, BLEND_OPERATION_REV_SUBTRACT, BLEND_OPERATION_MIN, BLEND_OPERATION_MAX, BLEND_OPERATION_NUM_OPERATIONS }
| Blending operation. More...
enum | COLOR_MASK : Int32 { COLOR_MASK_RED = 1, COLOR_MASK_GREEN = 2, COLOR_MASK_BLUE = 4, COLOR_MASK_ALPHA = 8, COLOR_MASK_ALL = ( ( ( COLOR_MASK_RED | COLOR_MASK_GREEN ) | COLOR_MASK_BLUE ) | COLOR_MASK_ALPHA ) }
| Color component write flags. More...
enum | LOGIC_OPERATION : Int8 { LOGIC_OP_CLEAR = 0, LOGIC_OP_SET, LOGIC_OP_COPY, LOGIC_OP_COPY_INVERTED, LOGIC_OP_NOOP, LOGIC_OP_INVERT, LOGIC_OP_AND, LOGIC_OP_NAND, LOGIC_OP_OR, LOGIC_OP_NOR, LOGIC_OP_XOR, LOGIC_OP_EQUIV, LOGIC_OP_AND_REVERSE, LOGIC_OP_AND_INVERTED, LOGIC_OP_OR_REVERSE, LOGIC_OP_OR_INVERTED, LOGIC_OP_NUM_OPERATIONS }
| Logic operation. More...
enum | BUFFER_MODE : Int32 { BUFFER_MODE_UNDEFINED = 0, BUFFER_MODE_FORMATTED, BUFFER_MODE_STRUCTURED, BUFFER_MODE_NUM_MODES }
| Describes the buffer access mode. More...
enum | STENCIL_OP : Int32 { STENCIL_OP_UNDEFINED = 0, STENCIL_OP_KEEP = 1, STENCIL_OP_ZERO = 2, STENCIL_OP_REPLACE = 3, STENCIL_OP_INCR_SAT = 4, STENCIL_OP_DECR_SAT = 5, STENCIL_OP_INVERT = 6, STENCIL_OP_INCR_WRAP = 7, STENCIL_OP_DECR_WRAP = 8, STENCIL_OP_NUM_OPS }
| Stencil operation. More...
enum | DeviceType : Int32 { DeviceType::Undefined = 0, DeviceType::D3D11, DeviceType::D3D12, DeviceType::OpenGL, DeviceType::OpenGLES }
| Device type. More...
enum | PRIMITIVE_TOPOLOGY : Int32 { PRIMITIVE_TOPOLOGY_UNDEFINED = 0, PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, PRIMITIVE_TOPOLOGY_POINT_LIST, PRIMITIVE_TOPOLOGY_LINE_LIST, PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST, PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES }
| Input primitive topology. More...
enum | CLEAR_DEPTH_STENCIL_FLAGS : Int32 { CLEAR_DEPTH_FLAG = 0x01, CLEAR_STENCIL_FLAG = 0x02 }
| Defines which parts of the depth-stencil buffer to clear. More...
enum | SET_VERTEX_BUFFERS_FLAGS : Int32 { SET_VERTEX_BUFFERS_FLAG_RESET = 0x01 }
| Defines allowed flags for IDeviceContext::SetVertexBuffers() function. More...
enum | COMMIT_SHADER_RESOURCES_FLAG { COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES = 0x01 }
| Defines allowed flags for IDeviceContext::CommitShaderResources() function. More...
enum | VALUE_TYPE : Int32 { VT_UNDEFINED = 0, VT_INT8, VT_INT16, VT_INT32, VT_UINT8, VT_UINT16, VT_UINT32, VT_FLOAT16, VT_FLOAT32, VT_NUM_TYPES }
| Value type. More...
enum | BIND_FLAGS : Int32 { BIND_NONE = 0x0L, BIND_VERTEX_BUFFER = 0x1L, BIND_INDEX_BUFFER = 0x2L, BIND_UNIFORM_BUFFER = 0x4L, BIND_SHADER_RESOURCE = 0x8L, BIND_STREAM_OUTPUT = 0x10L, BIND_RENDER_TARGET = 0x20L, BIND_DEPTH_STENCIL = 0x40L, BIND_UNORDERED_ACCESS = 0x80L, BIND_INDIRECT_DRAW_ARGS = 0x100L }
| Resource binding flags. More...
enum | USAGE : Int32 { USAGE_STATIC = 0, USAGE_DEFAULT, USAGE_DYNAMIC, USAGE_CPU_ACCESSIBLE }
| Resource usage. More...
enum | CPU_ACCESS_FLAG : Int32 { CPU_ACCESS_READ = 0x01, CPU_ACCESS_WRITE = 0x02 }
| Allowed CPU access mode flags when mapping a resource. More...
enum | MAP_TYPE : Int32 { MAP_READ = 0x01, MAP_WRITE = 0x02, MAP_READ_WRITE = 0x03 }
| Resource mapping type. More...
enum | MAP_FLAGS : Int32 { MAP_FLAG_DO_NOT_WAIT = 0x001, MAP_FLAG_DISCARD = 0x002, MAP_FLAG_DO_NOT_SYNCHRONIZE = 0x004 }
| Special map flags. More...
enum | RESOURCE_DIMENSION : Int32 { RESOURCE_DIM_UNDEFINED = 0, RESOURCE_DIM_BUFFER, RESOURCE_DIM_TEX_1D, RESOURCE_DIM_TEX_1D_ARRAY, RESOURCE_DIM_TEX_2D, RESOURCE_DIM_TEX_2D_ARRAY, RESOURCE_DIM_TEX_3D, RESOURCE_DIM_TEX_CUBE, RESOURCE_DIM_TEX_CUBE_ARRAY, RESOURCE_DIM_NUM_DIMENSIONS }
| Describes resource dimension. More...
enum | TEXTURE_VIEW_TYPE : Int32 { TEXTURE_VIEW_UNDEFINED = 0, TEXTURE_VIEW_SHADER_RESOURCE, TEXTURE_VIEW_RENDER_TARGET, TEXTURE_VIEW_DEPTH_STENCIL, TEXTURE_VIEW_UNORDERED_ACCESS, TEXTURE_VIEW_NUM_VIEWS }
| Texture view type. More...
enum | BUFFER_VIEW_TYPE : Int32 { BUFFER_VIEW_UNDEFINED = 0, BUFFER_VIEW_SHADER_RESOURCE, BUFFER_VIEW_UNORDERED_ACCESS, BUFFER_VIEW_NUM_VIEWS }
| Buffer view type. More...
enum | TEXTURE_FORMAT : Int32 { TEX_FORMAT_UNKNOWN = 0, TEX_FORMAT_RGBA32_TYPELESS, TEX_FORMAT_RGBA32_FLOAT, TEX_FORMAT_RGBA32_UINT, TEX_FORMAT_RGBA32_SINT, TEX_FORMAT_RGB32_TYPELESS, TEX_FORMAT_RGB32_FLOAT, TEX_FORMAT_RGB32_UINT, TEX_FORMAT_RGB32_SINT, TEX_FORMAT_RGBA16_TYPELESS, TEX_FORMAT_RGBA16_FLOAT, TEX_FORMAT_RGBA16_UNORM, TEX_FORMAT_RGBA16_UINT, TEX_FORMAT_RGBA16_SNORM, TEX_FORMAT_RGBA16_SINT, TEX_FORMAT_RG32_TYPELESS, TEX_FORMAT_RG32_FLOAT, TEX_FORMAT_RG32_UINT, TEX_FORMAT_RG32_SINT, TEX_FORMAT_R32G8X24_TYPELESS, TEX_FORMAT_D32_FLOAT_S8X24_UINT, TEX_FORMAT_R32_FLOAT_X8X24_TYPELESS, TEX_FORMAT_X32_TYPELESS_G8X24_UINT, TEX_FORMAT_RGB10A2_TYPELESS, TEX_FORMAT_RGB10A2_UNORM, TEX_FORMAT_RGB10A2_UINT, TEX_FORMAT_R11G11B10_FLOAT, TEX_FORMAT_RGBA8_TYPELESS, TEX_FORMAT_RGBA8_UNORM, TEX_FORMAT_RGBA8_UNORM_SRGB, TEX_FORMAT_RGBA8_UINT, TEX_FORMAT_RGBA8_SNORM, TEX_FORMAT_RGBA8_SINT, TEX_FORMAT_RG16_TYPELESS, TEX_FORMAT_RG16_FLOAT, TEX_FORMAT_RG16_UNORM, TEX_FORMAT_RG16_UINT, TEX_FORMAT_RG16_SNORM, TEX_FORMAT_RG16_SINT, TEX_FORMAT_R32_TYPELESS, TEX_FORMAT_D32_FLOAT, TEX_FORMAT_R32_FLOAT, TEX_FORMAT_R32_UINT, TEX_FORMAT_R32_SINT, TEX_FORMAT_R24G8_TYPELESS, TEX_FORMAT_D24_UNORM_S8_UINT, TEX_FORMAT_R24_UNORM_X8_TYPELESS, TEX_FORMAT_X24_TYPELESS_G8_UINT, TEX_FORMAT_RG8_TYPELESS, TEX_FORMAT_RG8_UNORM, TEX_FORMAT_RG8_UINT, TEX_FORMAT_RG8_SNORM, TEX_FORMAT_RG8_SINT, TEX_FORMAT_R16_TYPELESS, TEX_FORMAT_R16_FLOAT, TEX_FORMAT_D16_UNORM, TEX_FORMAT_R16_UNORM, TEX_FORMAT_R16_UINT, TEX_FORMAT_R16_SNORM, TEX_FORMAT_R16_SINT, TEX_FORMAT_R8_TYPELESS, TEX_FORMAT_R8_UNORM, TEX_FORMAT_R8_UINT, TEX_FORMAT_R8_SNORM, TEX_FORMAT_R8_SINT, TEX_FORMAT_A8_UNORM, TEX_FORMAT_R1_UNORM, TEX_FORMAT_RGB9E5_SHAREDEXP, TEX_FORMAT_RG8_B8G8_UNORM, TEX_FORMAT_G8R8_G8B8_UNORM, TEX_FORMAT_BC1_TYPELESS, TEX_FORMAT_BC1_UNORM, TEX_FORMAT_BC1_UNORM_SRGB, TEX_FORMAT_BC2_TYPELESS, TEX_FORMAT_BC2_UNORM, TEX_FORMAT_BC2_UNORM_SRGB, TEX_FORMAT_BC3_TYPELESS, TEX_FORMAT_BC3_UNORM, TEX_FORMAT_BC3_UNORM_SRGB, TEX_FORMAT_BC4_TYPELESS, TEX_FORMAT_BC4_UNORM, TEX_FORMAT_BC4_SNORM, TEX_FORMAT_BC5_TYPELESS, TEX_FORMAT_BC5_UNORM, TEX_FORMAT_BC5_SNORM, TEX_FORMAT_B5G6R5_UNORM, TEX_FORMAT_B5G5R5A1_UNORM, TEX_FORMAT_BGRA8_UNORM, TEX_FORMAT_BGRX8_UNORM, TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM, TEX_FORMAT_BGRA8_TYPELESS, TEX_FORMAT_BGRA8_UNORM_SRGB, TEX_FORMAT_BGRX8_TYPELESS, TEX_FORMAT_BGRX8_UNORM_SRGB, TEX_FORMAT_BC6H_TYPELESS, TEX_FORMAT_BC6H_UF16, TEX_FORMAT_BC6H_SF16, TEX_FORMAT_BC7_TYPELESS, TEX_FORMAT_BC7_UNORM, TEX_FORMAT_BC7_UNORM_SRGB, TEX_FORMAT_NUM_FORMATS }
| Texture formats. More...
enum | FILTER_TYPE : Int32 { FILTER_TYPE_UNKNOWN = 0, FILTER_TYPE_POINT, FILTER_TYPE_LINEAR, FILTER_TYPE_ANISOTROPIC, FILTER_TYPE_COMPARISON_POINT, FILTER_TYPE_COMPARISON_LINEAR, FILTER_TYPE_COMPARISON_ANISOTROPIC, FILTER_TYPE_MINIMUM_POINT, FILTER_TYPE_MINIMUM_LINEAR, FILTER_TYPE_MINIMUM_ANISOTROPIC, FILTER_TYPE_MAXIMUM_POINT, FILTER_TYPE_MAXIMUM_LINEAR, FILTER_TYPE_MAXIMUM_ANISOTROPIC, FILTER_TYPE_NUM_FILTERS }
| Filter type. More...
enum | TEXTURE_ADDRESS_MODE : Int32 { TEXTURE_ADDRESS_UNKNOWN = 0, TEXTURE_ADDRESS_WRAP = 1, TEXTURE_ADDRESS_MIRROR = 2, TEXTURE_ADDRESS_CLAMP = 3, TEXTURE_ADDRESS_BORDER = 4, TEXTURE_ADDRESS_MIRROR_ONCE = 5, TEXTURE_ADDRESS_NUM_MODES }
| Texture address mode. More...
enum | COMPARISON_FUNCTION : Int32 { COMPARISON_FUNC_UNKNOWN = 0, COMPARISON_FUNC_NEVER, COMPARISON_FUNC_LESS, COMPARISON_FUNC_EQUAL, COMPARISON_FUNC_LESS_EQUAL, COMPARISON_FUNC_GREATER, COMPARISON_FUNC_NOT_EQUAL, COMPARISON_FUNC_GREATER_EQUAL, COMPARISON_FUNC_ALWAYS, COMPARISON_FUNC_NUM_FUNCTIONS }
| Comparison function. More...
enum | MISC_TEXTURE_FLAG { MISC_TEXTURE_FLAG_GENERATE_MIPS = 0x01 }
| Miscellaneous texture flags. More...
enum | COMPONENT_TYPE : Int32 { COMPONENT_TYPE_UNDEFINED, COMPONENT_TYPE_FLOAT, COMPONENT_TYPE_SNORM, COMPONENT_TYPE_UNORM, COMPONENT_TYPE_UNORM_SRGB, COMPONENT_TYPE_SINT, COMPONENT_TYPE_UINT, COMPONENT_TYPE_DEPTH, COMPONENT_TYPE_DEPTH_STENCIL, COMPONENT_TYPE_COMPOUND, COMPONENT_TYPE_COMPRESSED }
| Describes texture format component type. More...
enum | PRIMITIVE_TOPOLOGY_TYPE : Int32 { PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, PRIMITIVE_TOPOLOGY_TYPE_POINT, PRIMITIVE_TOPOLOGY_TYPE_LINE, PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE, PRIMITIVE_TOPOLOGY_TYPE_PATCH, PRIMITIVE_TOPOLOGY_TYPE_NUM_TYPES }
| Primitive topology type. More...
enum | FILL_MODE : Int32 { FILL_MODE_UNDEFINED = 0, FILL_MODE_WIREFRAME, FILL_MODE_SOLID, FILL_MODE_NUM_MODES }
| Fill mode. More...
enum | CULL_MODE : Int32 { CULL_MODE_UNDEFINED = 0, CULL_MODE_NONE, CULL_MODE_FRONT, CULL_MODE_BACK, CULL_MODE_NUM_MODES }
| Cull mode. More...
enum | SHADER_TYPE : Int32 { SHADER_TYPE_UNKNOWN = 0x000, SHADER_TYPE_VERTEX = 0x001, SHADER_TYPE_PIXEL = 0x002, SHADER_TYPE_GEOMETRY = 0x004, SHADER_TYPE_HULL = 0x008, SHADER_TYPE_DOMAIN = 0x010, SHADER_TYPE_COMPUTE = 0x020 }
| Describes the shader type. More...
enum | SHADER_SOURCE_LANGUAGE : Int32 { SHADER_SOURCE_LANGUAGE_DEFAULT = 0, SHADER_SOURCE_LANGUAGE_HLSL, SHADER_SOURCE_LANGUAGE_GLSL }
| Describes shader source code language. More...
enum | BIND_SHADER_RESOURCES_FLAGS : Int32 { BIND_SHADER_RESOURCES_RESET_BINDINGS = 0x01, BIND_SHADER_RESOURCES_UPDATE_UNRESOLVED = 0x02, BIND_SHADER_RESOURCES_ALL_RESOLVED = 0x04 }
| Describes flags that can be supplied to IShader::BindResources() and IDeviceContext::BindShaderResources(). More...
enum | SHADER_VARIABLE_TYPE : Int32 { SHADER_VARIABLE_TYPE_STATIC = 0, SHADER_VARIABLE_TYPE_MUTABLE, SHADER_VARIABLE_TYPE_DYNAMIC, SHADER_VARIABLE_TYPE_NUM_TYPES }
| Describes shader variable type that is used by ShaderVariableDesc. More...
enum | UAV_ACCESS_FLAG : Int32 { UAV_ACCESS_UNSPECIFIED = 0x00, UAV_ACCESS_FLAG_READ = 0x01, UAV_ACCESS_FLAG_WRITE = 0x02, UAV_ACCESS_FLAG_READ_WRITE = UAV_ACCESS_FLAG_READ | UAV_ACCESS_FLAG_WRITE }
| Describes allowed unordered access view mode. More...

## Functions
void | LoadGraphicsEngineD3D11 (GetEngineFactoryD3D11Type &GetFactoryFunc)
| Loads Direct3D11-based engine implementation and exports factory functions. More...
void | LoadGraphicsEngineOpenGL (GetEngineFactoryOpenGLType &GetFactoryFunc)
| Loads OpenGL-based engine implementation and exports factory functions. More...
IMemoryAllocator & | GetRawAllocator ()
| Returns raw memory allocator.
void | LoadGraphicsEngineD3D12 (GetEngineFactoryD3D12Type &GetFactoryFunc)
| Loads Direct3D12-based engine implementation and exports factory functions. More...
void | SetRawAllocator (IMemoryAllocator *pRawAllocator)
| Sets raw memory allocator. This function must be called before any memory allocation/deallocation function is called.

## Variables
static constexpr Uint32 | MaxBufferSlots = 32
| Maximum number of input buffer slots. D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT == 32.
static constexpr Uint32 | MaxRenderTargets = 8
| Maximum number of simultaneous render targets.

## Detailed Description

Namespace for the OpenGL implementation of the graphics engine.

Graphics engine namespace.

Namespace for the Direct3D11 implementation of the graphics engine.

## Enumeration Type Documentation

## ◆ BIND_FLAGS

enum Diligent::BIND_FLAGS : Int32

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

- BufferDesc to describe bind flags for a buffer
- TextureDesc to describe bind flags for a texture

Enumerator
BIND_NONE | Undefined binding.
BIND_VERTEX_BUFFER | A buffer can be bound as a vertex buffer.
BIND_INDEX_BUFFER | A buffer can be bound as an index buffer.
BIND_UNIFORM_BUFFER | A buffer can be bound as a uniform buffer. Warning This flag may not be combined with any other bind flag
BIND_SHADER_RESOURCE | A buffer or a texture can be bound as a shader resource. Warning This flag cannot be used with MAP_WRITE_NO_OVERWRITE flag
BIND_STREAM_OUTPUT | A buffer can be bound as a target for stream output stage.
BIND_RENDER_TARGET | A texture can be bound as a render target.
BIND_DEPTH_STENCIL | A texture can be bound as a depth-stencil target.
BIND_UNORDERED_ACCESS | A buffer or a texture can be bound as an unordered access view.
BIND_INDIRECT_DRAW_ARGS | A buffer can be bound as the source buffer for indirect draw commands.

## ◆ BIND_SHADER_RESOURCES_FLAGS

enum Diligent::BIND_SHADER_RESOURCES_FLAGS : Int32

Describes flags that can be supplied to IShader::BindResources() and IDeviceContext::BindShaderResources().

Enumerator
BIND_SHADER_RESOURCES_RESET_BINDINGS | Reset all bindings. If this flag is specified, all existing bindings will be broken. By default all existing bindings are preserved.
BIND_SHADER_RESOURCES_UPDATE_UNRESOLVED | If this flag is specified, only unresolved bindings will be updated. All resolved bindings will keep their original values. If this flag is not specified, every shader variable will be updated if the mapping contains corresponding resource.
BIND_SHADER_RESOURCES_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 error will be displayed.

## ◆ BLEND_FACTOR

enum Diligent::BLEND_FACTOR : Int8

Blend factors.

This enumeration defines blend factors for alpha-blending. It generatlly 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.

See also
  D3D11_BLEND on MSDN, D3D12_BLEND on MSDN, glBlendFuncSeparate on OpenGL.org

Enumerator
BLEND_FACTOR_UNDEFINED | Undefined blend factor.
BLEND_FACTOR_ZERO | The blend factor is zero. Direct3D counterpart: D3D11_BLEND_ZERO/D3D12_BLEND_ZERO. OpenGL counterpart: GL_ZERO.
BLEND_FACTOR_ONE | The blend factor is one. Direct3D counterpart: D3D11_BLEND_ONE/D3D12_BLEND_ONE. OpenGL counterpart: GL_ONE.
BLEND_FACTOR_SRC_COLOR | The blend factor is RGB data from a pixel shader. Direct3D counterpart: D3D11_BLEND_SRC_COLOR/D3D12_BLEND_SRC_COLOR. OpenGL counterpart: GL_SRC_COLOR.
BLEND_FACTOR_INV_SRC_COLOR | The blend factor is 1-RGB, where RGB is the data from a pixel shader. Direct3D counterpart: D3D11_BLEND_INV_SRC_COLOR/D3D12_BLEND_INV_SRC_COLOR. OpenGL counterpart: GL_ONE_MINUS_SRC_COLOR.
BLEND_FACTOR_SRC_ALPHA | The blend factor is alpha (A) data from a pixel shader. Direct3D counterpart: D3D11_BLEND_SRC_ALPHA/D3D12_BLEND_SRC_ALPHA. OpenGL counterpart: GL_SRC_ALPHA.
BLEND_FACTOR_INV_SRC_ALPHA | The blend factor is 1-A, where A is alpha data from a pixel shader. Direct3D counterpart: D3D11_BLEND_INV_SRC_ALPHA/D3D12_BLEND_INV_SRC_ALPHA. OpenGL counterpart: GL_ONE_MINUS_SRC_ALPHA.
BLEND_FACTOR_DEST_ALPHA | The blend factor is alpha (A) data from a render target. Direct3D counterpart: D3D11_BLEND_DEST_ALPHA/D3D12_BLEND_DEST_ALPHA. OpenGL counterpart: GL_DST_ALPHA.
BLEND_FACTOR_INV_DEST_ALPHA | The blend factor is 1-A, where A is alpha data from a render target. Direct3D counterpart: D3D11_BLEND_INV_DEST_ALPHA/D3D12_BLEND_INV_DEST_ALPHA. OpenGL counterpart: GL_ONE_MINUS_DST_ALPHA.
BLEND_FACTOR_DEST_COLOR | The blend factor is RGB data from a render target. Direct3D counterpart: D3D11_BLEND_DEST_COLOR/D3D12_BLEND_DEST_COLOR. OpenGL counterpart: GL_DST_COLOR.
BLEND_FACTOR_INV_DEST_COLOR | The blend factor is 1-RGB, where RGB is the data from a render target. Direct3D counterpart: D3D11_BLEND_INV_DEST_COLOR/D3D12_BLEND_INV_DEST_COLOR. OpenGL counterpart: GL_ONE_MINUS_DST_COLOR.
BLEND_FACTOR_SRC_ALPHA_SAT | The blend factor is (f,f,f,1), where f = min(As, 1-Ad), As is alpha data from a pixel shader, and Ad is alpha data from a render target. Direct3D counterpart: D3D11_BLEND_SRC_ALPHA_SAT/D3D12_BLEND_SRC_ALPHA_SAT. OpenGL counterpart: GL_SRC_ALPHA_SATURATE.
BLEND_FACTOR_BLEND_FACTOR | The blend factor is the constant blend factor set with IDeviceContext::SetBlendFactors(). Direct3D counterpart: D3D11_BLEND_BLEND_FACTOR/D3D12_BLEND_BLEND_FACTOR. OpenGL counterpart: GL_CONSTANT_COLOR.
BLEND_FACTOR_INV_BLEND_FACTOR | The blend factor is one minus constant blend factor set with IDeviceContext::SetBlendFactors(). Direct3D counterpart: D3D11_BLEND_INV_BLEND_FACTOR/D3D12_BLEND_INV_BLEND_FACTOR. OpenGL counterpart: GL_ONE_MINUS_CONSTANT_COLOR.
BLEND_FACTOR_SRC1_COLOR | The blend factor is the second RGB data output from a pixel shader. Direct3D counterpart: D3D11_BLEND_SRC1_COLOR/D3D12_BLEND_SRC1_COLOR. OpenGL counterpart: GL_SRC1_COLOR.
BLEND_FACTOR_INV_SRC1_COLOR | The blend factor is 1-RGB, where RGB is the second RGB data output from a pixel shader. Direct3D counterpart: D3D11_BLEND_INV_SRC1_COLOR/D3D12_BLEND_INV_SRC1_COLOR. OpenGL counterpart: GL_ONE_MINUS_SRC1_COLOR.
BLEND_FACTOR_SRC1_ALPHA | The blend factor is the second alpha (A) data output from a pixel shader. Direct3D counterpart: D3D11_BLEND_SRC1_ALPHA/D3D12_BLEND_SRC1_ALPHA. OpenGL counterpart: GL_SRC1_ALPHA.
BLEND_FACTOR_INV_SRC1_ALPHA | The blend factor is 1-A, where A is the second alpha data output from a pixel shader. Direct3D counterpart: D3D11_BLEND_INV_SRC1_ALPHA/D3D12_BLEND_INV_SRC1_ALPHA. OpenGL counterpart: GL_ONE_MINUS_SRC1_ALPHA.
BLEND_FACTOR_NUM_FACTORS | Helper value that stores the total number of blend factors in the enumeration.

## ◆ BLEND_OPERATION

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

See also
  D3D11_BLEND_OP on MSDN, D3D12_BLEND_OP on MSDN, glBlendEquationSeparate on OpenGL.org

Enumerator
BLEND_OPERATION_UNDEFINED | Undefined blend operation.
BLEND_OPERATION_ADD | Add source and destination color components. Direct3D counterpart: D3D11_BLEND_OP_ADD/D3D12_BLEND_OP_ADD. OpenGL counterpart: GL_FUNC_ADD.
BLEND_OPERATION_SUBTRACT | Subtract destination color components from source color components. Direct3D counterpart: D3D11_BLEND_OP_SUBTRACT/D3D12_BLEND_OP_SUBTRACT. OpenGL counterpart: GL_FUNC_SUBTRACT.
BLEND_OPERATION_REV_SUBTRACT | Subtract source color components from destination color components. Direct3D counterpart: D3D11_BLEND_OP_REV_SUBTRACT/D3D12_BLEND_OP_REV_SUBTRACT. OpenGL counterpart: GL_FUNC_REVERSE_SUBTRACT.
BLEND_OPERATION_MIN | Compute the minimum of source and destination color components. Direct3D counterpart: D3D11_BLEND_OP_MIN/D3D12_BLEND_OP_MIN. OpenGL counterpart: GL_MIN.
BLEND_OPERATION_MAX | Compute the maximum of source and destination color components. Direct3D counterpart: D3D11_BLEND_OP_MAX/D3D12_BLEND_OP_MAX. OpenGL counterpart: GL_MAX.
BLEND_OPERATION_NUM_OPERATIONS | Helper value that stores the total number of blend operations in the enumeration.

## ◆ BUFFER_MODE

enum Diligent::BUFFER_MODE : Int32

Describes the buffer access mode.

This enumeration is used by BufferDesc structure.

Enumerator
BUFFER_MODE_UNDEFINED | Undefined mode.
BUFFER_MODE_FORMATTED | Formated buffer.
BUFFER_MODE_STRUCTURED | Structured buffer.
BUFFER_MODE_NUM_MODES | Helper value storing the total number of modes in the enumeration.

## ◆ BUFFER_VIEW_TYPE

enum Diligent::BUFFER_VIEW_TYPE : Int32

Buffer view type.

This enumeration describes allowed view types for a buffer view. It is used by BufferViewDesc structure.

Enumerator
BUFFER_VIEW_UNDEFINED | Undefined view type.
BUFFER_VIEW_SHADER_RESOURCE | A buffer view will define a shader resource view that will be used as the source for the shader read operations.
BUFFER_VIEW_UNORDERED_ACCESS | A buffer view will define an unordered access view that will be used for unordered read/write operations from the shaders.
BUFFER_VIEW_NUM_VIEWS | Helper value that stores that total number of buffer views.

## ◆ CLEAR_DEPTH_STENCIL_FLAGS

enum Diligent::CLEAR_DEPTH_STENCIL_FLAGS : Int32

Defines which parts of the depth-stencil buffer to clear.

These flags are used by IDeviceContext::ClearDepthStencil().

Enumerator
CLEAR_DEPTH_FLAG | Clear depth part of the buffer.
CLEAR_STENCIL_FLAG | Clear stencil part of the buffer.

## ◆ COLOR_MASK

enum Diligent::COLOR_MASK : Int32

Color component write flags.

These flags are used by RenderTargetBlendDesc structure to define writable components of the render target

Enumerator
COLOR_MASK_RED | Allow data to be stored in the red component.
COLOR_MASK_GREEN | Allow data to be stored in the green component.
COLOR_MASK_BLUE | Allow data to be stored in the blue component.
COLOR_MASK_ALPHA | Allow data to be stored in the alpha component.
COLOR_MASK_ALL | Allow data to be stored in all components.

## ◆ COMMIT_SHADER_RESOURCES_FLAG

enum Diligent::COMMIT_SHADER_RESOURCES_FLAG

Defines allowed flags for IDeviceContext::CommitShaderResources() function.

Enumerator
COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES | Transition resources being committed. If this flag is specified when IDeviceContext::CommitShaderResources() is called, the engine will transition all shader resources to the correct state.

## ◆ COMPARISON_FUNCTION

enum Diligent::COMPARISON_FUNCTION : Int32

Comparison function.

This enumeartion defines a comparison function. It generally mirrors D3D11_COMPARISON_FUNC/D3D12_COMPARISON_FUNC enum and is used by

- SamplerDesc to define a comparison function if one of the comparison mode filters is used
- StencilOpDesc to define a stencil function
- DepthStencilStateDesc to define a depth function

Enumerator
COMPARISON_FUNC_UNKNOWN | Unknown comparison function.
COMPARISON_FUNC_NEVER | Comparison never passes. Direct3D counterpart: D3D11_COMPARISON_NEVER/D3D12_COMPARISON_FUNC_NEVER. OpenGL counterpart: GL_NEVER.
COMPARISON_FUNC_LESS | Comparison passes if the source data is less than the destination data. Direct3D counterpart: D3D11_COMPARISON_LESS/D3D12_COMPARISON_FUNC_LESS. OpenGL counterpart: GL_LESS.
COMPARISON_FUNC_EQUAL | Comparison passes if the source data is equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_EQUAL/D3D12_COMPARISON_FUNC_EQUAL. OpenGL counterpart: GL_EQUAL.
COMPARISON_FUNC_LESS_EQUAL | Comparison passes if the source data is less than or equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_LESS_EQUAL/D3D12_COMPARISON_FUNC_LESS_EQUAL. OpenGL counterpart: GL_LEQUAL.
COMPARISON_FUNC_GREATER | Comparison passes if the source data is greater than the destination data. Direct3D counterpart: 3D11_COMPARISON_GREATER/D3D12_COMPARISON_FUNC_GREATER. OpenGL counterpart: GL_GREATER.
COMPARISON_FUNC_NOT_EQUAL | Comparison passes if the source data is not equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_NOT_EQUAL/D3D12_COMPARISON_FUNC_NOT_EQUAL. OpenGL counterpart: GL_NOTEQUAL.
COMPARISON_FUNC_GREATER_EQUAL | Comparison passes if the source data is greater than or equal to the destination data. Direct3D counterpart: D3D11_COMPARISON_GREATER_EQUAL/D3D12_COMPARISON_FUNC_GREATER_EQUAL. OpenGL counterpart: GL_GEQUAL.
COMPARISON_FUNC_ALWAYS | Comparison always passes. Direct3D counterpart: D3D11_COMPARISON_ALWAYS/D3D12_COMPARISON_FUNC_ALWAYS. OpenGL counterpart: GL_ALWAYS.
COMPARISON_FUNC_NUM_FUNCTIONS | Helper value that stores the total number of comparison functions in the enumeration.

## ◆ COMPONENT_TYPE

enum Diligent::COMPONENT_TYPE : Int32

Describes texture format component type.

Enumerator
COMPONENT_TYPE_UNDEFINED | Undefined component type.
COMPONENT_TYPE_FLOAT | Floating point component type.
COMPONENT_TYPE_SNORM | Signed-normalized-integer component type.
COMPONENT_TYPE_UNORM | Unsigned-normalized-integer component type.
COMPONENT_TYPE_UNORM_SRGB | Unsigned-normalized-integer sRGB component type.
COMPONENT_TYPE_SINT | Signed-integer component type.
COMPONENT_TYPE_UINT | Unsigned-integer component type.
COMPONENT_TYPE_DEPTH | Depth component type.
COMPONENT_TYPE_DEPTH_STENCIL | Depth-stencil component type.
COMPONENT_TYPE_COMPOUND | Compound component type (example texture formats: TEX_FORMAT_R11G11B10_FLOAT or TEX_FORMAT_RGB9E5_SHAREDEXP)
COMPONENT_TYPE_COMPRESSED | Compressed component type.

## ◆ CPU_ACCESS_FLAG

enum Diligent::CPU_ACCESS_FLAG : Int32

Allowed CPU access mode flags when mapping a resource.

The enumeration is used by

- BufferDesc to describe CPU access mode for a buffer
- TextureDesc to describe CPU access mode for a texture
  Note
    Only USAGE_DYNAMIC resources can be mapped

Enumerator
CPU_ACCESS_READ | A resource can be mapped for reading.
CPU_ACCESS_WRITE | A resource can be mapped for writing.

## ◆ CULL_MODE

enum Diligent::CULL_MODE : Int32

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. Direct3D counterpart: D3D11_CULL_NONE/D3D12_CULL_MODE_NONE. OpenGL counterpart: glDisable( GL_CULL_FACE ).
CULL_MODE_FRONT | Do not draw triangles that are front-facing. Front- and back-facing triangles are determined by the RasterizerStateDesc::FrontCounterClockwise member. Direct3D counterpart: D3D11_CULL_FRONT/D3D12_CULL_MODE_FRONT. OpenGL counterpart: GL_FRONT.
CULL_MODE_BACK | Do not draw triangles that are back-facing. Front- and back-facing triangles are determined by the RasterizerStateDesc::FrontCounterClockwise member. Direct3D counterpart: D3D11_CULL_BACK/D3D12_CULL_MODE_BACK. OpenGL counterpart: GL_BACK.
CULL_MODE_NUM_MODES | Helper value that stores the total number of cull modes in the enumeration.

## ◆ DeviceType

enum Diligent::DeviceType : Int32
| strong

Device type.

Enumerator
Undefined | Undefined device.
D3D11 | D3D11 device.
D3D12 | D3D12 device.
OpenGL | OpenGL device.
OpenGLES | OpenGLES device.

## ◆ EngineD3D11DebugFlags

enum Diligent::EngineD3D11DebugFlags : Uint32
| strong

Debug flags that can be specified when creating Direct3D11-based engine implementation.

See also
  CreateDeviceAndContextsD3D11Type, CreateSwapChainD3D11Type, LoadGraphicsEngineD3D11

Enumerator
VerifyCommittedShaderResources | Before executing draw/dispatch command, verify that all required shader resources are bound to the device context.
VerifyCommittedResourceRelevance | Verify that all committed cotext resources are relevant, i.e. they are consistent with the committed resource cache. This is very expensive operation and should generally not be necessary.

## ◆ FILL_MODE

enum Diligent::FILL_MODE : Int32

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.

Enumerator
FILL_MODE_UNDEFINED | Undefined fill mode.
FILL_MODE_WIREFRAME | Rasterize triangles using wireframe fill. Direct3D counterpart: D3D11_FILL_WIREFRAME/D3D12_FILL_MODE_WIREFRAME. OpenGL counterpart: GL_LINE.
FILL_MODE_SOLID | Rasterize triangles using solid fill. Direct3D counterpart: D3D11_FILL_SOLID/D3D12_FILL_MODE_SOLID. OpenGL counterpart: GL_FILL.
FILL_MODE_NUM_MODES | Helper value that stores the total number of fill modes in the enumeration.

## ◆ FILTER_TYPE

enum Diligent::FILTER_TYPE : Int32

Filter type.

This enumeration defines filter type. It is used by SamplerDesc structure to define min, mag and mip filters.

Note
  On D3D11, comparison filters only work with textures that have the following formats: R32_FLOAT_X8X24_TYPELESS, R32_FLOAT, R24_UNORM_X8_TYPELESS, R16_UNORM.

Enumerator
FILTER_TYPE_UNKNOWN | Unknown filter type.
FILTER_TYPE_POINT | Point filtering.
FILTER_TYPE_LINEAR | Linear filtering.
FILTER_TYPE_ANISOTROPIC | Anisotropic filtering.
FILTER_TYPE_COMPARISON_POINT | Comparison-point filtering.
FILTER_TYPE_COMPARISON_LINEAR | Comparison-linear filtering.
FILTER_TYPE_COMPARISON_ANISOTROPIC | Comparison-anisotropic filtering.
FILTER_TYPE_MINIMUM_POINT | Minimum-point filtering (DX12 only)
FILTER_TYPE_MINIMUM_LINEAR | Minimum-linear filtering (DX12 only)
FILTER_TYPE_MINIMUM_ANISOTROPIC | Minimum-anisotropic filtering (DX12 only)
FILTER_TYPE_MAXIMUM_POINT | Maximum-point filtering (DX12 only)
FILTER_TYPE_MAXIMUM_LINEAR | Maximum-linear filtering (DX12 only)
FILTER_TYPE_MAXIMUM_ANISOTROPIC | Maximum-anisotropic filtering (DX12 only)
FILTER_TYPE_NUM_FILTERS | Helper value that stores the total number of filter types in the enumeration.

## ◆ LOGIC_OPERATION

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

See also
  D3D12_LOGIC_OP on MSDN

Enumerator
LOGIC_OP_CLEAR | Clear the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_CLEAR.
LOGIC_OP_SET | Set the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_SET.
LOGIC_OP_COPY | Copy the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_COPY.
LOGIC_OP_COPY_INVERTED | Perform an inverted-copy of the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_COPY_INVERTED.
LOGIC_OP_NOOP | No operation is performed on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_NOOP.
LOGIC_OP_INVERT | Invert the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_INVERT.
LOGIC_OP_AND | Perform a logical AND operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_AND.
LOGIC_OP_NAND | Perform a logical NAND operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_NAND.
LOGIC_OP_OR | Perform a logical OR operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_OR.
LOGIC_OP_NOR | Perform a logical NOR operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_NOR.
LOGIC_OP_XOR | Perform a logical XOR operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_XOR.
LOGIC_OP_EQUIV | Perform a logical equal operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_EQUIV.
LOGIC_OP_AND_REVERSE | Perform a logical AND and reverse operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_AND_REVERSE.
LOGIC_OP_AND_INVERTED | Perform a logical AND and invert operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_AND_INVERTED.
LOGIC_OP_OR_REVERSE | Perform a logical OR and reverse operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_OR_REVERSE.
LOGIC_OP_OR_INVERTED | Perform a logical OR and invert operation on the render target. Direct3D12 counterpart: D3D12_LOGIC_OP_OR_INVERTED.
LOGIC_OP_NUM_OPERATIONS | Helper value that stores the total number of logical operations in the enumeration.

## ◆ MAP_FLAGS

enum Diligent::MAP_FLAGS : Int32

Special map flags.

Describes special arguments for a map operation. This enumeration is used by

- IBuffer::Map to describe buffer mapping flags
- ITexture::Map to describe texture mapping flags

Enumerator
MAP_FLAG_DO_NOT_WAIT | Specifies that map operation should not wait until previous command that using the same resource completes. Map returns null pointer if the resource is still in use. D3D11 counterpart: D3D11_MAP_FLAG_DO_NOT_WAIT. Note : OpenGL does not have corresponding flag, so a buffer will always be mapped
MAP_FLAG_DISCARD | Previous contents of the resource will be undefined. This flag is only compatible with MAP_WRITE D3D11 counterpart: D3D11_MAP_WRITE_DISCARD. OpenGL counterpart: GL_MAP_INVALIDATE_BUFFER_BIT. Note OpenGL implementation may orphan a buffer instead
MAP_FLAG_DO_NOT_SYNCHRONIZE | The system will not synchronize pending operations before mapping the buffer. It is responsibility of the application to make sure that the buffer contents is not overwritten while it is in use by the GPU. D3D11 counterpart: D3D11_MAP_WRITE_NO_OVERWRITE. OpenGL counterpart: GL_MAP_UNSYNCHRONIZED_BIT.

## ◆ MAP_TYPE

enum Diligent::MAP_TYPE : Int32

Resource mapping type.

Describes how a mapped resource will be accessed. This enumeration generally mirrors D3D11_MAP enumeration. It is used by

- IBuffer::Map to describe buffer mapping type
- ITexture::Map to describe texture mapping type

Enumerator
MAP_READ | Resource is mapped for reading. D3D11 counterpart: D3D11_MAP_READ. OpenGL counterpart: GL_MAP_READ_BIT.
MAP_WRITE | Resource is mapped for writing. D3D11 counterpart: D3D11_MAP_WRITE. OpenGL counterpart: GL_MAP_WRITE_BIT.
MAP_READ_WRITE | Resource is mapped for reading and writing. D3D11 counterpart: D3D11_MAP_READ_WRITE. OpenGL counterpart: GL_MAP_WRITE_BIT | GL_MAP_READ_BIT.

## ◆ MISC_TEXTURE_FLAG

enum Diligent::MISC_TEXTURE_FLAG

Miscellaneous texture flags.

The enumeration is used by TextureDesc to describe misc texture flags

Enumerator
MISC_TEXTURE_FLAG_GENERATE_MIPS | Allow automatic mipmap generation with ITextureView::GenerateMips() Note A texture must be created with BIND_RENDER_TARGET bind flag

## ◆ PRIMITIVE_TOPOLOGY

enum Diligent::PRIMITIVE_TOPOLOGY : Int32

Input primitive topology.

This enumeration is used by DrawAttribs structure to define input primitive topology.

Enumerator
PRIMITIVE_TOPOLOGY_UNDEFINED | Undefined topology.
PRIMITIVE_TOPOLOGY_TRIANGLE_LIST | Interpret the vertex data as a list of triangles. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST. OpenGL counterpart: GL_TRIANGLES.
PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP | Interpret the vertex data as a triangle strip. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP. OpenGL counterpart: GL_TRIANGLE_STRIP.
PRIMITIVE_TOPOLOGY_POINT_LIST | Interpret the vertex data as a list of points. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_POINTLIST. OpenGL counterpart: GL_POINTS.
PRIMITIVE_TOPOLOGY_LINE_LIST | Interpret the vertex data as a list of lines. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_LINELIST. OpenGL counterpart: GL_LINES.
PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of one control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of two control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of three control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of four control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of five control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of six control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of seven control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of eight control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of nine control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of ten control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 11 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 12 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 13 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 14 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 15 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 16 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 17 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 18 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 19 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 20 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 21 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 22 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 23 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 24 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 25 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 26 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 27 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 28 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 29 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 30 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 31 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST | Interpret the vertex data as a list of 32 control point patches. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST. OpenGL counterpart: GL_PATCHES.
PRIMITIVE_TOPOLOGY_NUM_TOPOLOGIES | Helper value that stores the total number of topologies in the enumeration.

## ◆ PRIMITIVE_TOPOLOGY_TYPE

enum Diligent::PRIMITIVE_TOPOLOGY_TYPE : Int32

Primitive topology type.

This enumeration describes primitive topology type. It generally mirrors D3D12_PRIMITIVE_TOPOLOGY_TYPE enumeration. The enumeration is used by GraphicsPipelineDesc to describe how the pipeline interprets geometry or hull shader input primitives

Enumerator
PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED | Topology is not defined.
PRIMITIVE_TOPOLOGY_TYPE_POINT | Interpret the input primitive as a point.
PRIMITIVE_TOPOLOGY_TYPE_LINE | Interpret the input primitive as a line.
PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE | Interpret the input primitive as a triangle.
PRIMITIVE_TOPOLOGY_TYPE_PATCH | Interpret the input primitive as a control point patch.
PRIMITIVE_TOPOLOGY_TYPE_NUM_TYPES | Total number of topology types.

## ◆ RESOURCE_DIMENSION

enum Diligent::RESOURCE_DIMENSION : Int32

Describes resource dimension.

This enumeration is used by

- TextureDesc to describe texture type
- TextureViewDesc to describe texture view type

Enumerator
RESOURCE_DIM_UNDEFINED | Texture type undefined.
RESOURCE_DIM_BUFFER | Buffer.
RESOURCE_DIM_TEX_1D | One-dimensional texture.
RESOURCE_DIM_TEX_1D_ARRAY | One-dimensional texture array.
RESOURCE_DIM_TEX_2D | Two-dimensional texture.
RESOURCE_DIM_TEX_2D_ARRAY | Two-dimensional texture array.
RESOURCE_DIM_TEX_3D | Three-dimensional texture.
RESOURCE_DIM_TEX_CUBE | Cube-map texture.
RESOURCE_DIM_TEX_CUBE_ARRAY | Cube-map array texture.
RESOURCE_DIM_NUM_DIMENSIONS | Helper value that stores the total number of texture types in the enumeration.

## ◆ SET_VERTEX_BUFFERS_FLAGS

enum Diligent::SET_VERTEX_BUFFERS_FLAGS : Int32

Defines allowed flags for IDeviceContext::SetVertexBuffers() function.

Enumerator
SET_VERTEX_BUFFERS_FLAG_RESET | Reset the vertex buffers to only the buffers specified in this call. All buffers previously bound to the pipeline will be unbound.

## ◆ SHADER_SOURCE_LANGUAGE

enum Diligent::SHADER_SOURCE_LANGUAGE : Int32

Describes shader source code language.

Enumerator
SHADER_SOURCE_LANGUAGE_DEFAULT | Default language (GLSL for OpenGL/OpenGLES devices, HLSL for Direct3D11/Direct3D12 devices)
SHADER_SOURCE_LANGUAGE_HLSL | The source language is HLSL.
SHADER_SOURCE_LANGUAGE_GLSL | The source language is GLSL.

## ◆ SHADER_TYPE

enum Diligent::SHADER_TYPE : Int32

Describes the shader type.

Enumerator
SHADER_TYPE_UNKNOWN | Unknown shader type.
SHADER_TYPE_VERTEX | Vertex shader.
SHADER_TYPE_PIXEL | Pixel (fragment) shader.
SHADER_TYPE_GEOMETRY | Geometry shader.
SHADER_TYPE_HULL | Hull (tessellation control) shader.
SHADER_TYPE_DOMAIN | Domain (tessellation evaluation) shader.
SHADER_TYPE_COMPUTE | Compute shader.

## ◆ SHADER_VARIABLE_TYPE

enum Diligent::SHADER_VARIABLE_TYPE : Int32

Describes shader variable type that is used by ShaderVariableDesc.

Enumerator
SHADER_VARIABLE_TYPE_STATIC | Shader variable is constant across all shader instances. It must be set once directly through IShader::BindResources() or through the shader variable.
SHADER_VARIABLE_TYPE_MUTABLE | Shader variable is constant across shader resource bindings instance (see IShaderResourceBinding). It must be set once through IShaderResourceBinding::BindResources() or through the shader variable. It cannot be set through IShader interface.
SHADER_VARIABLE_TYPE_DYNAMIC | Shader variable is dynamic. It can be set multiple times for every instance of shader resource bindings (see IShaderResourceBinding). It cannot be set through IShader interface.
SHADER_VARIABLE_TYPE_NUM_TYPES | Total number of shader variable types.

## ◆ STENCIL_OP

enum Diligent::STENCIL_OP : Int32

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

Enumerator
STENCIL_OP_UNDEFINED | Undefined operation.
STENCIL_OP_KEEP | Keep the existing stencil data. Direct3D counterpart: D3D11_STENCIL_OP_KEEP/D3D12_STENCIL_OP_KEEP. OpenGL counterpart: GL_KEEP.
STENCIL_OP_ZERO | Set the stencil data to 0. Direct3D counterpart: D3D11_STENCIL_OP_ZERO/D3D12_STENCIL_OP_ZERO. OpenGL counterpart: GL_ZERO.
STENCIL_OP_REPLACE | Set the stencil data to the reference value set by calling IDeviceContext::SetStencilRef(). Direct3D counterpart: D3D11_STENCIL_OP_REPLACE/D3D12_STENCIL_OP_REPLACE. OpenGL counterpart: GL_REPLACE.
STENCIL_OP_INCR_SAT | Increment the current stencil value, and clamp to the maximum representable unsigned value. Direct3D counterpart: D3D11_STENCIL_OP_INCR_SAT/D3D12_STENCIL_OP_INCR_SAT. OpenGL counterpart: GL_INCR.
STENCIL_OP_DECR_SAT | Decrement the current stencil value, and clamp to 0. Direct3D counterpart: D3D11_STENCIL_OP_DECR_SAT/D3D12_STENCIL_OP_DECR_SAT. OpenGL counterpart: GL_DECR.
STENCIL_OP_INVERT | Bitwise invert the current stencil buffer value. Direct3D counterpart: D3D11_STENCIL_OP_INVERT/D3D12_STENCIL_OP_INVERT. OpenGL counterpart: GL_INVERT.
STENCIL_OP_INCR_WRAP | Increment the current stencil value, and wrap the value to zero when incrementing the maximum representable unsigned value. Direct3D counterpart: D3D11_STENCIL_OP_INCR/D3D12_STENCIL_OP_INCR. OpenGL counterpart: GL_INCR_WRAP.
STENCIL_OP_DECR_WRAP | Decrement the current stencil value, and wrap the value to the maximum representable unsigned value when decrementing a value of zero. Direct3D counterpart: D3D11_STENCIL_OP_DECR/D3D12_STENCIL_OP_DECR. OpenGL counterpart: GL_DECR_WRAP.
STENCIL_OP_NUM_OPS | Helper value that stores the total number of stencil operations in the enumeration.

## ◆ TEXTURE_ADDRESS_MODE

enum Diligent::TEXTURE_ADDRESS_MODE : Int32

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. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_WRAP/D3D12_TEXTURE_ADDRESS_MODE_WRAP. OpenGL counterpart: GL_REPEAT.
TEXTURE_ADDRESS_MIRROR | Flip the texture at every integer junction. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_MIRROR/D3D12_TEXTURE_ADDRESS_MODE_MIRROR. OpenGL counterpart: GL_MIRRORED_REPEAT.
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. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_CLAMP/D3D12_TEXTURE_ADDRESS_MODE_CLAMP. OpenGL counterpart: GL_CLAMP_TO_EDGE.
TEXTURE_ADDRESS_BORDER | Texture coordinates outside the range [0.0, 1.0] are set to the border color specified specified in SamplerDesc structure. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_BORDER/D3D12_TEXTURE_ADDRESS_MODE_BORDER. OpenGL counterpart: GL_CLAMP_TO_BORDER.
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. Direct3D Counterpart: D3D11_TEXTURE_ADDRESS_MIRROR_ONCE/D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE. OpenGL counterpart: GL_MIRROR_CLAMP_TO_EDGE. Note GL_MIRROR_CLAMP_TO_EDGE is only available in OpenGL4.4+, and is not available until at least OpenGLES3.1
TEXTURE_ADDRESS_NUM_MODES | Helper value that stores the total number of texture address modes in the enumeration.

## ◆ TEXTURE_FORMAT

enum Diligent::TEXTURE_FORMAT : Int32

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.

See also
  DXGI_FORMAT enumeration on MSDN, OpenGL Texture Formats

Enumerator
TEX_FORMAT_UNKNOWN | Unknown format.
TEX_FORMAT_RGBA32_TYPELESS | Four-component 128-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32A32_TYPELESS. OpenGL does not have direct counterpart, GL_RGBA32F is used.
TEX_FORMAT_RGBA32_FLOAT | Four-component 128-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32A32_FLOAT. OpenGL counterpart: GL_RGBA32F.
TEX_FORMAT_RGBA32_UINT | Four-component 128-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32A32_UINT. OpenGL counterpart: GL_RGBA32UI.
TEX_FORMAT_RGBA32_SINT | Four-component 128-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32A32_SINT. OpenGL counterpart: GL_RGBA32I.
TEX_FORMAT_RGB32_TYPELESS | Three-component 96-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32_TYPELESS. OpenGL does not have direct counterpart, GL_RGB32F is used. Warning This format has weak hardware support and is not recommended
TEX_FORMAT_RGB32_FLOAT | Three-component 96-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32_FLOAT. OpenGL counterpart: GL_RGB32F. Warning This format has weak hardware support and is not recommended
TEX_FORMAT_RGB32_UINT | Three-component 96-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32_UINT. OpenGL counterpart: GL_RGB32UI. Warning This format has weak hardware support and is not recommended
TEX_FORMAT_RGB32_SINT | Three-component 96-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32B32_SINT. OpenGL counterpart: GL_RGB32I. Warning This format has weak hardware support and is not recommended
TEX_FORMAT_RGBA16_TYPELESS | Four-component 64-bit typeless format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16B16A16_TYPELESS. OpenGL does not have direct counterpart, GL_RGBA16F is used.
TEX_FORMAT_RGBA16_FLOAT | Four-component 64-bit half-precision floating-point format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16B16A16_FLOAT. OpenGL counterpart: GL_RGBA16F.
TEX_FORMAT_RGBA16_UNORM | Four-component 64-bit unsigned-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16B16A16_UNORM. OpenGL counterpart: GL_RGBA16. OpenGLES: GL_EXT_texture_norm16 extension is required.
TEX_FORMAT_RGBA16_UINT | Four-component 64-bit unsigned-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16B16A16_UINT. OpenGL counterpart: GL_RGBA16UI.
TEX_FORMAT_RGBA16_SNORM | Four-component 64-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16B16A16_SNORM. OpenGL counterpart: GL_RGBA16_SNORM. OpenGLES: GL_EXT_texture_norm16 extension is required.
TEX_FORMAT_RGBA16_SINT | Four-component 64-bit signed-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16B16A16_SINT. OpenGL counterpart: GL_RGBA16I.
TEX_FORMAT_RG32_TYPELESS | Two-component 64-bit typeless format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32_TYPELESS. OpenGL does not have direct counterpart, GL_RG32F is used.
TEX_FORMAT_RG32_FLOAT | Two-component 64-bit floating-point format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32_FLOAT. OpenGL counterpart: GL_RG32F.
TEX_FORMAT_RG32_UINT | Two-component 64-bit unsigned-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32_UINT. OpenGL counterpart: GL_RG32UI.
TEX_FORMAT_RG32_SINT | Two-component 64-bit signed-integer format with 32-bit channels. D3D counterpart: DXGI_FORMAT_R32G32_SINT. OpenGL counterpart: GL_RG32I.
TEX_FORMAT_R32G8X24_TYPELESS | Two-component 64-bit typeless format with 32-bits for R channel and 8 bits for G channel. D3D counterpart: DXGI_FORMAT_R32G8X24_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH32F_STENCIL8 is used.
TEX_FORMAT_D32_FLOAT_S8X24_UINT | Two-component 64-bit format with 32-bit floating-point depth channel and 8-bit stencil channel. D3D counterpart: DXGI_FORMAT_D32_FLOAT_S8X24_UINT. OpenGL counterpart: GL_DEPTH32F_STENCIL8.
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. D3D counterpart: DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH32F_STENCIL8 is used.
TEX_FORMAT_X32_TYPELESS_G8X24_UINT | Two-component 64-bit format with 32-bit typeless data and 8-bit G channel. D3D counterpart: DXGI_FORMAT_X32_TYPELESS_G8X24_UINT. Warning This format is currently not implemented in OpenGL version
TEX_FORMAT_RGB10A2_TYPELESS | Four-component 32-bit typeless format with 10 bits for RGB and 2 bits for alpha channel. D3D counterpart: DXGI_FORMAT_R10G10B10A2_TYPELESS. OpenGL does not have direct counterpart, GL_RGB10_A2 is used.
TEX_FORMAT_RGB10A2_UNORM | Four-component 32-bit unsigned-normalized-integer format with 10 bits for each color and 2 bits for alpha channel. D3D counterpart: DXGI_FORMAT_R10G10B10A2_UNORM. OpenGL counterpart: GL_RGB10_A2.
TEX_FORMAT_RGB10A2_UINT | Four-component 32-bit unsigned-integer format with 10 bits for each color and 2 bits for alpha channel. D3D counterpart: DXGI_FORMAT_R10G10B10A2_UINT. OpenGL counterpart: GL_RGB10_A2UI.
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. D3D counterpart: DXGI_FORMAT_R11G11B10_FLOAT. OpenGL counterpart: GL_R11F_G11F_B10F.
TEX_FORMAT_RGBA8_TYPELESS | Four-component 32-bit typeless format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_TYPELESS. OpenGL does not have direct counterpart, GL_RGBA8 is used.
TEX_FORMAT_RGBA8_UNORM | Four-component 32-bit unsigned-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_UNORM. OpenGL counterpart: GL_RGBA8.
TEX_FORMAT_RGBA8_UNORM_SRGB | Four-component 32-bit unsigned-normalized-integer sRGB format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_UNORM_SRGB. OpenGL counterpart: GL_SRGB8_ALPHA8.
TEX_FORMAT_RGBA8_UINT | Four-component 32-bit unsigned-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_UINT. OpenGL counterpart: GL_RGBA8UI.
TEX_FORMAT_RGBA8_SNORM | Four-component 32-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_SNORM. OpenGL counterpart: GL_RGBA8_SNORM.
TEX_FORMAT_RGBA8_SINT | Four-component 32-bit signed-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8B8A8_SINT. OpenGL counterpart: GL_RGBA8I.
TEX_FORMAT_RG16_TYPELESS | Two-component 32-bit typeless format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16_TYPELESS. OpenGL does not have direct counterpart, GL_RG16F is used.
TEX_FORMAT_RG16_FLOAT | Two-component 32-bit half-precision floating-point format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16_FLOAT. OpenGL counterpart: GL_RG16F.
TEX_FORMAT_RG16_UNORM | Two-component 32-bit unsigned-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16_UNORM. OpenGL counterpart: GL_RG16. OpenGLES: GL_EXT_texture_norm16 extension is required.
TEX_FORMAT_RG16_UINT | Two-component 32-bit unsigned-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16_UINT. OpenGL counterpart: GL_RG16UI.
TEX_FORMAT_RG16_SNORM | Two-component 32-bit signed-normalized-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16_SNORM. OpenGL counterpart: GL_RG16_SNORM. OpenGLES: GL_EXT_texture_norm16 extension is required.
TEX_FORMAT_RG16_SINT | Two-component 32-bit signed-integer format with 16-bit channels. D3D counterpart: DXGI_FORMAT_R16G16_SINT. OpenGL counterpart: GL_RG16I.
TEX_FORMAT_R32_TYPELESS | Single-component 32-bit typeless format. D3D counterpart: DXGI_FORMAT_R32_TYPELESS. OpenGL does not have direct counterpart, GL_R32F is used.
TEX_FORMAT_D32_FLOAT | Single-component 32-bit floating-point depth format. D3D counterpart: DXGI_FORMAT_D32_FLOAT. OpenGL counterpart: GL_DEPTH_COMPONENT32F.
TEX_FORMAT_R32_FLOAT | Single-component 32-bit floating-point format. D3D counterpart: DXGI_FORMAT_R32_FLOAT. OpenGL counterpart: GL_R32F.
TEX_FORMAT_R32_UINT | Single-component 32-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R32_UINT. OpenGL counterpart: GL_R32UI.
TEX_FORMAT_R32_SINT | Single-component 32-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R32_SINT. OpenGL counterpart: GL_R32I.
TEX_FORMAT_R24G8_TYPELESS | Two-component 32-bit typeless format with 24 bits for R and 8 bits for G channel. D3D counterpart: DXGI_FORMAT_R24G8_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH24_STENCIL8 is used.
TEX_FORMAT_D24_UNORM_S8_UINT | Two-component 32-bit format with 24 bits for unsigned-normalized-integer depth and 8 bits for stencil. D3D counterpart: DXGI_FORMAT_D24_UNORM_S8_UINT. OpenGL counterpart: GL_DEPTH24_STENCIL8.
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. D3D counterpart: DXGI_FORMAT_R24_UNORM_X8_TYPELESS. OpenGL does not have direct counterpart, GL_DEPTH24_STENCIL8 is used.
TEX_FORMAT_X24_TYPELESS_G8_UINT | Two-component 32-bit format with 24 bits of unreferenced data and 8 bits of unsigned-integer data. D3D counterpart: DXGI_FORMAT_X24_TYPELESS_G8_UINT. Warning This format is currently not implemented in OpenGL version
TEX_FORMAT_RG8_TYPELESS | Two-component 16-bit typeless format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_TYPELESS. OpenGL does not have direct counterpart, GL_RG8 is used.
TEX_FORMAT_RG8_UNORM | Two-component 16-bit unsigned-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_UNORM. OpenGL counterpart: GL_RG8.
TEX_FORMAT_RG8_UINT | Two-component 16-bit unsigned-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_UINT. OpenGL counterpart: GL_RG8UI.
TEX_FORMAT_RG8_SNORM | Two-component 16-bit signed-normalized-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_SNORM. OpenGL counterpart: GL_RG8_SNORM.
TEX_FORMAT_RG8_SINT | Two-component 16-bit signed-integer format with 8-bit channels. D3D counterpart: DXGI_FORMAT_R8G8_SINT. OpenGL counterpart: GL_RG8I.
TEX_FORMAT_R16_TYPELESS | Single-component 16-bit typeless format. D3D counterpart: DXGI_FORMAT_R16_TYPELESS. OpenGL does not have direct counterpart, GL_R16F is used.
TEX_FORMAT_R16_FLOAT | Single-component 16-bit half-precisoin floating-point format. D3D counterpart: DXGI_FORMAT_R16_FLOAT. OpenGL counterpart: GL_R16F.
TEX_FORMAT_D16_UNORM | Single-component 16-bit unsigned-normalized-integer depth format. D3D counterpart: DXGI_FORMAT_D16_UNORM. OpenGL counterpart: GL_DEPTH_COMPONENT16.
TEX_FORMAT_R16_UNORM | Single-component 16-bit unsigned-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_UNORM. OpenGL counterpart: GL_R16. OpenGLES: GL_EXT_texture_norm16 extension is required.
TEX_FORMAT_R16_UINT | Single-component 16-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R16_UINT. OpenGL counterpart: GL_R16UI.
TEX_FORMAT_R16_SNORM | Single-component 16-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R16_SNORM. OpenGL counterpart: GL_R16_SNORM. OpenGLES: GL_EXT_texture_norm16 extension is required.
TEX_FORMAT_R16_SINT | Single-component 16-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R16_SINT. OpenGL counterpart: GL_R16I.
TEX_FORMAT_R8_TYPELESS | Single-component 8-bit typeless format. D3D counterpart: DXGI_FORMAT_R8_TYPELESS. OpenGL does not have direct counterpart, GL_R8 is used.
TEX_FORMAT_R8_UNORM | Single-component 8-bit unsigned-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_UNORM. OpenGL counterpart: GL_R8.
TEX_FORMAT_R8_UINT | Single-component 8-bit unsigned-integer format. D3D counterpart: DXGI_FORMAT_R8_UINT. OpenGL counterpart: GL_R8UI.
TEX_FORMAT_R8_SNORM | Single-component 8-bit signed-normalized-integer format. D3D counterpart: DXGI_FORMAT_R8_SNORM. OpenGL counterpart: GL_R8_SNORM.
TEX_FORMAT_R8_SINT | Single-component 8-bit signed-integer format. D3D counterpart: DXGI_FORMAT_R8_SINT. OpenGL counterpart: GL_R8I.
TEX_FORMAT_A8_UNORM | Single-component 8-bit unsigned-normalized-integer format for alpha only. D3D counterpart: DXGI_FORMAT_A8_UNORM. Warning This format is not availanle in OpenGL
TEX_FORMAT_R1_UNORM | Single-component 1-bit format. D3D counterpart: DXGI_FORMAT_R1_UNORM. Warning This format is not availanle in OpenGL
TEX_FORMAT_RGB9E5_SHAREDEXP | Three partial-precision floating pointer numbers sharing single exponent encoded into a 32-bit value. D3D counterpart: DXGI_FORMAT_R9G9B9E5_SHAREDEXP. OpenGL counterpart: GL_RGB9_E5.
TEX_FORMAT_RG8_B8G8_UNORM | Four-component unsigned-normalized integer format analogous to UYVY encoding. D3D counterpart: DXGI_FORMAT_R8G8_B8G8_UNORM. Warning This format is not availanle in OpenGL
TEX_FORMAT_G8R8_G8B8_UNORM | Four-component unsigned-normalized integer format analogous to YUY2 encoding. D3D counterpart: DXGI_FORMAT_G8R8_G8B8_UNORM. Warning This format is not availanle in OpenGL
TEX_FORMAT_BC1_TYPELESS | Four-component typeless block-compression format with 1:8 compression ratio. D3D counterpart: DXGI_FORMAT_BC1_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGB_S3TC_DXT1_EXT is used. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC1 on MSDN , DXT1 on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC1_UNORM. OpenGL counterpart: GL_COMPRESSED_RGB_S3TC_DXT1_EXT. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC1 on MSDN , DXT1 on OpenGL.org
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. The pixel data is encoded using 8 bytes per 4x4 block (4 bits per pixel) providing 1:8 compression ratio against RGBA8 format. D3D counterpart: DXGI_FORMAT_BC1_UNORM_SRGB. OpenGL counterpart: GL_COMPRESSED_SRGB_S3TC_DXT1_EXT. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC1 on MSDN , DXT1 on OpenGL.org
TEX_FORMAT_BC2_TYPELESS | Four component typeless block-compression format with 1:4 compression ratio. D3D counterpart: DXGI_FORMAT_BC2_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT is used. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC2 on MSDN , DXT3 on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC2_UNORM. OpenGL counterpart: GL_COMPRESSED_RGBA_S3TC_DXT3_EXT. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC2 on MSDN , DXT3 on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC2_UNORM_SRGB. OpenGL counterpart: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC2 on MSDN , DXT3 on OpenGL.org
TEX_FORMAT_BC3_TYPELESS | Four-component typeless block-compression format with 1:4 compression ratio. D3D counterpart: DXGI_FORMAT_BC3_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT is used. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC3 on MSDN , DXT5 on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC3_UNORM. OpenGL counterpart: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC3 on MSDN , DXT5 on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC3_UNORM_SRGB. OpenGL counterpart: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT. OpenGL & OpenGLES: GL_EXT_texture_compression_s3tc extension is required. See also BC3 on MSDN , DXT5 on OpenGL.org
TEX_FORMAT_BC4_TYPELESS | One-component typeless block-compression format with 1:2 compression ratio. D3D counterpart: DXGI_FORMAT_BC4_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RED_RGTC1 is used. OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required. See also BC4 on MSDN , Compressed formats on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC4_UNORM. OpenGL counterpart: GL_COMPRESSED_RED_RGTC1. OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required. See also BC4 on MSDN , Compressed formats on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC4_SNORM. OpenGL counterpart: GL_COMPRESSED_SIGNED_RED_RGTC1. OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required. See also BC4 on MSDN , Compressed formats on OpenGL.org
TEX_FORMAT_BC5_TYPELESS | Two-component typeless block-compression format with 1:2 compression ratio. D3D counterpart: DXGI_FORMAT_BC5_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RG_RGTC2 is used. OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required. See also BC5 on MSDN , Compressed formats on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC5_UNORM. OpenGL counterpart: GL_COMPRESSED_RG_RGTC2. OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required. See also BC5 on MSDN , Compressed formats on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC5_SNORM. OpenGL counterpart: GL_COMPRESSED_SIGNED_RG_RGTC2. OpenGL & OpenGLES: GL_ARB_texture_compression_rgtc extension is required. See also BC5 on MSDN , Compressed formats on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_B5G6R5_UNORM. Warning This format is not available until D3D11.1 and Windows 8. It is also not available in OpenGL
TEX_FORMAT_B5G5R5A1_UNORM | Four-component 16-bit unsigned-normalized-integer format with 5 bits for each color channel and 1-bit alpha. D3D counterpart: DXGI_FORMAT_B5G5R5A1_UNORM. Warning This format is not available until D3D11.1 and Windows 8. It is also not available in OpenGL
TEX_FORMAT_BGRA8_UNORM | Four-component 32-bit unsigned-normalized-integer format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8G8R8A8_UNORM. Warning This format is not available in OpenGL
TEX_FORMAT_BGRX8_UNORM | Four-component 32-bit unsigned-normalized-integer format with 8 bits for each color channel and 8 bits unused. D3D counterpart: DXGI_FORMAT_B8G8R8X8_UNORM. Warning This format is not available in OpenGL
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. D3D counterpart: DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM. Warning This format is not available in OpenGL
TEX_FORMAT_BGRA8_TYPELESS | Four-component 32-bit typeless format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8G8R8A8_TYPELESS. Warning This format is not available in OpenGL
TEX_FORMAT_BGRA8_UNORM_SRGB | Four-component 32-bit unsigned-normalized sRGB format with 8 bits for each channel. D3D counterpart: DXGI_FORMAT_B8G8R8A8_UNORM_SRGB. Warning This format is not available in OpenGL.
TEX_FORMAT_BGRX8_TYPELESS | Four-component 32-bit typeless format that with 8 bits for each color channel, and 8 bits are unused. D3D counterpart: DXGI_FORMAT_B8G8R8X8_TYPELESS. Warning This format is not available in OpenGL.
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. D3D counterpart: DXGI_FORMAT_B8G8R8X8_UNORM_SRGB. Warning This format is not available in OpenGL.
TEX_FORMAT_BC6H_TYPELESS | Three-component typeless block-compression format. D3D counterpart: DXGI_FORMAT_BC6H_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT is used. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1. See also BC6H on MSDN , BPTC Texture Compression on OpenGL.org
TEX_FORMAT_BC6H_UF16 | Three-component unsigned half-precision floating-point format with 16 bits for each channel. D3D counterpart: DXGI_FORMAT_BC6H_UF16. OpenGL counterpart: GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1. See also BC6H on MSDN , BPTC Texture Compression on OpenGL.org
TEX_FORMAT_BC6H_SF16 | Three-channel signed half-precision floating-point format with 16 bits per each channel. D3D counterpart: DXGI_FORMAT_BC6H_SF16. OpenGL counterpart: GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1. See also BC6H on MSDN , BPTC Texture Compression on OpenGL.org
TEX_FORMAT_BC7_TYPELESS | Three-component typeless block-compression format. D3D counterpart: DXGI_FORMAT_BC7_TYPELESS. OpenGL does not have direct counterpart, GL_COMPRESSED_RGBA_BPTC_UNORM is used. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1. See also BC7 on MSDN , BPTC Texture Compression on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC7_UNORM. OpenGL counterpart: GL_COMPRESSED_RGBA_BPTC_UNORM. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1. See also BC7 on MSDN , BPTC Texture Compression on OpenGL.org
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. D3D counterpart: DXGI_FORMAT_BC7_UNORM_SRGB. OpenGL counterpart: GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM. OpenGL: GL_ARB_texture_compression_bptc extension is required. Not supported in at least OpenGLES3.1. See also BC7 on MSDN , BPTC Texture Compression on OpenGL.org
TEX_FORMAT_NUM_FORMATS | Helper member containing the total number of texture formats in the enumeration.

## ◆ TEXTURE_VIEW_TYPE

enum Diligent::TEXTURE_VIEW_TYPE : Int32

Texture view type.

This enumeration describes allowed view types for a texture view. It is used by TextureViewDesc structure.

Enumerator
TEXTURE_VIEW_UNDEFINED | Undefined view type.
TEXTURE_VIEW_SHADER_RESOURCE | A texture view will define a shader resource view that will be used as the source for the shader read operations.
TEXTURE_VIEW_RENDER_TARGET | A texture view will define a render target view that will be used as the target for rendering operations.
TEXTURE_VIEW_DEPTH_STENCIL | A texture view will define a depth stencil view that will be used as the target for rendering operations.
TEXTURE_VIEW_UNORDERED_ACCESS | A texture view will define an unordered access view that will be used for unordered read/write operations from the shaders.
TEXTURE_VIEW_NUM_VIEWS | Helper value that stores that total number of texture views.

## ◆ UAV_ACCESS_FLAG

enum Diligent::UAV_ACCESS_FLAG : Int32

Describes allowed unordered access view mode.

Enumerator
UAV_ACCESS_UNSPECIFIED | Access mode is unspecified.
UAV_ACCESS_FLAG_READ | Allow read operations on the UAV.
UAV_ACCESS_FLAG_WRITE | Allow write operations on the UAV.
UAV_ACCESS_FLAG_READ_WRITE | Allow read and write operations on the UAV.

## ◆ USAGE

enum Diligent::USAGE : Int32

Resource usage.

This enumeration describes expected resource usage. It generally mirrors D3D11_USAGE enumeration. The enumeration is used by

- BufferDesc to describe usage for a buffer
- TextureDesc to describe usage for a texture

Enumerator
USAGE_STATIC | 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. D3D11 Counterpart: D3D11_USAGE_IMMUTABLE. OpenGL counterpart: GL_STATIC_DRAW.
USAGE_DEFAULT | A resource that requires read and write access by the GPU and can also be occasionally written by the CPU. D3D11 Counterpart: D3D11_USAGE_DEFAULT. OpenGL counterpart: GL_DYNAMIC_DRAW.
USAGE_DYNAMIC | A resource that can be read by the GPU and written at least once per frame by the CPU. D3D11 Counterpart: D3D11_USAGE_DYNAMIC. OpenGL counterpart: GL_STREAM_DRAW.
USAGE_CPU_ACCESSIBLE | A resource that facilitates transferring data from GPU to CPU. D3D11 Counterpart: D3D11_USAGE_STAGING. OpenGL counterpart: GL_DYNAMIC_READ.

## ◆ VALUE_TYPE

enum Diligent::VALUE_TYPE : Int32

Value type.

This enumeration describes value type. It is used by

- BufferDesc structure to describe value type of a formatted buffer
- DrawAttribs structure to describe index type for an indexed draw call

Enumerator
VT_UNDEFINED | Undefined type.
VT_INT8 | Signed 8-bit integer.
VT_INT16 | Signed 16-bit integer.
VT_INT32 | Signed 32-bit integer.
VT_UINT8 | Unsigned 8-bit integer.
VT_UINT16 | Unsigned 16-bit integer.
VT_UINT32 | Unsigned 32-bit integer.
VT_FLOAT16 | Half-precision 16-bit floating point.
VT_FLOAT32 | Full-precision 32-bit floating point.
VT_NUM_TYPES | Helper value storing total number of types in the enumeration.

## Function Documentation

## ◆ LoadGraphicsEngineD3D11()

void Diligent::LoadGraphicsEngineD3D11 | ( | GetEngineFactoryD3D11Type & | GetFactoryFunc | ) |

Loads Direct3D11-based engine implementation and exports factory functions.

Parameters

  [out] | GetFactoryFunc | - Pointer to the function that returns factory for D3D11 engine implementation See EngineFactoryD3D11Impl.

Remarks
  Depending on the configuration and platform, the function loads different dll:

  Platform\Configuration | Debug | Release ---------—
  --- | --- | ---
  x86 | GraphicsEngineD3D11_32d.dll | GraphicsEngineD3D11_32r.dll
  x64 | GraphicsEngineD3D11_64d.dll | GraphicsEngineD3D11_64r.dll

## ◆ LoadGraphicsEngineD3D12()

void Diligent::LoadGraphicsEngineD3D12 | ( | GetEngineFactoryD3D12Type & | GetFactoryFunc | ) |

Loads Direct3D12-based engine implementation and exports factory functions.

Parameters

  [out] | GetFactoryFunc | - Pointer to the function that returns factory for D3D12 engine implementation. See EngineFactoryD3D12Impl.

Remarks
  Depending on the configuration and platform, the function loads different dll:

  Platform\Configuration | Debug | Release ---------—
  --- | --- | ---
  x86 | GraphicsEngineD3D12_32d.dll | GraphicsEngineD3D12_32r.dll
  x64 | GraphicsEngineD3D12_64d.dll | GraphicsEngineD3D12_64r.dll

## ◆ LoadGraphicsEngineOpenGL()

void Diligent::LoadGraphicsEngineOpenGL | ( | GetEngineFactoryOpenGLType & | GetFactoryFunc | ) |

Loads OpenGL-based engine implementation and exports factory functions.

Parameters

  [out] | GetFactoryFunc | - Pointer to the function that returns pointer to the factory for the OpenGL engine implementation See EngineFactoryOpenGLImpl::CreateDeviceAndSwapChainGL().

Remarks
  Depending on the configuration and platform, the function loads different dll:

  Platform\Configuration | Debug | Release -------—
  --- | --- | ---
  Win32/x86 | GraphicsEngineOpenGL_32d.dll | GraphicsEngineOpenGL_32r.dll
  Win32/x64 | GraphicsEngineOpenGL_64d.dll | GraphicsEngineOpenGL_64r.dll

To load the library on Android, it is necessary to call System.loadLibrary("GraphicsEngineOpenGL") from Java.