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


Функция D3D10CompileShader (d3d10shader.h)

Компиляция шейдера HLSL .

Примечание Вместо этой функции используйте D3DX10CompileFromMemory .
 

Синтаксис

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

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

Функции шейдера