Поделиться через


Метод 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 автоматически вызываетIUnknown через pData при уничтожении личных данных. Частные данные будут уничтожены последующим вызовом IDirect3DResource9::SetPrivateData с тем же ИДЕНТИФИКАТОРом GUID, последующим вызовом IDirect3DResource9::FreePrivateData или при освобождении объекта IDirect3D9 . Дополнительные сведения см. в подразделе "Примечания".

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. В случае сбоя метода возвращается одно из следующих значений: D3DERR_INVALIDCALL E_OUTOFMEMORY.

Комментарии

Direct3D не управляет памятью в pData. Если этот буфер был динамически выделен, это ответственность за освобождение памяти лежит на вызывающем приложении.

Требования

Требование Значение
Целевая платформа Windows
Header d3d9helper.h (включая D3D9.h)
Библиотека D3D9.lib

См. также раздел

IDirect3DResource9