Diligent Engine
 
Loading...
Searching...
No Matches
Diligent.IObject Struct Referenceabstract

Base interface for all dynamic objects in the engine. More...

#include <Object.h>

Inheritance diagram for Diligent.IObject:
Diligent::IArchiver Diligent::IArchiverFactory Diligent::IAsyncTask Diligent::IBufferSuballocation Diligent::IBufferSuballocator Diligent::IBytecodeCache Diligent::ICommandQueue Diligent::IDataBlob Diligent::IDearchiver Diligent.IDeviceContext Diligent::IDeviceObject Diligent::IDynamicTextureAtlas Diligent.IEngineFactory Diligent::IFileStream Diligent::IHLSL2GLSLConverter Diligent.IRenderDevice Diligent::IRenderStateCache Diligent::IRenderStateNotationLoader Diligent::IRenderStateNotationParser Diligent.IResourceMapping Diligent::IShaderResourceBinding Diligent.IShaderResourceVariable Diligent::IShaderSourceInputStreamFactory Diligent::ISwapChain Diligent::ITextureAtlasSuballocation Diligent::ITextureLoader Diligent::ITextureUploader Diligent::IThreadPool Diligent::IVertexPool Diligent::IVertexPoolAllocation

Public Member Functions

virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0
 

Detailed Description

Base interface for all dynamic objects in the engine.

Member Function Documentation

◆ AddRef()

virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Diligent.IObject.AddRef ( )
pure virtual

Increments the number of strong references by 1.

Remarks
This method is equivalent to GetReferenceCounters()->AddStrongRef().
The method is thread-safe and does not require explicit synchronization.
Returns
The number of strong references after incrementing the counter.
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter.

Implemented in Diligent::ShaderVariableBase< ThisImplType, VarManagerType, ResourceVariableBaseInterface >, Diligent::ShaderVariableBase< BuffSRVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< BuffUAVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ConstBuffBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ImageBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< SamplerBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableD3D12Impl, ShaderVariableManagerD3D12, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableD3D12Impl, ShaderVariableManagerD3D12, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableVkImpl, ShaderVariableManagerVk, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableVkImpl, ShaderVariableManagerVk, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableWebGPUImpl, ShaderVariableManagerWebGPU, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableWebGPUImpl, ShaderVariableManagerWebGPU, IShaderResourceVariable >, Diligent::ShaderVariableBase< StorageBufferBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< TexSRVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< TextureBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< TexUAVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerGL >, and Diligent::ShaderVariableBase< UniformBuffBindInfo, ShaderVariableManagerGL >.

◆ GetReferenceCounters()

virtual IReferenceCounters *DILIGENT_CALL_TYPE Diligent.IObject.GetReferenceCounters ( ) const
pure virtual

Returns the pointer to IReferenceCounters interface of the associated reference counters object. The method does NOT increment the number of strong references to the returned object.

Implemented in Diligent::ShaderVariableBase< ThisImplType, VarManagerType, ResourceVariableBaseInterface >, Diligent::ShaderVariableBase< BuffSRVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< BuffUAVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ConstBuffBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ImageBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< SamplerBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableD3D12Impl, ShaderVariableManagerD3D12, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableD3D12Impl, ShaderVariableManagerD3D12, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableVkImpl, ShaderVariableManagerVk, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableVkImpl, ShaderVariableManagerVk, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableWebGPUImpl, ShaderVariableManagerWebGPU, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableWebGPUImpl, ShaderVariableManagerWebGPU, IShaderResourceVariable >, Diligent::ShaderVariableBase< StorageBufferBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< TexSRVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< TextureBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< TexUAVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerGL >, and Diligent::ShaderVariableBase< UniformBuffBindInfo, ShaderVariableManagerGL >.

◆ QueryInterface()

virtual void DILIGENT_CALL_TYPE Diligent.IObject.QueryInterface ( const INTERFACE_ID & IID,
IObject ** ppInterface )
pure virtual

Queries the specific interface.

Parameters
[in]IID- Unique identifier of the requested interface.
[out]ppInterface- Memory address where the pointer to the requested interface will be written. If the interface is not supported, null pointer will be returned.
Remarks
The method increments the number of strong references by 1. The interface must be released by a call to Release() method when it is no longer needed.

Implemented in Diligent::ShaderVariableBase< ThisImplType, VarManagerType, ResourceVariableBaseInterface >, Diligent::ShaderVariableBase< BuffSRVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< BuffUAVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ConstBuffBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ImageBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< SamplerBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableD3D12Impl, ShaderVariableManagerD3D12, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableD3D12Impl, ShaderVariableManagerD3D12, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableVkImpl, ShaderVariableManagerVk, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableVkImpl, ShaderVariableManagerVk, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableWebGPUImpl, ShaderVariableManagerWebGPU, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableWebGPUImpl, ShaderVariableManagerWebGPU, IShaderResourceVariable >, Diligent::ShaderVariableBase< StorageBufferBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< TexSRVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< TextureBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< TexUAVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerGL >, and Diligent::ShaderVariableBase< UniformBuffBindInfo, ShaderVariableManagerGL >.

◆ Release()

virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Diligent.IObject.Release ( )
pure virtual

Decrements the number of strong references by 1 and destroys the object when the counter reaches zero.

Remarks
This method is equivalent to GetReferenceCounters()->ReleaseStrongRef().
The method is thread-safe and does not require explicit synchronization.
Returns
The number of strong references after decrementing the counter.
Note
In a multithreaded environment, the returned number may not be reliable as other threads may simultaneously change the actual value of the counter. The only reliable value is 0 as the object is destroyed when the last strong reference is released.

Implemented in Diligent::ShaderVariableBase< ThisImplType, VarManagerType, ResourceVariableBaseInterface >, Diligent::ShaderVariableBase< BuffSRVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< BuffUAVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ConstBuffBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ImageBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< SamplerBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableD3D12Impl, ShaderVariableManagerD3D12, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableD3D12Impl, ShaderVariableManagerD3D12, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ShaderVariableVkImpl, ShaderVariableManagerVk, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableVkImpl, ShaderVariableManagerVk, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableWebGPUImpl, ShaderVariableManagerWebGPU, IShaderResourceVariable >, Diligent::ShaderVariableBase< ShaderVariableWebGPUImpl, ShaderVariableManagerWebGPU, IShaderResourceVariable >, Diligent::ShaderVariableBase< StorageBufferBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< TexSRVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< TextureBindInfo, ShaderVariableManagerGL >, Diligent::ShaderVariableBase< TexUAVBindInfo, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerD3D11, IShaderResourceVariableD3D >, Diligent::ShaderVariableBase< ThisImplType, ShaderVariableManagerGL >, and Diligent::ShaderVariableBase< UniformBuffBindInfo, ShaderVariableManagerGL >.