Condividi tramite


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:

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
D3DX11async.h
Libreria
D3DX11.lib

Vedi anche

Funzioni D3DX