Diligent Engine
Loading...
Searching...
No Matches
Diligent::RefCountedObject< Base > Class Template Reference

Base class for all reference counting objects. More...

#include <RefCountedObjectImpl.hpp>

Inheritance diagram for Diligent::RefCountedObject< Base >:
Diligent::ObjectBase< IFileStream > Diligent::ObjectBase< IDataBlob > Diligent::ObjectBase< IObject > Diligent::ObjectBase< IAsyncTask > Diligent::ObjectBase< IThreadPool > Diligent::ObjectBase< IArchiver > Diligent::ObjectBase< ISerializedPipelineState > Diligent::ObjectBase< IPipelineResourceSignature > Diligent::ObjectBase< ISerializedShader > Diligent::ObjectBase< IDearchiver > Diligent::ObjectBase< IResourceMapping > Diligent::ObjectBase< ICommandQueueD3D12 > Diligent::ObjectBase< ICommandQueueVk > Diligent::ObjectBase< IGPUUploadManager > Diligent::ObjectBase< IShader > Diligent::ObjectBase< IRenderStateCache > Diligent::ObjectBase< IBufferSuballocation > Diligent::ObjectBase< IBufferSuballocator > Diligent::ObjectBase< IBytecodeCache > Diligent::ObjectBase< ITextureAtlasSuballocation > Diligent::ObjectBase< IDynamicTextureAtlas > Diligent::ObjectBase< IShaderSourceInputStreamFactory > Diligent::ObjectBase< IVertexPoolAllocation > Diligent::ObjectBase< IVertexPool > Diligent::ObjectBase< IHLSL2GLSLConversionStream > Diligent::ObjectBase< IHLSL2GLSLConverter > Diligent::ObjectBase< ISuperResolution > Diligent::ObjectBase< ISuperResolutionFactory > Diligent::ObjectBase< InterfaceType > Diligent::ObjectBase< IRadientAssetManager > Diligent::ObjectBase< IRadientBackend > Diligent::ObjectBase< IRadientEngine > Diligent::ObjectBase< IRadientView > Diligent::ObjectBase< IRadientSceneImporter > Diligent::ObjectBase< IRadientRenderTarget > Diligent::ObjectBase< IRadientRenderer > Diligent::ObjectBase< IRadientScene > Diligent::ObjectBase< IRadientSceneWriter > Diligent::ObjectBase< IRenderStateNotationLoader > Diligent::ObjectBase< IRenderStateNotationParser > Diligent::ObjectBase< ITextureLoader >

Public Member Functions

template<class TPreObjectDestroy>
ReferenceCounterValueType Release (TPreObjectDestroy &&PreObjectDestroy)

Detailed Description

template<typename Base>
class Diligent::RefCountedObject< Base >

Base class for all reference counting objects.

Member Function Documentation

◆ Release()

template<typename Base>
template<class TPreObjectDestroy>
ReferenceCounterValueType Diligent::RefCountedObject< Base >::Release ( TPreObjectDestroy && PreObjectDestroy)
inline

Internal lifetime hook used by implementations that must run cleanup after the strong reference count reaches zero but before the object is detached from its reference counters.

Note
The callback must be noexcept and must not AddRef(), Lock() this object through weak references, publish the raw object, or otherwise attempt object resurrection.