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 指標的大小,也就是 sizeof (IUnknown*) 。 Direct3D 會在私人數據損毀時自動透過 pData 呼叫IUnknown。 私人數據將會由後續呼叫 IDirect3DResource9::SetPrivateData 與相同的 GUID、 IDirect3DResource9::FreePrivateData 的後續呼叫,或 釋放 IDirect3D9 物件時終結。 如需詳細資訊,請參閱<備註>。 |
傳回值
類型: HRESULT
如果方法成功,傳回值會D3D_OK。 如果方法失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL,E_OUTOFMEMORY。
備註
Direct3D 不會管理 pData 上的記憶體。 如果動態配置此緩衝區,則呼叫端應用程式負責釋放記憶體。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | d3d9helper.h (包含 D3D9.h) |
程式庫 | D3D9.lib |