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


Функция D3D10CreateEffectFromMemory (d3d10effect.h)

Создает ID3D10Effect из буфера, содержащего скомпилированный эффект.

Синтаксис

HRESULT D3D10CreateEffectFromMemory(
  [in]  void             *pData,
  [in]  SIZE_T           DataLength,
  [in]  UINT             FXFlags,
  [in]  ID3D10Device     *pDevice,
  [in]  ID3D10EffectPool *pEffectPool,
  [out] ID3D10Effect     **ppEffect
);

Параметры

[in] pData

Тип: void*

Указатель на скомпилированный эффект.

[in] DataLength

Тип: SIZE_T

Длина pData.

[in] FXFlags

Тип: UINT

Параметры компиляции эффектов.

[in] pDevice

Тип: ID3D10Device*

Указатель на устройство (см . id3D10Device Interface).

[in] pEffectPool

Тип: ID3D10EffectPool*

Необязательный элемент. Указатель на пространство памяти для переменных эффекта, которые являются общими для эффектов (см. интерфейс ID3D10EffectPool).

[out] ppEffect

Тип: ID3D10Effect**

Указатель на интерфейс ID3D10Effect , содержащий созданный эффект.

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

Тип: HRESULT

Возвращает один из следующих кодов возврата Direct3D 10.

Комментарии

Примечание

Связывание d3d10_1.lib предоставляет реализацию в d3d10_1.dll, которая является реализацией модели программирования Direct3D10.1. Связывание d3d10.lib предоставляет реализацию в d3d10.dll, который является реализацией модели программирования Direct3D10.

Этот метод используется для создания объекта интерфейса ID3D10Effect из эффекта, который был скомпилирован перед средой выполнения и загружен в память. Сведения о предварительной компиляции эффекта см. в разделе Автономная компиляция. Сведения о загрузке и компиляции FX-файла ASCII см. в разделе Компиляция эффекта (Direct3D 10).

Примеры

Компиляция эффекта

fxc.exe /T fx_4_0 /Fo Tutorial03.fxo Tutorial03.fx      

Загрузите скомпилированный эффект во время выполнения.

ifstream is("tutorial03.fxo", ios::binary);
is.seekg(0,ios_base::end);
streampos pos = is.tellg();
is.seekg(0,ios_base::beg);
char * effectBuffer = new char[pos];
is.read(effectBuffer,pos);
	
hr = D3D10CreateEffectFromMemory((void *)effectBuffer,pos,0,g_pd3dDevice,NULL,&g_pEffect);

Требования

   
Целевая платформа Windows
Header d3d10effect.h
Библиотека d3d10_1.lib, d3d10.lib
DLL d3d10_1.dll, d3d10.dll

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

Функции эффектов (Direct3D 10)