共用方式為


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

另請參閱

效果函式 (Direct3D 10)