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 |
|
Libreria |
|
Vedi anche