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


Функция D3DCompileFromFile (d3dcompiler.h)

Примечание Этот API можно использовать для разработки приложений Магазина Windows, но его нельзя использовать в приложениях, которые вы отправляете в Магазин Windows. См. раздел "Компиляция шейдеров для UWP" в примечаниях для D3DCompile2.
 
Компилирует код HLSL (Microsoft High Level Shader Language) в байт-код для заданного целевого объекта.

Синтаксис

HRESULT D3DCompileFromFile(
  [in]            LPCWSTR                pFileName,
  [in, optional]  const D3D_SHADER_MACRO *pDefines,
  [in, optional]  ID3DInclude            *pInclude,
  [in]            LPCSTR                 pEntrypoint,
  [in]            LPCSTR                 pTarget,
  [in]            UINT                   Flags1,
  [in]            UINT                   Flags2,
  [out]           ID3DBlob               **ppCode,
  [out, optional] ID3DBlob               **ppErrorMsgs
);

Параметры

[in] pFileName

Указатель на константную строку, завершающуюся нулевым значением, которая содержит имя файла, содержащего код шейдера.

[in, optional] pDefines

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

[in, optional] pInclude

Необязательный указатель на интерфейс ID3DInclude , используемый компилятором для обработки включаемого файла. Если для этого параметра задано значение NULL , а шейдер содержит #include, возникает ошибка компиляции. Можно передать макрос D3D_COMPILE_STANDARD_FILE_INCLUDE , который является указателем на обработчик включения по умолчанию. Этот обработчик включения по умолчанию включает файлы, относящиеся к текущему каталогу.

#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)

[in] pEntrypoint

Указатель на константную строку, завершающуюся null, которая содержит имя функции точки входа шейдера, с которой начинается выполнение шейдера. При компиляции эффекта D3DCompileFromFile игнорирует pEntrypoint; Рекомендуется задать для pEntrypoint значение NULL , так как рекомендуется задать для параметра указателя значение NULL , если вызываемая функция не будет его использовать.

[in] pTarget

Указатель на константную строку, завершающуюся нулевым значением, которая указывает целевой объект шейдера или набор компонентов шейдера для компиляции. Целевым объектом шейдера может быть модель шейдера (например, модель шейдера 2, модель шейдера 3, модель шейдера 4 или модель шейдера 5 и более поздних версий). Целевой объект также может быть типом эффекта (например, fx_4_1). Сведения о целевых объектах, которые поддерживаются различными профилями, см. в разделе Указание целевых объектов компилятора.

[in] Flags1

Сочетание параметров компиляции шейдера, объединенных с помощью побитовой операции OR . Полученное значение указывает, как компилятор компилирует код HLSL.

[in] Flags2

Сочетание параметров компиляции эффекта, объединенных с помощью побитовой операции ИЛИ . Полученное значение указывает, как компилятор компилирует эффект. При компиляции шейдера, а не файла эффекта , D3DCompileFromFile игнорирует Flags2; Рекомендуется задать для параметра Flags2 значение 0, так как рекомендуется задать для параметра, не являющегося указателем, равным нулю, если вызываемая функция не будет использовать его.

[out] ppCode

Указатель на переменную, получающую указатель на интерфейс ID3DBlob , который можно использовать для доступа к скомпилированному коду.

[out, optional] ppErrorMsgs

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

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

Возвращает один из кодов возврата Direct3D 11.

Комментарии

Примечание Файл D3dcompiler_44.dll или более поздней версии содержит функцию компилятора D3DCompileFromFile .
 

Требования

Требование Значение
Целевая платформа Windows
Header d3dcompiler.h
Библиотека D3DCompiler.lib
DLL D3DCompiler_47.dll

См. также

Функции