IDirect3DResource9::SetPrivateData 方法 (d3d9helper.h)
将数据与供应用程序而不是 Direct3D 使用的资源相关联。 数据按值传递,多个数据集可与单个资源关联。
语法
HRESULT SetPrivateData(
[in] REFGUID refguid,
[in] const void *pData,
[in] DWORD SizeOfData,
[in] DWORD Flags
);
参数
[in] refguid
类型: REFGUID
对标识要设置的私有数据的全局唯一标识符的引用。
[in] pData
类型: const void*
指向缓冲区的指针,该缓冲区包含要与资源关联的数据。
[in] SizeOfData
类型: DWORD
pData 上的缓冲区大小(以字节为单位)。
[in] Flags
类型: DWORD
描述要传递的数据类型或向应用程序指示在资源更改时数据应失效的值。
项 | 说明 |
---|---|
(无) | 如果未指定任何标志,Direct3D 会分配内存来保存缓冲区中的数据,并将数据复制到新缓冲区。 Direct3D 分配的缓冲区会根据需要自动释放。 |
D3DSPD_IUNKNOWN | pData 中的数据是指向 IUnknown 接口的 指针。 SizeOfData 必须设置为指向 IUnknown 的指针的大小,即 size of (IUnknown*) 。 当私有数据被销毁时,Direct3D 通过 pData 自动调用IUnknown。 使用相同 GUID 对 IDirect3DResource9::SetPrivateData 的后续调用、对 IDirect3DResource9::FreePrivateData 的后续调用或释放 IDirect3D9 对象时,将销毁私有数据。 有关详细信息,请参阅“备注”。 |
返回值
类型: HRESULT
如果方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是以下值之一:D3DERR_INVALIDCALL、E_OUTOFMEMORY。
注解
Direct3D 不管理 pData 上的内存。 如果此缓冲区是动态分配的,则调用应用程序负责释放内存。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d9helper.h (包括 D3D9.h) |
Library | D3D9.lib |