Condividi tramite


Funzione D3DXCompileShader

Compilare un file shader.

Nota

Invece di usare questa funzione legacy, è consigliabile compilare offline usando il compilatore della riga di comando Fxc.exe o usare l'API D3DCompile .

 

Sintassi

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
);

Parametri

pSrcData [in]

Tipo: LPCSTR

Puntatore a una stringa contenente lo shader.

srcDataLen [in]

Tipo: UINT

Lunghezza dei dati in byte.

pDefines [in]

Tipo: const D3DXMACRO*

Matrice facoltativa null con terminazione di strutture D3DXMACRO . Questo valore può essere NULL.

pInclude [in]

Tipo: LPD3DXINCLUDE

Puntatore di interfaccia facoltativo, ID3DXInclude, da usare per la gestione delle direttive #include. Se questo valore è NULL, #includes verrà rispettato durante la compilazione da un file o genererà un errore durante la compilazione da una risorsa o da una memoria.

pFunctionName [in]

Tipo: LPCSTR

Puntatore a una stringa contenente il nome della funzione del punto di ingresso dello shader in cui inizia l'esecuzione.

pProfile [in]

Tipo: LPCSTR

Puntatore a un profilo shader che determina il set di istruzioni dello shader. Per un elenco dei profili disponibili, vedere D3DXGetVertexShaderProfile o D3DXGetPixelShaderProfile .

Flag [in]

Tipo: DWORD

Opzioni di compilazione identificate da vari flag. Il compilatore Direct3D 10 HLSL è ora l'impostazione predefinita. Per informazioni dettagliate, vedere Flag D3DXSHADER .

ppShader [out]

Tipo: LPD3DXBUFFER*

Restituisce un buffer contenente lo shader creato. Questo buffer contiene il codice shader compilato, nonché tutte le informazioni di debug e tabella dei simboli incorporate.

ppErrorMsgs [out]

Tipo: LPD3DXBUFFER*

Restituisce un buffer contenente un elenco di errori e avvisi rilevati durante la compilazione. Si tratta degli stessi messaggi visualizzati dal debugger durante l'esecuzione in modalità di debug. Questo valore può essere NULL.

ppConstantTable [out]

Tipo: LPD3DXCONSTANTTABLE*

Restituisce un'interfaccia ID3DXConstantTable , che può essere utilizzata per accedere alle costanti shader. Questo valore può essere NULL. Se si compila l'applicazione con riconoscimento degli indirizzi di grandi dimensioni, ovvero si usa l'opzione del linker /LARGEADDRESSAWARE per gestire indirizzi di dimensioni superiori a 2 GB, non è possibile usare questo parametro e impostarlo su NULL. È invece necessario usare la funzione D3DXGetShaderConstantTableEx per recuperare la tabella costante shader incorporata all'interno dello shader. In questa chiamata D3DXGetShaderConstantTableEx , è necessario passare il flag D3DXCONSTTABLE_LARGEADDRESSAWARE al parametro Flags per specificare di accedere a un massimo di 4 GB di spazio indirizzi virtuale.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, il valore restituito viene D3D_OK. Se la funzione ha esito negativo, il valore restituito può essere uno dei seguenti: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Requisiti

Requisito Valore
Intestazione
D3DX9Shader.h
Libreria
D3dx9.lib

Vedi anche

Funzioni shader

D3DXCompileShaderFromFile

D3DXCompileShaderFromResource