Funzione D3DCompile (d3dcompiler.h)

Compilare il codice HLSL o un file di effetto in bytecode per una determinata destinazione.

Sintassi

HRESULT D3DCompile(
  [in]            LPCVOID                pSrcData,
  [in]            SIZE_T                 SrcDataSize,
  [in, optional]  LPCSTR                 pSourceName,
  [in, optional]  const D3D_SHADER_MACRO *pDefines,
  [in, optional]  ID3DInclude            *pInclude,
  [in, optional]  LPCSTR                 pEntrypoint,
  [in]            LPCSTR                 pTarget,
  [in]            UINT                   Flags1,
  [in]            UINT                   Flags2,
  [out]           ID3DBlob               **ppCode,
  [out, optional] ID3DBlob               **ppErrorMsgs
);

Parametri

[in] pSrcData

Tipo: LPCVOID

Puntatore ai dati dello shader non compilati; Codice ASCII HLSL o effetto compilato.

[in] SrcDataSize

Tipo: SIZE_T

Lunghezza di pSrcData.

[in, optional] pSourceName

Tipo: LPCSTR

È possibile usare questo parametro per le stringhe che specificano i messaggi di errore. Se non usato, impostare su NULL.

[in, optional] pDefines

Tipo: const D3D_SHADER_MACRO*

Matrice facoltativa di strutture D3D_SHADER_MACRO che definiscono le macro shader. Ogni definizione di macro contiene un nome e una definizione con terminazione null. Se non usato, impostare su NULL. L'ultima struttura della matrice funge da terminatore e deve avere tutti i membri impostati su NULL.

[in, optional] pInclude

Tipo: ID3DInclude*

facoltativo. Puntatore a un ID3DInclude per la gestione di file di inclusione. L'impostazione di questo valore su NULL causa un errore di compilazione se un shader contiene un #include. È possibile passare la macro D3D_COMPILE_STANDARD_FILE_INCLUDE , ovvero un puntatore a un gestore di inclusione predefinito. Questo gestore di inclusione predefinito include file relativi alla directory corrente e ai file relativi alla directory del file di origine iniziale. Quando si usa D3D_COMPILE_STANDARD_FILE_INCLUDE, è necessario specificare il nome del file di origine nel parametro pSourceName ; il compilatore deriva la directory relativa iniziale da pSourceName.

#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)

[in, optional] pEntrypoint

Tipo: LPCSTR

Nome della funzione di ingresso del punto di ingresso shader in cui inizia l'esecuzione dello shader. Quando si compila usando un profilo fx(ad esempio, fx_4_0, fx_5_0 e così via), D3DCompile ignora pEntrypoint. In questo caso, è consigliabile impostare pEntrypoint su NULL perché è consigliabile impostare un parametro puntatore su NULL se la funzione chiamata non lo userà. Per tutti gli altri profili shader, è necessario un pEntrypoint valido.

[in] pTarget

Tipo: LPCSTR

Stringa che specifica la destinazione dello shader o il set di funzionalità shader da compilare. La destinazione shader può essere modello 2, modello shader 3, modello shader 4 o modello shader 5. La destinazione può anche essere un tipo di effetto , ad esempio fx_4_1. Per informazioni sulle destinazioni supportate da vari profili, vedere Specificare le destinazioni del compilatore.

[in] Flags1

Tipo: UINT

Flag definiti dalle costanti di compilazione D3D.

[in] Flags2

Tipo: UINT

Flag definiti dalle costanti dell'effetto di compilazione D3D. Quando si compila un shader e non un file di effetto, D3DCompile ignora Flags2; È consigliabile impostare Flags2 su zero perché è consigliabile impostare un parametro nonpointer su zero se la funzione chiamata non la userà.

[out] ppCode

Tipo: ID3DBlob**

Puntatore a una variabile che riceve un puntatore all'interfaccia ID3DBlob che è possibile usare per accedere al codice compilato.

[out, optional] ppErrorMsgs

Tipo: ID3DBlob**

Puntatore a una variabile che riceve un puntatore all'interfaccia ID3DBlob che è possibile usare per accedere ai messaggi di errore del compilatore o NULL se non sono presenti errori.

Valore restituito

Tipo: HRESULT

Restituisce uno dei codici restituiti Direct3D 11.

Commenti

La differenza tra D3DCompile e D3DCompile2 è che quest'ultimo metodo accetta alcuni parametri facoltativi che possono essere usati per controllare alcuni aspetti della modalità di generazione di bytecode. Se questa flessibilità aggiuntiva non è necessaria, non è possibile ottenere prestazioni dall'uso di D3DCompile2.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3dcompiler.h
Libreria d3dcompiler.lib
DLL d3dcompiler_47.dll

Vedi anche

Funzioni