Функция D3D10CompileShader (d3d10shader.h)
Компиляция шейдера HLSL .
Синтаксис
HRESULT D3D10CompileShader(
[in] LPCSTR pSrcData,
[in] SIZE_T SrcDataSize,
[in] LPCSTR pFileName,
[in] const D3D10_SHADER_MACRO *pDefines,
[in] LPD3D10INCLUDE pInclude,
[in] LPCSTR pFunctionName,
[in] LPCSTR pProfile,
[in] UINT Flags,
[out] ID3D10Blob **ppShader,
[out] ID3D10Blob **ppErrorMsgs
);
Параметры
[in] pSrcData
Тип: LPCSTR
Указатель на строку, содержащую исходный код шейдера.
[in] SrcDataSize
Тип: SIZE_T
Размер pSrcData в байтах.
[in] pFileName
Тип: LPCSTR
Имя файла, содержащего код шейдера.
[in] pDefines
Тип: const D3D10_SHADER_MACRO*
Необязательный элемент. Указатель на массив определений макросов (см . D3D10_SHADER_MACRO).
Последняя структура в массиве служит признаком конца и должна иметь для всех членов значение 0.
Если значение pDefines не используется, задайте значение NULL.
[in] pInclude
Тип: LPD3D10INCLUDE*
Необязательный элемент. Указатель на интерфейс ИНТЕРФЕЙСА ID3D10Include для обработки включаемые файлы. Установка значения NULL приведет к ошибке компиляции, если шейдер содержит #include.
[in] pFunctionName
Тип: LPCSTR
Имя функции точки входа шейдера, с которой начинается выполнение шейдера.
[in] pProfile
Тип: LPCSTR
Строка, указывающая профиль или модель шейдера .
[in] Flags
Тип: UINT
Параметры компиляции шейдера.
[out] ppShader
Тип: ID3D10Blob**
Указатель на интерфейс ID3D10Blob , содержащий скомпилированный шейдер, а также все встроенные сведения об отладке и таблице символов.
[out] ppErrorMsgs
Тип: ID3D10Blob**
Указатель на интерфейс ID3D10Blob , содержащий список ошибок и предупреждений, возникших во время компиляции. Эти ошибки и предупреждения идентичны выходным данным отладки отладчика.
Возвращаемое значение
Тип: HRESULT
Возвращает один из следующих кодов возврата Direct3D 10.
Комментарии
Эта функция использует версию компилятора HLSL, выпущенную в пакете SDK DirectX за ноябрь 2006 г.
Эта функция реализует два способа предоставления входных данных шейдера. Или используйте pSrcData и SrcDataLen , чтобы указать строку, содержащую код шейдера HLSL (и задайте для pFileNameзначение NULL), или используйте pFileName , чтобы указать имя шейдера или файла эффекта (и задать для pSrcDataзначение NULL).
Чтобы настроить этап программируемых конвейеров, скомпилируйте шейдер, а затем привяжите шейдер к соответствующему этапу конвейера. Например, ниже приведен пример компиляции геометрического шейдера (см. раздел Компиляция геометрического шейдера).
Эта функция D3D10CompileShader вызывает версию компилятора шейдера, которая поставляется при каждом выпуске операционной системы. Более актуальная версия компилятора шейдера поставляется, когда поставляется пакет SDK DirectX, доступ к которому можно получить из D3DX, вызвав версию функции точки входа компилятора шейдера, например D3DX10CompileFromFile. Предпочтительнее использовать функции точки входа D3DX, чтобы обеспечить использование последней версии компилятора шейдера, если вы будете распространять распространяемые библиотеки DirectX.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d10shader.h |
Библиотека | D3D10.lib |
DLL | D3D10.dll |