Função D3DXCompileShader
Compile um arquivo de sombreador.
Observação
Em vez de usar essa função herdada, recomendamos que você compile offline usando o compilador de linha de comando Fxc.exe ou use a API D3DCompile .
Sintaxe
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
Ponteiro para uma cadeia de caracteres que contém o sombreador.
-
srcDataLen [in]
-
Tipo: UINT
Comprimento dos dados em bytes.
-
pDefines [in]
-
Tipo: const D3DXMACRO*
Uma matriz opcional terminada em NULL de estruturas D3DXMACRO . Esse valor pode ser NULL.
-
pInclude [in]
-
Tipo: LPD3DXINCLUDE
Ponteiro de interface opcional, ID3DXInclude, a ser usado para lidar com diretivas de #include. Se esse valor for NULL, #includes será respeitado ao compilar de um arquivo ou causará um erro quando compilado de um recurso ou memória.
-
pFunctionName [in]
-
Tipo: LPCSTR
Ponteiro para uma cadeia de caracteres que contém o nome da função de ponto de entrada do sombreador em que a execução começa.
-
pProfile [in]
-
Tipo: LPCSTR
Ponteiro para um perfil de sombreador que determina o conjunto de instruções do sombreador. Consulte D3DXGetVertexShaderProfile ou D3DXGetPixelShaderProfile para obter uma lista dos perfis disponíveis.
-
Sinalizadores [in]
-
Tipo: DWORD
Compile opções identificadas por vários sinalizadores. O compilador HLSL do Direct3D 10 agora é o padrão. Consulte Sinalizadores D3DXSHADER para obter detalhes.
-
ppShader [out]
-
Tipo: LPD3DXBUFFER*
Retorna um buffer que contém o sombreador criado. Esse buffer contém o código do sombreador compilado, bem como qualquer informação de tabela de símbolo e depuração inserida.
-
ppErrorMsgs [out]
-
Tipo: LPD3DXBUFFER*
Retorna um buffer que contém uma listagem de erros e avisos que foram encontrados durante a compilação. Essas são as mesmas mensagens que o depurador exibe ao executar no modo de depuração. Esse valor pode ser NULL.
-
ppConstantTable [out]
-
Tipo: LPD3DXCONSTANTTABLE*
Retorna uma interface ID3DXConstantTable , que pode ser usada para acessar constantes de sombreador. Esse valor pode ser NULL. Se você compilar seu aplicativo como reconhecimento de endereço grande (ou seja, usar a opção do vinculador /LARGEADDRESSAWARE para lidar com endereços maiores que 2 GB), não poderá usar esse parâmetro e deverá defini-lo como NULL. Em vez disso, você deve usar a função D3DXGetShaderConstantTableEx para recuperar a tabela de constante de sombreador inserida dentro do sombreador. Nesta chamada D3DXGetShaderConstantTableEx , você deve passar o sinalizador D3DXCONSTTABLE_LARGEADDRESSAWARE para o parâmetro Flags para especificar para acessar até 4 GB de espaço de endereço virtual.
Valor retornado
Tipo: HRESULT
Se a função for bem-sucedida, o valor retornado será D3D_OK. Se a função falhar, o valor retornado poderá ser um dos seguintes: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA E_OUTOFMEMORY.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também