|
Diligent Engine API Reference
|
Base implementation of a render device. More...
Public Member Functions | |
| RenderDeviceBase (IReferenceCounters *pRefCounters, 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 |
| pRefCounters | - reference counters object that controls the lifetime of this render device |
| 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 |