Funzione D3DXCompileShaderFromFile

Compilare un file shader.

Nota

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

 

Sintassi

HRESULT D3DXCompileShaderFromFile(
  _In_        LPCTSTR             pSrcFile,
  _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

pSrcFile [in]

Tipo: LPCTSTR

Puntatore a una stringa che specifica il nome file.

pDefines [in]

Tipo: const D3DXMACRO*

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

pInclude [in]

Tipo: LPD3DXINCLUDE

Puntatore di interfaccia facoltativo, ID3DXInclude, da usare per gestire le direttive di #include. Se questo valore è NULL, #includes verrà rispettato quando si compila da un file o si verificherà un errore quando viene compilato da una risorsa o da una memoria.

pFunctionName [in]

Tipo: LPCSTR

Puntatore alla funzione di ingresso del punto di ingresso shader in cui inizia l'esecuzione.

pProfile [in]

Tipo: LPCSTR

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

Flag [in]

Tipo: DWORD

Compilare le opzioni identificate da vari flag. Il compilatore Direct3D 10 HLSL è ora il valore predefinito. 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 sulla tabella dei simboli e del debug incorporato.

ppErrorMsgs [out]

Tipo: LPD3DXBUFFER*

Restituisce un buffer contenente un elenco di errori e avvisi rilevati durante la compilazione. Questi sono gli 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 usata per accedere alle costanti shader. Questo valore può essere NULL. Se si compila l'applicazione come indirizzo di grandi dimensioni,ovvero si usa l'opzione del linker /LARGEADDRESSAWARE per gestire indirizzi superiori a 2 GB, non è possibile usare questo parametro e deve 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 di D3DXCONSTTABLE_LARGEADDRESSAWARE al parametro Flags per specificare l'accesso fino a 4 GB di spazio indirizzi virtuale.

Valore restituito

Tipo: HRESULT

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

E_NOTIMPL viene restituito se si usano shader 1.1 (vs_1_1 e ps_1_1).

Requisiti

Requisito Valore
Intestazione
D3DX9Shader.h
Libreria
D3dx9.lib

Vedi anche

Funzioni shader

D3DXCompileShader

D3DXCompileShaderFromResource