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


Метод IDirect3DResource9::SetPrivateData (d3d9.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 d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3DResource9