Funzione D3DX11CompileFromFile
Nota
La libreria di utilità D3DX (D3DX 9, D3DX 10 e D3DX 11) è deprecata per Windows 8 e non è supportata per le app di Windows Store.
Nota
Invece di usare questa funzione, è consigliabile compilare offline usando il compilatore della riga di comando Fxc.exe o usare una delle API di compilazione HLSL, come l'API D3DCompileFromFile .
Compilare uno shader o un effetto da un file.
Sintassi
HRESULT D3DX11CompileFromFile(
_In_ LPCTSTR pSrcFile,
_In_ const D3D10_SHADER_MACRO *pDefines,
_In_ LPD3D10INCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ UINT Flags1,
_In_ UINT Flags2,
_In_ ID3DX11ThreadPump *pPump,
_Out_ ID3D10Blob **ppShader,
_Out_ ID3D10Blob **ppErrorMsgs,
_Out_ HRESULT *pHResult
);
Parametri
-
pSrcFile [in]
-
Tipo: LPCTSTR
Nome del file che contiene il codice dello shader. Se le impostazioni del compilatore richiedono Unicode, il tipo di dati LPCTSTR viene risolto in LPCWSTR. In caso contrario, il tipo di dati viene risolto in LPCSTR.
-
pDefines [in]
-
Tipo: const D3D10_SHADER_MACRO*
Facoltativa. Puntatore a una matrice di definizioni di macro (vedere D3D10_SHADER_MACRO). L'ultima struttura della matrice funge da carattere di terminazione e deve avere tutti i membri impostati su 0. Se non viene usato, impostare pDefines su NULL.
-
pInclude [in]
-
Tipo: LPD3D10INCLUDE
Facoltativa. Puntatore a un'interfaccia per la gestione dei file di inclusione. Se uno shader contiene un #include, l'impostazione su NULL causerà un errore di compilazione.
-
pFunctionName [in]
-
Tipo: LPCSTR
Nome della funzione del punto di ingresso shader in cui inizia l'esecuzione dello shader. Quando si compila un effetto, D3DX11CompileFromFile ignora pFunctionName; È consigliabile impostare pFunctionName su NULL perché è consigliabile impostare un parametro puntatore su NULL se la funzione chiamata non la userà.
-
pProfile [in]
-
Tipo: LPCSTR
Stringa che specifica il modello di shader; può essere qualsiasi profilo nel modello shader 2, nel modello shader 3, nel modello di shader 4 o nel modello di shader 5. Il profilo può anche essere per il tipo di effetto (ad esempio, fx_4_1).
-
Flags1 [in]
-
Tipo: UINT
Flag di compilazione dello shader.
-
Flags2 [in]
-
Tipo: UINT
Flag di compilazione dell'effetto. Quando si compila uno shader e non un file di effetto, D3DX11CompileFromFile ignora Flags2; È consigliabile impostare Flags2 su zero perché è consigliabile impostare un parametro non puntatore su zero se la funzione chiamata non la userà.
-
pPump [in]
-
Tipo: ID3DX11ThreadPump*
Puntatore a un'interfaccia della pompa di thread (vedere INTERFACCIA ID3DX11ThreadPump). Usare NULL per specificare che questa funzione non deve restituire finché non viene completata.
-
ppShader [out]
-
Tipo: ID3D10Blob**
Puntatore alla memoria che contiene lo shader compilato, nonché qualsiasi informazione di debug e tabella dei simboli incorporata.
-
ppErrorMsgs [out]
-
Tipo: ID3D10Blob**
Puntatore alla memoria che contiene un elenco di errori e avvisi che si sono verificati durante la compilazione. Questi errori e avvisi sono identici all'output di debug da un debugger.
-
pHResult [out]
-
Tipo: HRESULT*
Puntatore al valore restituito. Può essere NULL. Se pPump non è NULL, pHResult deve essere un percorso di memoria valido fino al completamento dell'esecuzione asincrona.
Valore restituito
Tipo: HRESULT
Il valore restituito è uno dei valori elencati in Codici restituiti Direct3D 11.
D3DX11CompileFromFile restituisce E_INVALIDARG se si specifica un valore non NULL al parametro pHResult quando si specifica NULL al parametro pPump . Per altre informazioni su questa situazione, vedere Osservazioni.
Commenti
Per altre informazioni su D3DX11CompileFromFile, vedere D3DCompile.
È necessario specificare NULL al parametro pHResult se si specifica anche NULL al parametro pPump . In caso contrario, non è possibile creare uno shader usando il codice shader compilato a cui D3DX11CompileFromFile restituisce nella memoria a cui punta il parametro ppShader . Per creare uno shader da codice shader conforme, chiamare uno dei metodi di interfaccia ID3D11Device seguenti:
- CreateComputeShader
- CreateDomainShader
- CreateGeometryShader
- CreateGeometryShaderWithStreamOutput
- CreateHullShader
- CreatePixelShader
- CreateVertexShader
Inoltre, se si specifica un valore diverso da NULL a pHResult quando si specifica NULL a pPump, D3DX11CompileFromFile restituisce il codice di errore E_INVALIDARG.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|