Funzione D3DX11CompileFromResource
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 usare le funzioni delle risorse, quindi compilare offline usando il compilatore della riga di comando Fxc.exe o usare una delle API di compilazione HLSL, come l'API D3DCompile .
Compilare uno shader o un effetto da una risorsa.
Sintassi
HRESULT D3DX11CompileFromResource(
_In_ HMODULE hSrcModule,
_In_ LPCTSTR pSrcResource,
_In_ LPCTSTR pSrcFileName,
_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
-
hSrcModule [in]
-
Tipo: HMODULE
Handle per il modulo di risorse contenente lo shader. HMODULE può essere ottenuto con la funzione GetModuleHandle.
-
pSrcResource [in]
-
Tipo: LPCTSTR
Nome della risorsa contenente lo 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.
-
pSrcFileName [in]
-
Tipo: LPCTSTR
Facoltativa. Nome del file di effetto, che viene usato solo per i messaggi di errore. Può essere NULL.
-
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, D3DX11CompileFromResource 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, D3DX11CompileFromResource 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.
D3DX11CompileFromResource restituisce E_INVALIDARG se si specifica un parametro 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 D3DX11CompileFromResource, vedere D3DCompile.
È necessario specificare NULL al parametro pHResult se si specifica anche NULL al parametro pPump . In caso contrario, non è possibile creare successivamente uno shader usando il codice shader compilato a cui D3DX11CompileFromResource 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, D3DX11CompileFromResource restituisce il codice di errore E_INVALIDARG.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|