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


Функция D3DXCreateEffectEx

Создает эффект на основе описания ASCII или двоичного эффекта. Эта функция является расширенной версией D3DXCreateEffect , которая позволяет приложению контролировать, какие параметры игнорируются системой эффектов.

Синтаксис

HRESULT D3DXCreateEffectEx(
  _In_        LPDIRECT3DDEVICE9 pDevice,
  _In_        LPCVOID           pSrcData,
  _In_        UINT              SrcDataLen,
  _In_  const D3DXMACRO         *pDefines,
  _In_        LPD3DXINCLUDE     pInclude,
  _In_        LPCSTR            pSkipConstants,
  _In_        DWORD             Flags,
  _In_        LPD3DXEFFECTPOOL  pPool,
  _Out_       LPD3DXEFFECT      *ppEffect,
  _Out_       LPD3DXBUFFER      *ppCompilationErrors
);

Параметры

pDevice [in]

Тип: LPDIRECT3DDEVICE9

Указатель на устройство, которое создаст эффект. См. раздел IDirect3DDevice9.

pSrcData [in]

Тип: LPCVOID

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

SrcDataLen [in]

Тип: UINT

Длина данных эффекта в байтах.

pDefines [in]

Тип: const D3DXMACRO*

Необязательный массив структур D3DXMACRO с завершением NULL, описывающий определения препроцессора. Это значение может иметь значение NULL.

pВключение [in]

Тип: LPD3DXINCLUDE

Необязательный указатель интерфейса ID3DXInclude, используемый для обработки директив #include. Если это значение равно NULL, #includes будет учитываться при компиляции из файла или вызвать ошибку при компиляции из ресурса или памяти.

pSkipConstants [in]

Тип: LPCSTR

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

Флаги [в]

Тип: DWORD

Если pSrcData содержит текстовый эффект, флаги могут быть сочетанием флагов D3DXSHADER и D3DXFX ; В противном случае pSrcData содержит двоичный эффект, и единственными флагами являются флаги D3DXFX. Компилятор Direct3D 10 HLSL теперь используется по умолчанию. Дополнительные сведения см. в разделе Effect-Compiler Tool .

pPool [in]

Тип: LPD3DXEFFECTPOOL

Указатель на объект ID3DXEffectPool , используемый для общих параметров. Если это значение равно NULL, параметры не будут совместно использоваться.

ppEffect [out]

Тип: LPD3DXEFFECT*

Возвращает указатель на интерфейс ID3DXEffect .

ppCompilationErrors [out]

Тип: LPD3DXBUFFER*

Возвращает буфер, содержащий список ошибок компиляции.

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

Тип: HRESULT

Если функция выполняется успешно, возвращаемое значение будет D3D_OK. Если функция завершается сбоем, возвращаемое значение может быть одним из следующих: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA E_OUTOFMEMORY.

Комментарии

Эта функция является расширенной версией D3DXCreateEffect , которая позволяет приложению указать, какие константы эффекта будут управляться приложением. Константы, управляемые приложением, игнорируются системой эффектов. То есть приложение отвечает за инициализацию константы, а также сохранение и восстановление ее состояния при необходимости.

Эта функция проверяет каждую константу в pSkipConstants, чтобы увидеть следующее:

  • Он привязан к постоянному регистру.
  • Он используется только в коде шейдера HLSL.

Если константе присвоено имя в строке, отсутствующей в эффекте, она игнорируется.

Требования

Требование Значение
Заголовок
D3DX9Effect.h
Библиотека
D3dx9.lib

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

Функции эффектов

D3DXCreateEffectFromFileEx

D3DXCreateEffectFromResourceEx