public static uint Release(D3D12MA_IUnknownImpl *pThis) { using var debugGlobalMutexLock = D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK(); uint newRefCount = Interlocked.Decrement(ref pThis->m_RefCount); if (newRefCount == 0) { pThis->ReleaseThis(); } return(newRefCount); }
public static int QueryInterface(D3D12MA_IUnknownImpl *pThis, [NativeTypeName("REFIID")] Guid *riid, void **ppvObject) { if (ppvObject is null) { return(E_POINTER); } if (riid->Equals(IID_IUnknown)) { _ = Interlocked.Increment(ref pThis->m_RefCount); *ppvObject = pThis; return(S_OK); } *ppvObject = null; return(E_NOINTERFACE); }
private static void ReleaseThis(D3D12MA_IUnknownImpl *pThis) { D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (pThis->lpVtbl == Vtbl)); ((D3D12MA_Allocator *)pThis)->ReleaseThis(); }
public static uint AddRef(D3D12MA_IUnknownImpl *pThis) { return(Interlocked.Increment(ref pThis->m_RefCount)); }