ID3DDestructionNotifier::RegisterDestructionCallback 方法 (d3dcommon.h)

注册一个用户定义的回调,以在销毁创建此 ID3DDestructionNotifier 的对象时调用。

语法

HRESULT RegisterDestructionCallback(
  PFN_DESTRUCTION_CALLBACK callbackFn,
  void                     *pData,
  UINT                     *pCallbackID
);

参数

callbackFn

类型: PFN_DESTRUCTION_CALLBACK

销毁对象时要调用的用户定义回调。

pData

类型: void*

调用时要传递给 callbackFn 的数据

pCallbackID

类型: UINT*

指向 UINT 的指针,用于标识回调,并传递给 以取消注册回调。

返回值

类型: HRESULT

如果此函数成功,则返回 S_OK

备注

此接口用于记录 ID3D12Resource 的销毁的示例。

#include <d3dcommon.h> // for ID3DDestructionNotifier

ComPtr<ID3D12Resource> resource = ...;

ComPtr<ID3DDestructionNotifier> notifier;
if (SUCCEEDED(resource.As(&notifier)))
{
    UINT callbackId;
    ThrowIfFailed(notifier->RegisterDestructionCallback(LogResourceReleased, nullptr, &callbackId));
}

void LogResourceReleased(void* context)
{
    OutputDebugString("Resource released!\n");
}

要求

   
目标平台 Windows
标头 d3dcommon.h

另请参阅

ID3DDestructionNotifier

ID3DDestructionNotifier::UnregisterDestructionCallback