Función D3DCompile (d3dcompiler.h)
Compile el código HLSL o un archivo de efecto en código de bytes para un destino determinado.
Sintaxis
HRESULT D3DCompile(
[in] LPCVOID pSrcData,
[in] SIZE_T SrcDataSize,
[in, optional] LPCSTR pSourceName,
[in, optional] const D3D_SHADER_MACRO *pDefines,
[in, optional] ID3DInclude *pInclude,
[in, optional] LPCSTR pEntrypoint,
[in] LPCSTR pTarget,
[in] UINT Flags1,
[in] UINT Flags2,
[out] ID3DBlob **ppCode,
[out, optional] ID3DBlob **ppErrorMsgs
);
Parámetros
[in] pSrcData
Tipo: LPCVOID
Puntero a datos de sombreador no compilados; código ASCII HLSL o un efecto compilado.
[in] SrcDataSize
Tipo: SIZE_T
Longitud de pSrcData.
[in, optional] pSourceName
Tipo: LPCSTR
Puede usar este parámetro para las cadenas que especifican mensajes de error. Si no se usa, establezca en NULL.
[in, optional] pDefines
Tipo: const D3D_SHADER_MACRO*
Matriz opcional de estructuras de D3D_SHADER_MACRO que definen macros de sombreador. Cada definición de macro contiene un nombre y una definición terminada en NULL. Si no se usa, establezca en NULL. La última estructura de la matriz actúa como terminador y debe tener todos los miembros establecidos en NULL.
[in, optional] pInclude
Tipo: ID3DInclude*
Opcional. Puntero a un id3DIncluido para controlar archivos de inclusión. Si se establece en NULL , se producirá un error de compilación si un sombreador contiene un #include. Puede pasar la macro D3D_COMPILE_STANDARD_FILE_INCLUDE , que es un puntero a un controlador de inclusión predeterminado. Este controlador de inclusión predeterminado incluye archivos relativos al directorio actual y a los archivos que son relativos al directorio del archivo de origen inicial. Al usar D3D_COMPILE_STANDARD_FILE_INCLUDE, debe especificar el nombre del archivo de origen en el parámetro pSourceName ; el compilador derivará el directorio relativo inicial de pSourceName.
#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)
[in, optional] pEntrypoint
Tipo: LPCSTR
Nombre de la función de punto de entrada del sombreador donde comienza la ejecución del sombreador. Al compilar con un perfil fx (por ejemplo, fx_4_0, fx_5_0, etc.), D3DCompile omite pEntrypoint. En este caso, se recomienda establecer pEntrypoint 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á. Para todos los demás perfiles de sombreador, se requiere un punto de conexión pEntry válido.
[in] pTarget
Tipo: LPCSTR
Cadena que especifica el destino del sombreador o el conjunto de características de sombreador en las que se va a compilar. El destino del sombreador puede ser el modelo de sombreador 2, el modelo de sombreador 3, el modelo de sombreador 4 o el modelo de sombreador 5. El destino también puede ser un tipo de efecto (por ejemplo, fx_4_1). Para obtener información sobre los destinos que admiten varios perfiles, vea Especificar destinos del compilador.
[in] Flags1
Tipo: UINT
Marcas definidas por constantes de compilación D3D.
[in] Flags2
Tipo: UINT
Marcas definidas por constantes de efecto de compilación D3D. Al compilar un sombreador y no un archivo de efecto, D3DCompile 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á.
[out] ppCode
Tipo: ID3DBlob**
Puntero a una variable que recibe un puntero a la interfaz ID3DBlob que puede usar para acceder al código compilado.
[out, optional] ppErrorMsgs
Tipo: ID3DBlob**
Puntero a una variable que recibe un puntero a la interfaz ID3DBlob que puede usar para acceder a los mensajes de error del compilador o NULL si no hay errores.
Valor devuelto
Tipo: HRESULT
Devuelve uno de los códigos de retorno de Direct3D 11.
Comentarios
La diferencia entre D3DCompile y D3DCompile2 es que el último método toma algunos parámetros opcionales que se pueden usar para controlar algunos aspectos de cómo se genera el código de bytes. Si no se requiere esta flexibilidad adicional, no hay ninguna ganancia de rendimiento al usar D3DCompile2.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3dcompiler.h |
Library | d3dcompiler.lib |
Archivo DLL | d3dcompiler_47.dll |