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
D3DX9Shader.h
Libreria
D3dx9.lib

Vedi anche

Funzioni shader

D3DXCompileShader

D3DXCompileShaderFromFile