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

Interface to the buffer object implemented in D3D12. More...

Inheritance diagram for Diligent::IBufferD3D12:
Diligent::IBuffer Diligent::IDeviceObject Diligent::IObject Diligent::RefCountedObject< IBufferD3D12, FixedBlockMemoryAllocator > Diligent::ObjectBase< IBufferD3D12, FixedBlockMemoryAllocator > Diligent::DeviceObjectBase< IBufferD3D12, BufferDesc, FixedBlockMemoryAllocator > Diligent::BufferBase< IBufferD3D12, BufferViewD3D12Impl, FixedBlockMemoryAllocator, FixedBlockMemoryAllocator > Diligent::BufferD3D12Impl

Public Member Functions

virtual ID3D12Resource * GetD3D12Buffer (size_t &DataStartByteOffset, Uint32 ContextId)=0
 Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object. More...
 
- Public Member Functions inherited from Diligent::IBuffer
virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual const BufferDescGetDesc () const =0
 Returns the buffer description used to create the object.
 
virtual void UpdateData (class IDeviceContext *pContext, Uint32 Offset, Uint32 Size, const PVoid pData)=0
 Updates the data in the buffer. More...
 
virtual void CopyData (IDeviceContext *pContext, IBuffer *pSrcBuffer, Uint32 SrcOffset, Uint32 DstOffset, Uint32 Size)=0
 Copies the data from other buffer. More...
 
virtual void Map (IDeviceContext *pContext, MAP_TYPE MapType, Uint32 MapFlags, PVoid &pMappedData)=0
 Maps the buffer. More...
 
virtual void Unmap (IDeviceContext *pContext, MAP_TYPE MapType)=0
 Unmaps the previously mapped buffer. More...
 
virtual void CreateView (const struct BufferViewDesc &ViewDesc, class IBufferView **ppView)=0
 Creates a new buffer view. More...
 
virtual IBufferViewGetDefaultView (BUFFER_VIEW_TYPE ViewType)=0
 Returns the pointer to the default view. More...
 
- Public Member Functions inherited from Diligent::IObject
virtual Atomics::Long AddRef ()=0
 Increments the number of strong references by 1. More...
 
virtual Atomics::Long Release ()=0
 Decrements the number of strong references by 1 and destroys the object when the counter reaches zero. More...
 
virtual IReferenceCountersGetReferenceCounters () const =0
 Returns the pointer to IReferenceCounters interface of the associated reference counters object. The metod does NOT increment the number of strong references to the returned object.
 

Detailed Description

Interface to the buffer object implemented in D3D12.

Member Function Documentation

virtual ID3D12Resource* Diligent::IBufferD3D12::GetD3D12Buffer ( size_t &  DataStartByteOffset,
Uint32  ContextId 
)
pure virtual

Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.

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

Parameters
[in]DataStartByteOffset- Offset from the beginning of the buffer to the start of the data. This parameter is required for dynamic buffers, which are suballocated in a dynamic upload heap
[in]ContextId- Id of the context within which address of the buffer is requested.

Implemented in Diligent::BufferD3D12Impl.