Compartilhar via


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
D3DX9Effect.h
Biblioteca
D3dx9.lib

Confira também

ID3DXEffectCompiler

D3DXGetShaderConstantTable