Compartir a través de


Función D3DX11CompileFromFile

Nota

La biblioteca de utilidades D3DX (D3DX 9, D3DX 10 y D3DX 11) está en desuso para Windows 8 y no es compatible con las aplicaciones de la Tienda Windows.

Nota

En lugar de usar esta función, se recomienda compilar sin conexión mediante el compilador de línea de comandos Fxc.exe o usar una de las API de compilación de HLSL, como la API D3DCompileFromFile .

Compile un sombreador o un efecto a partir de un archivo.

Sintaxis

HRESULT D3DX11CompileFromFile(
  _In_        LPCTSTR            pSrcFile,
  _In_  const D3D10_SHADER_MACRO *pDefines,
  _In_        LPD3D10INCLUDE     pInclude,
  _In_        LPCSTR             pFunctionName,
  _In_        LPCSTR             pProfile,
  _In_        UINT               Flags1,
  _In_        UINT               Flags2,
  _In_        ID3DX11ThreadPump  *pPump,
  _Out_       ID3D10Blob         **ppShader,
  _Out_       ID3D10Blob         **ppErrorMsgs,
  _Out_       HRESULT            *pHResult
);

Parámetros

pSrcFile [in]

Tipo: LPCTSTR

Nombre del archivo que contiene el código del sombreador. Si la configuración del compilador requiere Unicode, el tipo de datos LPCTSTR se resuelve en LPCWSTR. De lo contrario, el tipo de datos se resuelve en LPCSTR.

pDefines [in]

Tipo: const D3D10_SHADER_MACRO*

Opcional. Puntero a una matriz de definiciones de macros (vea D3D10_SHADER_MACRO). La última estructura de la matriz actúa como terminador y debe tener todos los miembros establecidos en 0. Si no se usa, establezca pDefines en NULL.

pInclude [in]

Tipo: LPD3D10INCLUDE

Opcional. Puntero a una interfaz para controlar archivos de inclusión. Si se establece en NULL , se producirá un error de compilación si un sombreador contiene un #include.

pFunctionName [in]

Tipo: LPCSTR

Nombre de la función de punto de entrada del sombreador donde comienza la ejecución del sombreador. Al compilar un efecto, D3DX11CompileFromFile omite pFunctionName; Se recomienda establecer pFunctionName en NULL porque es una buena práctica de programación establecer un parámetro de puntero en NULL si la función llamada no la usará.

pProfile [in]

Tipo: LPCSTR

Cadena que especifica el modelo de sombreador; puede ser cualquier perfil en el modelo de sombreador 2, el modelo de sombreador 3, el modelo de sombreador 4 o el modelo de sombreador 5. El perfil también puede ser para el tipo de efecto (por ejemplo, fx_4_1).

Flags1 [in]

Tipo: UINT

Marcas de compilación del sombreador.

Flags2 [in]

Tipo: UINT

Marcas de compilación de efectos. Al compilar un sombreador y no un archivo de efecto, D3DX11CompileFromFile omite Flags2; Se recomienda establecer Flags2 en cero porque es una buena práctica de programación establecer un parámetro que no sea de puntero en cero si la función llamada no la usará.

pPump [in]

Tipo: ID3DX11ThreadPump*

Puntero a una interfaz de bomba de subproceso (consulta ID3DX11ThreadPump Interface). Use NULL para especificar que esta función no debe devolverse hasta que se complete.

ppShader [out]

Tipo: ID3D10Blob**

Puntero a la memoria que contiene el sombreador compilado, así como cualquier información incrustada de depuración y tabla de símbolos.

ppErrorMsgs [out]

Tipo: ID3D10Blob**

Puntero a la memoria que contiene una lista de errores y advertencias que se produjeron durante la compilación. Estos errores y advertencias son idénticos a la salida de depuración de un depurador.

pHResult [out]

Tipo: HRESULT*

Puntero al valor devuelto. Puede ser NULL. Si pPump no es NULL, pHResult debe ser una ubicación de memoria válida hasta que se complete la ejecución asincrónica.

Valor devuelto

Tipo: HRESULT

El valor devuelto es uno de los valores enumerados en Códigos de retorno de Direct3D 11.

D3DX11CompileFromFile devuelve E_INVALIDARG si se proporciona un valor distinto de NULL al parámetro pHResult cuando se proporciona NULL al parámetro pPump . Para obtener más información sobre esta situación, vea Comentarios.

Comentarios

Para obtener más información sobre D3DX11CompileFromFile, vea D3DCompile.

Debe proporcionar NULL al parámetro pHResult si también proporciona NULL al parámetro pPump . De lo contrario, no puede crear un sombreador mediante el código del sombreador compilado al que D3DX11CompileFromFile devuelve en la memoria a la que apunta el parámetro ppShader . Para crear un sombreador a partir del código del sombreador conforme, llame a uno de los siguientes métodos de interfaz ID3D11Device :

Además, si proporciona un valor distinto de NULL a pHResult cuando se proporciona NULL a pPump, D3DX11CompileFromFile devuelve el código de error E_INVALIDARG.

Requisitos

Requisito Value
Encabezado
D3DX11async.h
Biblioteca
D3DX11.lib

Consulte también

Funciones D3DX