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

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

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

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

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

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

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

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

Comparison function.

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

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

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

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

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

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

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

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

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

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

Describes resource dimension.

This enumeration is used by

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

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

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

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

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

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

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

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

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.