Diligent Engine API Reference
Classes | Typedefs | Enumerations | Functions | Variables
Diligent Namespace Reference

Graphics engine namespace. 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...
 
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  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  IDataBlob
 Base interface for a file stream. More...
 
class  IDeviceContext
 Device context interface. More...
 
class  IDeviceContextD3D11
 Interface to the device context object implemented in D3D11. 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  IFileStream
 Base interface for a file stream. More...
 
class  IMemoryAllocator
 Base interface for a raw memory allocator. More...
 
struct  InputLayoutDesc
 Layout description. More...
 
struct  INTERFACE_ID
 Describes unique identifier. More...
 
class  IObject
 Base interface for all dynamic objects in the engine. 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  IReferenceCounters
 Base interface for a reference counter object that stores the number of strong and weak references and the pointer to the object. It is necessary to separate reference counters from the object to support weak pointers. 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 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. 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  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...
 

Typedefs

typedef float Float32
 32-bit float
 
typedef int64_t Int64
 64-bit signed integer
 
typedef int32_t Int32
 32-bit signed integer
 
typedef int16_t Int16
 16-bit signed integer
 
typedef int8_t Int8
 8-bit signed integer
 
typedef uint64_t Uint64
 64-bit unsigned integer
 
typedef uint32_t Uint32
 32-bit unsigned integer
 
typedef uint16_t Uint16
 16-bit unsigned integer
 
typedef uint8_t Uint8
 8-bit unsigned integer
 
typedef bool Bool
 Boolean.
 
typedef std::basic_string< Char > String
 String variable.
 

Enumerations

enum  BLEND_FACTOR : Int32 {
  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 : Int32 {
  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 {
  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_FORMATED, 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_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 = 0, MAP_WRITE, MAP_READ_WRITE, MAP_WRITE_DISCARD,
  MAP_WRITE_NO_OVERWRITE
}
 Resource mapping type. More...
 
enum  MAP_FLAGS : Int32 { MAP_FLAG_DO_NOT_WAIT = 0x001 }
 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...
 
enum  EngineD3D11DebugFlags : Uint32 { EngineD3D11DebugFlags::VerifyCommittedShaderResources = 0x01, EngineD3D11DebugFlags::VerifyCommittedResourceRelevance = 0x02 }
 Debug flags that can be specified when creating Direct3D11-based engine implementation. More...
 

Functions

void SetRawAllocator (IMemoryAllocator *pRawAllocator)
 Sets raw memory allocator. This function must be called before any memory allocation/deallocation function is called.
 
IMemoryAllocatorGetRawAllocator ()
 Returns raw memory allocator.
 
void CreateDeviceAndContextsD3D11 (const EngineD3D11Attribs &EngineAttribs, IRenderDevice **ppDevice, IDeviceContext **ppContexts, Uint32 NumDeferredContexts)
 Creates render device and device contexts for Direct3D11-based engine implementation. More...
 
void CreateSwapChainD3D11 (IRenderDevice *pDevice, Diligent::IDeviceContext *pImmediateContext, const SwapChainDesc &SCDesc, void *pNativeWndHandle, ISwapChain **ppSwapChain)
 Creates a swap chain for Direct3D11-based engine implementation. More...
 
void LoadGraphicsEngineD3D11 (CreateDeviceAndContextsD3D11Type &CreateDeviceFunc, CreateSwapChainD3D11Type &CreateSwapChainFunc)
 Loads Direct3D11-based engine implementation and exports factory functions. More...
 
void CreateDeviceAndSwapChainGL (const EngineCreationAttribs &CreationAttribs, IRenderDevice **ppDevice, IDeviceContext **ppImmediateContext, const SwapChainDesc &SCDesc, void *pNativeWndHandle, Diligent::ISwapChain **ppSwapChain)
 Creates render device, device context and swap chain for OpenGL/GLES-based engine implementation. More...
 
void LoadGraphicsEngineOpenGL (CreateDeviceAndSwapChainGLType &CreateDeviceFunc)
 Loads OpenGL-based engine implementation and exports factory functions. More...
 
void CreateDeviceAndContextsD3D12 (const EngineD3D12Attribs &CreationAttribs, IRenderDevice **ppDevice, Diligent::IDeviceContext **ppContexts, Diligent::Uint32 NumDeferredContexts)
 Creates render device and device contexts for Direct3D12-based engine implementation. More...
 
void CreateSwapChainD3D12 (IRenderDevice *pDevice, IDeviceContext *pImmediateContext, const SwapChainDesc &SCDesc, void *pNativeWndHandle, ISwapChain **ppSwapChain)
 Creates a swap chain for Direct3D12-based engine implementation. More...
 
void LoadGraphicsEngineD3D12 (CreateDeviceAndContextsD3D12Type &CreateDeviceFunc, CreateSwapChainD3D12Type &CreateSwapChainFunc)
 Loads Direct3D12-based engine implementation and exports factory functions. More...
 

Variables

static const Uint32 MaxBufferSlots = 32
 Maximum number of input buffer slots.
 
static const Uint32 MaxRenderTargets = 8
 Maximum number of simultaneous render targets.
 
static const INTERFACE_ID IID_Unknown = { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }
 Unknown interface.
 
static const Diligent::INTERFACE_ID IID_FileStream
 IFileStream interface unique identifier.
 

Detailed Description

Graphics engine namespace.

Namespace for the Direct3D11 implementation of the graphics engine.

Unique identification structures.

Namespace for the OpenGL implementation of the graphics engine.

Enumeration Type Documentation

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.

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 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.

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.

Describes the buffer access mode.

This enumeration is used by BufferDesc structure.

Enumerator
BUFFER_MODE_UNDEFINED 

Undefined mode.

BUFFER_MODE_FORMATED 

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.

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.

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 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.

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.

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.

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.

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.

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.

enum Diligent::DeviceType : Int32
strong

Device type.

Enumerator
Undefined 

Undefined device.

D3D11 

D3D11 device.

D3D12 

D3D12 device.

OpenGL 

OpenGL device.

OpenGLES 

OpenGLES device.

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.

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.

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.

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.

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

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.

MAP_WRITE_DISCARD 

Resource is mapped for writing; the previous contents of the resource will be undefined.
D3D11 counterpart: D3D11_MAP_WRITE_DISCARD. OpenGL counterpart: GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT.

Note
OpenGL implementation may orphan a buffer instead
MAP_WRITE_NO_OVERWRITE 

Resource is mapped for writing; the existing contents of the resource cannot be overwritten.
D3D11 counterpart: D3D11_MAP_WRITE_NO_OVERWRITE. OpenGL counterpart: GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT.

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

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_NUM_TOPOLOGIES 

Helper value that stores the total number of topologies in the enumeration.

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.

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.

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.

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.

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.

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 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.

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 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.

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.

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.

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.

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

void Diligent::CreateDeviceAndContextsD3D11 ( const EngineD3D11Attribs EngineAttribs,
IRenderDevice **  ppDevice,
IDeviceContext **  ppContexts,
Uint32  NumDeferredContexts 
)

Creates render device and device contexts for Direct3D11-based engine implementation.

Parameters
[in]EngineAttribs- Engine creation attributes.
[out]ppDevice- Address of the memory location where pointer to the created device will be written
[out]ppContexts- Address of the memory location where pointers to the contexts will be written. Pointer to the immediate context goes at position 0. If NumDeferredContexts > 0, pointers to the deferred contexts go afterwards.
[in]NumDeferredContexts- Number of deferred contexts. If non-zero number of deferred contexts is requested, pointers to the contexts are written to ppContexts array starting at position 1
void Diligent::CreateDeviceAndContextsD3D12 ( const EngineD3D12Attribs CreationAttribs,
IRenderDevice **  ppDevice,
Diligent::IDeviceContext **  ppContexts,
Diligent::Uint32  NumDeferredContexts 
)

Creates render device and device contexts for Direct3D12-based engine implementation.

Parameters
[in]CreationAttribs- Engine creation attributes.
[out]ppDevice- Address of the memory location where pointer to the created device will be written
[out]ppContexts- Address of the memory location where pointers to the contexts will be written. The new immediate context goes at position 0. If NumDeferredContexts > 0, pointers to the deferred contexts are written afterwards.
[in]NumDeferredContexts- Number of deferred contexts. If non-zero number of deferred contexts is requested, pointers to the contexts are written to ppContexts array starting at position 1
void Diligent::CreateDeviceAndSwapChainGL ( const EngineCreationAttribs CreationAttribs,
IRenderDevice **  ppDevice,
IDeviceContext **  ppImmediateContext,
const SwapChainDesc SCDesc,
void *  pNativeWndHandle,
Diligent::ISwapChain **  ppSwapChain 
)

Creates render device, device context and swap chain for OpenGL/GLES-based engine implementation.

Parameters
[in]CreationAttribs- Engine creation attributes.
[out]ppDevice- Address of the memory location where pointer to the created device will be written.
[out]ppImmediateContext- Address of the memory location where pointers to the immediate context will be written.
[in]SCDesc- Swap chain description.
[in]pNativeWndHandle- Platform-specific native handle of the window the swap chain will be associated with:
  • On Win32 platform, this should be window handle (HWND)
  • On Android platform, this should be a pointer to the native window (ANativeWindow*)
[out]ppSwapChain- Address of the memory location where pointer to the new swap chain will be written.
void Diligent::CreateSwapChainD3D11 ( IRenderDevice pDevice,
Diligent::IDeviceContext pImmediateContext,
const SwapChainDesc SCDesc,
void *  pNativeWndHandle,
ISwapChain **  ppSwapChain 
)

Creates a swap chain for Direct3D11-based engine implementation.

Parameters
[in]pDevice- Pointer to the render device
[in]pImmediateContext- Pointer to the immediate device context
[in]SCDesc- Swap chain description
[in]pNativeWndHandle- Platform-specific native handle of the window the swap chain will be associated with:
  • On Win32 platform, this should be window handle (HWND)
  • On Universal Windows Platform, this should be reference to the core window (Windows::UI::Core::CoreWindow)
[out]ppSwapChain- Address of the memory location where pointer to the new swap chain will be written
void Diligent::CreateSwapChainD3D12 ( IRenderDevice pDevice,
IDeviceContext pImmediateContext,
const SwapChainDesc SCDesc,
void *  pNativeWndHandle,
ISwapChain **  ppSwapChain 
)

Creates a swap chain for Direct3D12-based engine implementation.

Parameters
[in]pDevice- Pointer to the render device
[in]pImmediateContext- Pointer to the immediate device context
[in]SCDesc- Swap chain description
[in]pNativeWndHandle- Platform-specific native handle of the window the swap chain will be associated with:
  • On Win32 platform, this should be window handle (HWND)
  • On Universal Windows Platform, this should be reference to the core window (Windows::UI::Core::CoreWindow)
[out]ppSwapChain- Address of the memory location where pointer to the new swap chain will be written
void Diligent::LoadGraphicsEngineD3D11 ( CreateDeviceAndContextsD3D11Type &  CreateDeviceFunc,
CreateSwapChainD3D11Type &  CreateSwapChainFunc 
)

Loads Direct3D11-based engine implementation and exports factory functions.

Parameters
[out]CreateDeviceFunc- Pointer to the function that creates render device and device contexts. See CreateDeviceAndContextsD3D11().
[out]CreateSwapChainFunc- Pointer to the function that creates swap chain. See CreateSwapChainD3D11().
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
void Diligent::LoadGraphicsEngineD3D12 ( CreateDeviceAndContextsD3D12Type &  CreateDeviceFunc,
CreateSwapChainD3D12Type &  CreateSwapChainFunc 
)

Loads Direct3D12-based engine implementation and exports factory functions.

Parameters
[out]CreateDeviceFunc- Pointer to the function that creates render device and device contexts. See CreateDeviceAndContextsD3D12().
[out]CreateSwapChainFunc- Pointer to the function that creates swap chain. See CreateSwapChainD3D12().
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
void Diligent::LoadGraphicsEngineOpenGL ( CreateDeviceAndSwapChainGLType &  CreateDeviceFunc)

Loads OpenGL-based engine implementation and exports factory functions.

Parameters
[out]CreateDeviceFunc- Pointer to the function that creates render device, device context and swap chain. See 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.