Diligent Engine API Reference
|
Base implementation of a render device. More...
Public Member Functions | |
RenderDeviceBase (IMemoryAllocator &RawMemAllocator, Uint32 NumDeferredContexts, size_t TextureObjSize, size_t TexViewObjSize, size_t BufferObjSize, size_t BuffViewObjSize, size_t ShaderObjSize, size_t SamplerObjSize, size_t PSOSize, size_t SRBSize) | |
virtual void | CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override final |
Implementation of IRenderDevice::CreateResourceMapping(). | |
virtual const DeviceCaps & | GetDeviceCaps () const override final |
Implementation of IRenderDevice::GetDeviceCaps(). | |
virtual const TextureFormatInfo & | GetTextureFormatInfo (TEXTURE_FORMAT TexFormat) override final |
Implementation of IRenderDevice::GetTextureFormatInfo(). | |
virtual const TextureFormatInfoExt & | GetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat) override final |
Implementation of IRenderDevice::GetTextureFormatInfoExt(). | |
void | SetImmediateContext (IDeviceContext *pImmediateContext) |
Set weak reference to the immediate context. | |
void | SetDeferredContext (size_t Ctx, IDeviceContext *pDeferredCtx) |
Set weak reference to the deferred context. | |
size_t | GetNumDeferredContexts () const |
Returns number of deferred contexts. | |
Protected Member Functions | |
template<typename TObjectType , typename TObjectDescType , typename TObjectConstructor > | |
void | CreateDeviceObject (const Char *ObjectTypeName, const TObjectDescType &Desc, TObjectType **ppObject, TObjectConstructor ConstructObject) |
Helper template function to facilitate device object creation. More... | |
Protected Attributes | |
StateObjectsRegistry< SamplerDesc > | m_SamplersRegistry |
Sampler state registry. | |
RefCntWeakPtr< IDeviceContext > | m_wpImmediateContext |
Weak reference to the immediate context. Immediate context holds strong reference to the device, so we must use weak reference to avoid circular dependencies. | |
std::vector< RefCntWeakPtr< IDeviceContext >, STDAllocatorRawMem< RefCntWeakPtr< IDeviceContext > > > | m_wpDeferredContexts |
Weak references to deferred contexts. | |
FixedBlockMemoryAllocator | m_TexObjAllocator |
Allocator for texture objects. | |
FixedBlockMemoryAllocator | m_TexViewObjAllocator |
Allocator for texture view objects. | |
FixedBlockMemoryAllocator | m_BufObjAllocator |
Allocator for buffer objects. | |
FixedBlockMemoryAllocator | m_BuffViewObjAllocator |
Allocator for buffer view objects. | |
FixedBlockMemoryAllocator | m_ShaderObjAllocator |
Allocator for shader objects. | |
FixedBlockMemoryAllocator | m_SamplerObjAllocator |
Allocator for sampler objects. | |
FixedBlockMemoryAllocator | m_PSOAllocator |
Allocator for pipeline state objects. | |
FixedBlockMemoryAllocator | m_SRBAllocator |
Allocator for shader resource binding objects. | |
FixedBlockMemoryAllocator | m_ResMappingAllocator |
Allocator for resource mapping objects. | |
Base implementation of a render device.
BaseInterface | - base interface that this class will inheret. |
|
inline |
RawMemAllocator | - allocator that will be used to allocate memory for all device objects (including render device itself) |
NumDeferredContexts | - number of deferred device contexts |
TextureObjSize | - size of the texture object, in bytes |
TexViewObjSize | - size of the texture view object, in bytes |
BufferObjSize | - size of the buffer object, in bytes |
BuffViewObjSize | - size of the buffer view object, in bytes |
ShaderObjSize | - size of the shader object, in bytes |
SamplerObjSize | - size of the sampler object, in bytes |
PSOSize | - size of the pipeline state object, in bytes |
SRBSize | - size of the shader resource binding object, in bytes |
|
protected |
Helper template function to facilitate device object creation.
TObjectType | - type of the object being created (IBuffer, ITexture, etc.) |
TObjectDescType | - type of the object description structure (BufferDesc, TextureDesc, etc.) |
TObjectConstructor | - type of the function that constructs the object |
ObjectTypeName | - string name of the object type ("buffer", "texture", etc.) |
Desc | - object description |
ppObject | - memory address where the pointer to the created object will be stored |
ConstructObject | - function that constructs the object |