Функция 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.
Если константе присвоено имя в строке, отсутствующей в эффекте, она игнорируется.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел