Función D3DXCompileShader

Compile un archivo de sombreador.

Nota

En lugar de usar esta función heredada, se recomienda compilar sin conexión mediante el compilador de línea de comandos Fxc.exe o usar la API D3DCompile .

 

Sintaxis

HRESULT D3DXCompileShader(
  _In_        LPCSTR              pSrcData,
  _In_        UINT                srcDataLen,
  _In_  const D3DXMACRO           *pDefines,
  _In_        LPD3DXINCLUDE       pInclude,
  _In_        LPCSTR              pFunctionName,
  _In_        LPCSTR              pProfile,
  _In_        DWORD               Flags,
  _Out_       LPD3DXBUFFER        *ppShader,
  _Out_       LPD3DXBUFFER        *ppErrorMsgs,
  _Out_       LPD3DXCONSTANTTABLE *ppConstantTable
);

Parámetros

pSrcData [in]

Tipo: LPCSTR

Puntero a una cadena que contiene el sombreador.

srcDataLen [in]

Tipo: UINT

Longitud de los datos en bytes.

pDefines [in]

Tipo: const D3DXMACRO*

Matriz opcional terminada en NULL de estructuras D3DXMACRO . Este valor puede ser NULL.

pInclude [in]

Tipo: LPD3DXINCLUDE

Puntero de interfaz opcional, ID3DXInclude, que se usará para controlar directivas de #include. Si este valor es NULL, #includes se respetará al compilar desde un archivo o provocará un error cuando se compile desde un recurso o memoria.

pFunctionName [in]

Tipo: LPCSTR

Puntero a una cadena que contiene el nombre de la función de punto de entrada del sombreador donde comienza la ejecución.

pProfile [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]

Tipo: LPD3DXBUFFER*

Devuelve un búfer que contiene el sombreador creado. Este búfer contiene el código del sombreador compilado, así como cualquier información insertada de depuración y tabla de símbolos.

ppErrorMsgs [out]

Tipo: LPD3DXBUFFER*

Devuelve un búfer que contiene una lista de errores y advertencias que se encontraron durante la compilación. Estos son los mismos mensajes que muestra el depurador al ejecutarse en modo de depuración. Este valor puede ser NULL.

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 la función se realiza correctamente, el valor devuelto se D3D_OK. Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Requisitos

Requisito Value
Encabezado
D3DX9Shader.h
Biblioteca
D3dx9.lib

Consulte también

Funciones del sombreador

D3DXCompileShaderFromFile

D3DXCompileShaderFromResource