D3DX10CompileFromMemory 函式
注意
建議您使用 Fxc.exe 命令列編譯器或使用 D3DCompile API,而不是使用此舊版函式進行離線編譯。
編譯記憶體中載入的著色器或效果。
語法
HRESULT D3DX10CompileFromMemory(
_In_ LPCSTR pSrcData,
_In_ SIZE_T SrcDataLen,
_In_ LPCSTR pFileName,
_In_ const D3D10_SHADER_MACRO *pDefines,
_In_ LPD3D10INCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ UINT Flags1,
_In_ UINT Flags2,
_In_ ID3DX10ThreadPump *pPump,
_Out_ ID3D10Blob **ppShader,
_Out_ ID3D10Blob **ppErrorMsgs,
_Out_ HRESULT *pHResult
);
參數
-
pSrcData [in]
-
類型: LPCSTR
記憶體中著色器的指標。
-
SrcDataLen [in]
-
類型: SIZE_T
記憶體中著色器的大小。
-
pFileName [in]
-
類型: LPCSTR
包含著色器程式碼的檔案名。
-
pDefines [in]
-
類型:const D3D_SHADER_MACRO*
選擇性。 巨集定義的陣列指標 (請參閱 D3D_SHADER_MACRO) 。 陣列中的最後一個結構可作為結束字元,而且必須將所有成員設定為 0。 如果未使用,請將 pDefines 設定為 Null。
-
pInclude [in]
-
類型: LPD3D10INCLUDE
選擇性。 ID3D10Include 介面介面的指標,用於處理包含檔案。 如果著色器包含#include,將此設定為 Null 會導致編譯錯誤。
-
pFunctionName [in]
-
類型: LPCSTR
著色器進入點函式的名稱,其中著色器執行開始。 當您編譯效果時, D3DX10CompileFromMemory 會忽略 pFunctionName;我們建議您將 pFunctionName 設定為 Null ,因為如果呼叫的函式不會使用它,最好是將指標參數設定為 Null 。
-
pProfile [in]
-
類型: LPCSTR
-
Flags1 [in]
-
類型: UINT
-
Flags2 [in]
-
類型: UINT
效果編譯旗標。 當您編譯著色器而非效果檔案時, D3DX10CompileFromMemory 會忽略 Flags2;我們建議您將 Flags2 設定為零,因為如果呼叫的函式不會使用它,則良好的程式設計做法是將非pointer 參數設定為零。
-
pPump [in]
-
類型: ID3DX10ThreadPump*
執行緒幫浦介面的指標 (請參閱 ID3DX10ThreadPump 介面) 。 使用 Null 指定此函式在完成之前不應傳回。
-
ppShader [out]
-
類型: ID3D10Blob**
ID3D10Blob 介面的指標,其中包含編譯的著色器,以及任何內嵌的偵錯和符號資料表資訊。
-
ppErrorMsgs [out]
-
類型: ID3D10Blob**
ID3D10Blob 介面的指標,其中包含編譯期間發生的錯誤和警告清單。 這些錯誤和警告與偵錯工具的偵錯輸出相同。
-
pHResult [out]
-
類型: HRESULT*
傳回值的指標。 可能是 Null。 如果 pPump 不是 Null,則 pHResult 必須是有效的記憶體位置,直到非同步執行完成為止。
傳回值
類型: HRESULT
傳回值是 Direct3D 10 傳回碼中列出的其中一個值。
規格需求
需求 | 值 |
---|---|
標頭 |
|
另請參閱