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 :
- CreateComputeShader
- CreateDomainShader
- CreateGeometryShader
- CreateGeometryShaderWithStreamOutput
- CreateHullShader
- CreatePixelShader
- CreateVertexShader
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 |
|
Biblioteca |
|