Função D3DCompile (d3dcompiler.h)
Compile o código HLSL ou um arquivo de efeito no código de byte para um determinado destino.
Sintaxe
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
Um ponteiro para dados de sombreador não compilados; código ASCII HLSL ou um efeito compilado.
[in] SrcDataSize
Tipo: SIZE_T
Comprimento de pSrcData.
[in, optional] pSourceName
Tipo: LPCSTR
Você pode usar esse parâmetro para cadeias de caracteres que especificam mensagens de erro. Se não for usado, defina como NULL.
[in, optional] pDefines
Tipo: const D3D_SHADER_MACRO*
Uma matriz opcional de estruturas de D3D_SHADER_MACRO que definem macros de sombreador. Cada definição de macro contém um nome e uma definição terminada em nulo. Se não for usado, defina como NULL. A última estrutura na matriz serve como um terminador e deve ter todos os membros definidos como NULL.
[in, optional] pInclude
Tipo: ID3DInclude*
Opcional. Um ponteiro para um ID3DInclude para lidar com arquivos de inclusão. Definir isso como NULL causará um erro de compilação se um sombreador contiver um #include. Você pode passar a macro D3D_COMPILE_STANDARD_FILE_INCLUDE , que é um ponteiro para um manipulador de inclusão padrão. Esse manipulador de inclusão padrão inclui arquivos relativos ao diretório atual e arquivos relativos ao diretório do arquivo de origem inicial. Ao usar D3D_COMPILE_STANDARD_FILE_INCLUDE, você deve especificar o nome do arquivo de origem no parâmetro pSourceName ; o compilador derivará o diretório relativo inicial do pSourceName.
#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)
[in, optional] pEntrypoint
Tipo: LPCSTR
O nome da função de ponto de entrada do sombreador em que a execução do sombreador começa. Quando você compila usando um perfil fx (por exemplo, fx_4_0, fx_5_0 e assim por diante), D3DCompile ignora pEntrypoint. Nesse caso, recomendamos que você defina pEntrypoint como NULL porque é uma boa prática de programação definir um parâmetro de ponteiro como NULL se a função chamada não o usar. Para todos os outros perfis de sombreador, um pEntrypoint válido é necessário.
[in] pTarget
Tipo: LPCSTR
Uma cadeia de caracteres que especifica o destino do sombreador ou o conjunto de recursos de sombreador para compilar. O destino do sombreador pode ser o modelo de sombreador 2, o modelo de sombreador 3, o modelo de sombreador 4 ou o modelo de sombreador 5. O destino também pode ser um tipo de efeito (por exemplo, fx_4_1). Para obter informações sobre os destinos aos quais vários perfis dão suporte, consulte Especificando destinos do compilador.
[in] Flags1
Tipo: UINT
Sinalizadores definidos por constantes de compilação D3D.
[in] Flags2
Tipo: UINT
Sinalizadores definidos por constantes de efeito de compilação D3D. Quando você compila um sombreador e não um arquivo de efeito, D3DCompile ignora Flags2; Recomendamos que você defina Flags2 como zero porque é uma boa prática de programação definir um parâmetro nãopointer como zero se a função chamada não o usar.
[out] ppCode
Tipo: ID3DBlob**
Um ponteiro para uma variável que recebe um ponteiro para a interface ID3DBlob que você pode usar para acessar o código compilado.
[out, optional] ppErrorMsgs
Tipo: ID3DBlob**
Um ponteiro para uma variável que recebe um ponteiro para a interface ID3DBlob que você pode usar para acessar mensagens de erro do compilador ou NULL se não houver erros.
Retornar valor
Tipo: HRESULT
Retorna um dos códigos de retorno do Direct3D 11.
Comentários
A diferença entre D3DCompile e D3DCompile2 é que o último método usa alguns parâmetros opcionais que podem ser usados para controlar alguns aspectos de como o código de byte é gerado. Se essa flexibilidade extra não for necessária, não haverá ganho de desempenho usando D3DCompile2.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | d3dcompiler.h |
Biblioteca | d3dcompiler.lib |
DLL | d3dcompiler_47.dll |