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
D3DX9Effect.h
Biblioteca
D3dx9.lib

Consulte también

ID3DXEffectCompiler

D3DXGetShaderConstantTable