Diligent Engine API Reference
Public Member Functions | List of all members
Diligent::IRenderDeviceD3D12 Class Referenceabstract

Interface to the render device object implemented in D3D12. More...

Inheritance diagram for Diligent::IRenderDeviceD3D12:
Diligent::IRenderDevice

Public Member Functions

virtual ID3D12Device * GetD3D12Device ()=0
 Returns ID3D12Device interface of the internal Direct3D12 device object. More...
 
virtual Uint64 GetNextFenceValue ()=0
 Returns the fence value that will be signaled by the GPU command queue next.
 
virtual Bool IsFenceSignaled (Uint64 FenceValue)=0
 Checks if the fence value has been signaled by the GPU. True means that all associated work has been finished.
 
virtual void FinishFrame ()=0
 Should be called at the end of the frame when attached to existing D3D12 device Otherwise the method is automatically called before present.
 
virtual void CreateTextureFromD3DResource (ID3D12Resource *pd3d12Texture, ITexture **ppTexture)=0
 Creates a texture object from native d3d12 resource. More...
 
virtual void CreateBufferFromD3DResource (ID3D12Resource *pd3d12Buffer, const BufferDesc &BuffDesc, IBuffer **ppBuffer)=0
 Creates a buffer object from native d3d12 resoruce. More...
 
- Public Member Functions inherited from Diligent::IRenderDevice
virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void CreateBuffer (const BufferDesc &BuffDesc, const BufferData &BuffData, IBuffer **ppBuffer)=0
 Creates a new buffer object. More...
 
virtual void CreateShader (const ShaderCreationAttribs &CreationAttribs, IShader **ppShader)=0
 Creates a new shader object. More...
 
virtual void CreateTexture (const TextureDesc &TexDesc, const TextureData &Data, ITexture **ppTexture)=0
 Creates a new texture object. More...
 
virtual void CreateSampler (const SamplerDesc &SamDesc, ISampler **ppSampler)=0
 Creates a new sampler object. More...
 
virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping)=0
 Creates a new resource mapping. More...
 
virtual void CreatePipelineState (const PipelineStateDesc &PipelineDesc, IPipelineState **ppPipelineState)=0
 Creates a new pipeline state object. More...
 
virtual const DeviceCapsGetDeviceCaps () const =0
 Gets the device capabilities, see Diligent::DeviceCaps for details.
 
virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat)=0
 Returns the basic texture format information. More...
 
virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)=0
 Returns the extended texture format information. More...
 

Detailed Description

Interface to the render device object implemented in D3D12.

Member Function Documentation

◆ CreateBufferFromD3DResource()

virtual void Diligent::IRenderDeviceD3D12::CreateBufferFromD3DResource ( ID3D12Resource *  pd3d12Buffer,
const BufferDesc BuffDesc,
IBuffer **  ppBuffer 
)
pure virtual

Creates a buffer object from native d3d12 resoruce.

Parameters
[in]pd3d12Buffer- Pointer to the native d3d12 buffer resource
[in]BuffDesc- Buffer description. The system can recover buffer size, but the rest of the fields need to be populated by the client as they cannot be recovered from d3d12 resource description
[out]ppBuffer- Address of the memory location where the pointer to the buffer interface will be stored. The function calls AddRef(), so that the new object will contain one reference.

◆ CreateTextureFromD3DResource()

virtual void Diligent::IRenderDeviceD3D12::CreateTextureFromD3DResource ( ID3D12Resource *  pd3d12Texture,
ITexture **  ppTexture 
)
pure virtual

Creates a texture object from native d3d12 resource.

Parameters
[in]pd3d12Texture- pointer to the native D3D12 texture
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one refernce.

◆ GetD3D12Device()

virtual ID3D12Device* Diligent::IRenderDeviceD3D12::GetD3D12Device ( )
pure virtual

Returns ID3D12Device interface of the internal Direct3D12 device object.

The method does NOT call AddRef() on the returned interface, so Release() must not be called.