Método ID3DXEffectCompiler::CompileShader
Compila um sombreador de um efeito que contém uma ou mais funções.
Sintaxe
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 exclusivo para a função a ser compilada. Esse valor não deve ser NULL. Consulte Identificadores (Direct3D 9).
-
pTarget [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 as 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, retval]
-
Tipo: LPD3DXBUFFER*
Buffer que contém o sombreador compilado. O sombreador do compilador é uma matriz de DWORDs. Para obter mais informações sobre como acessar o buffer, consulte ID3DXBuffer.
-
ppErrorMsgs [out, retval]
-
Tipo: LPD3DXBUFFER*
Buffer que contém pelo menos a primeira mensagem de erro de compilação que ocorreu. Isso inclui erros do compilador de efeito e erros de compilação de linguagem de alto nível. Para obter mais informações sobre como acessar o buffer, consulte ID3DXBuffer.
-
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 manipular 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 o método for bem-sucedido, o valor retornado será S_OK.
Se os argumentos forem inválidos, o método retornará D3DERR_INVALIDCALL.
Se o método falhar, o valor retornado será E_FAIL.
Comentários
Os destinos podem ser especificados para sombreadores de vértice, sombreadores de pixel e funções de preenchimento de textura.
Destinos | Funções |
---|---|
Destinos do sombreador de vértice | vs_1_1, vs_2_0, vs_2_sw, vs_3_0 |
Destinos do sombreador de pixel | ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw, ps_3_0 |
Destinos de preenchimento de textura | tx_0, tx_1 |
Esse método compila um sombreador de uma função que é escrita em uma linguagem semelhante a C. Para obter mais informações, consulte HLSL.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também