Funzione D3DXCompileShaderFromResource
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 D3DXCompileShaderFromResource(
_In_ HMODULE hSrcModule,
_In_ LPCSTR pSrcResource,
_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
-
hSrcModule [in]
-
Tipo: HMODULE
Handle in un modulo contenente la descrizione dell'effetto. Se questo parametro è NULL, verrà usato il modulo corrente.
-
pSrcResource [in]
-
Tipo: LPCSTR
Puntatore a una stringa che specifica il nome della risorsa.
-
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 durante la compilazione da un file o si verifica 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_OUTOFMEMORY.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|
Vedi anche