Método ID3DXEffectCompiler::CompileShader
Compila un sombreador a partir de un efecto que contiene una o varias funciones.
Sintaxis
HRESULT CompileShader(
[in] D3DXHANDLE hFunction,
[in] LPCSTR pTarget,
[in] DWORD Flags,
[out, retval] LPD3DXBUFFER *ppShader,
[out, retval] LPD3DXBUFFER *ppErrorMsgs,
[out] LPD3DXCONSTANTTABLE *ppConstantTable
);
Parámetros
-
hFunction [in]
-
Tipo: D3DXHANDLE
Identificador único de la función que se va a compilar. Este valor no debe ser NULL. Consulta Identificadores (Direct3D 9).
-
pTarget [in]
-
Tipo: LPCSTR
Puntero a un perfil de sombreador que determina el conjunto de instrucciones del sombreador. Consulte D3DXGetVertexShaderProfile o D3DXGetPixelShaderProfile para obtener una lista de los perfiles disponibles.
-
Marcas [in]
-
Tipo: DWORD
Compile las opciones identificadas por varias marcas. El compilador HLSL de Direct3D 10 ahora es el valor predeterminado. Consulte Marcas D3DXSHADER para obtener más información.
-
ppShader [out, retval]
-
Tipo: LPD3DXBUFFER*
Búfer que contiene el sombreador compilado. El sombreador del compilador es una matriz de DWORD. Para obtener más información sobre el acceso al búfer, vea ID3DXBuffer.
-
ppErrorMsgs [out, retval]
-
Tipo: LPD3DXBUFFER*
Búfer que contiene al menos el primer mensaje de error de compilación que se produjo. Esto incluye errores del compilador de efectos y errores de compilación de lenguaje de alto nivel. Para obtener más información sobre el acceso al búfer, vea ID3DXBuffer.
-
ppConstantTable [out]
-
Tipo: LPD3DXCONSTANTTABLE*
Devuelve una interfaz ID3DXConstantTable , que se puede usar para acceder a las constantes del sombreador. Este valor puede ser NULL. Si compila la aplicación con reconocimiento de direcciones grandes (es decir, usa la opción del enlazador /LARGEADDRESSAWARE para controlar direcciones de más de 2 GB), no puede usar este parámetro y debe establecerlo en NULL. En su lugar, debe usar la función D3DXGetShaderConstantTableEx para recuperar la tabla de constantes de sombreador incrustada dentro del sombreador. En esta llamada D3DXGetShaderConstantTableEx , debe pasar la marca D3DXCONSTTABLE_LARGEADDRESSAWARE al parámetro Flags para especificar el acceso a hasta 4 GB de espacio de direcciones virtual.
Valor devuelto
Tipo: HRESULT
Si el método se realiza correctamente, el valor devuelto es S_OK.
Si los argumentos no son válidos, el método devolverá D3DERR_INVALIDCALL.
Si se produce un error en el método, se E_FAIL el valor devuelto.
Comentarios
Se pueden especificar destinos para sombreadores de vértices, sombreadores de píxeles y funciones de relleno de texturas.
Destinos | Functions |
---|---|
Destinos del sombreador de vértices | vs_1_1, vs_2_0, vs_2_sw, vs_3_0 |
Destinos del sombreador de píxeles | ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw, ps_3_0 |
Destinos de relleno de textura | tx_0, tx_1 |
Este método compila un sombreador a partir de una función escrita en un lenguaje similar a C. Para obtener más información, consulte HLSL.
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|
Consulte también