Diligent Engine API Reference: Diligent::IRenderDeviceD3D12 Class Reference

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:

## 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 DeviceCaps & | GetDeviceCaps () const =0
| Gets the device capabilities, see Diligent::DeviceCaps for details.
virtual const TextureFormatInfo & | GetTextureFormatInfo (TEXTURE_FORMAT TexFormat)=0
| Returns the basic texture format information. More...
virtual const TextureFormatInfoExt & | GetTextureFormatInfoExt (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.