D3D10CreateEffectFromMemory 函式 (d3d10effect.h)
從包含已編譯效果的緩衝區建立 ID3D10Effect。
語法
HRESULT D3D10CreateEffectFromMemory(
[in] void *pData,
[in] SIZE_T DataLength,
[in] UINT FXFlags,
[in] ID3D10Device *pDevice,
[in] ID3D10EffectPool *pEffectPool,
[out] ID3D10Effect **ppEffect
);
參數
[in] pData
類型: void*
已編譯效果的指標。
[in] DataLength
類型: SIZE_T
pData的長度。
[in] FXFlags
類型: UINT
效果 編譯選項。
[in] pDevice
類型: ID3D10Device*
裝置的指標 (請參閱 ID3D10Device 介面) 。
[in] pEffectPool
類型: ID3D10EffectPool*
選擇性。 在效果之間共用之效果變數的記憶體空間指標, (請參閱 ID3D10EffectPool 介面) 。
[out] ppEffect
類型: ID3D10Effect**
ID3D10Effect 介面的指標,其中包含已建立的效果。
傳回值
類型: HRESULT
傳回下列其中一個 Direct3D 10 傳回碼。
備註
注意
d3d10_1.lib
連結可讓您在 中 d3d10_1.dll
實作,這是 Direct3D10.1 程式設計模型實作。 d3d10.lib
連結可讓您在 中 d3d10.dll
實作,這是 Direct3D10 程式設計模型實作。
這個方法可用來從執行時間之前編譯並載入記憶體的效果建立 ID3D10Effect Interface 物件。 如需先行編譯效果的說明,請參閱 離線編譯。 若要載入和編譯 ASCII .fx 檔案,請參閱 編譯效果 (Direct3D 10) 。
範例
編譯效果
fxc.exe /T fx_4_0 /Fo Tutorial03.fxo Tutorial03.fx
在執行時間載入編譯的效果。
ifstream is("tutorial03.fxo", ios::binary);
is.seekg(0,ios_base::end);
streampos pos = is.tellg();
is.seekg(0,ios_base::beg);
char * effectBuffer = new char[pos];
is.read(effectBuffer,pos);
hr = D3D10CreateEffectFromMemory((void *)effectBuffer,pos,0,g_pd3dDevice,NULL,&g_pEffect);
規格需求
目標平台 | Windows |
標頭 | d3d10effect.h |
程式庫 | d3d10_1.lib, d3d10.lib |
Dll | d3d10_1.dll,d3d10.dll |