IDirect3DDevice9Ex::ResetEx 方法 (d3d9.h)

使用所有其他表面持續重設交換鏈結的類型、大小和格式。

語法

HRESULT ResetEx(
  [in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,
  [in, out] D3DDISPLAYMODEEX      *pFullscreenDisplayMode
);

參數

[in, out] pPresentationParameters

類型: D3DPRESENT_PARAMETERS*

描述新簡報參數 之D3DPRESENT_PARAMETERS 結構的指標。 此值不可為 NULL

切換至全螢幕模式時,Direct3D 會嘗試尋找符合後台緩衝區格式的桌面格式,讓後端緩衝區和前端緩衝區格式相同 (,以消除色彩轉換) 的需求。

這個方法傳回時:

  • BackBufferCount、BackBufferWidth 和 BackBufferHeight 會設定為零。
  • BackBufferFormat 只會針對視窗模式設定為 D3DFORMAT ;全螢幕模式必須指定格式。

[in, out] pFullscreenDisplayMode

類型: D3DDISPLAYMODEEX*

描述所需顯示模式屬性 之D3DDISPLAYMODEEX 結構的指標。 必須為全螢幕應用程式提供此值,但可為視窗化應用程式提供 NULL

傳回值

類型: HRESULT

方法可以傳回:D3D_OK、D3DERR_DEVICELOST或D3DERR_DEVICEHUNG (请参阅 D3DERR) 。

如果此方法傳回D3DERR_DEVICELOST或D3DERR_DEVICEHUNG,則應用程式只能呼叫 IDirect3DDevice9Ex::ResetExIDirect3DDevice9Ex::CheckDeviceState 或釋放介面指標;任何其他 API 呼叫都會造成例外狀況。

備註

如果呼叫 IDirect3DDevice9Ex::ResetEx 失敗,裝置將會處於遺失狀態 (,如從呼叫 IDirect3DDevice9Ex::CheckDeviceState) 傳回 D3DERR_DEVICELOST值所表示。 如需在遺失裝置內容中使用 IDirect3DDevice9Ex::ResetEx 的詳細資訊,請參閱 IDirect3DDevice9Ex::CheckDeviceState遺失裝置行為變更

不同於舊版的 DirectX,呼叫 IDirect3DDevice9Ex::ResetEx 不會造成表面、紋理或狀態信息遺失。

圖元著色器和頂點著色器在 IDirect3DDevice9Ex::ResetEx呼叫 Direct3D 9 時存留。 應用程式不需要明確地重新建立它們。

交換鏈結有兩種不同類型的:全螢幕或視窗化。 如果新的交換鏈結是全螢幕,配接器將會放在符合新大小的顯示模式中。

應用程式可能需要在此呼叫期間將訊息傳送給它們 (,例如,在傳回此呼叫之前) ;應用程式應該採取預防措施,不要目前呼叫 Direct3D。

如果在與用來建立重設裝置不同的線程上呼叫 IDirect3DDevice9Ex::ResetEx ,將會失敗。

呼叫 IDirect3D9Ex::CreateDeviceExIDirect3DDevice9Ex::ResetExIDirect3DDevice9::CreateAdditionalSwapChain 時,可以針對視窗模式後台緩衝區格式指定D3DFMT_UNKNOWN。 這表示應用程式不需要在呼叫 IDirect3D9Ex::CreateDeviceEx 進行視窗模式之前查詢目前的桌面格式。 針對全螢幕模式,必須指定後台緩衝區格式。 將BackBufferCount 設定為等於零 (BackBufferCount = 0) 會產生一個後端緩衝區。

嘗試重設群組中的多個顯示適配卡時,請將 pPresentationParameters 設定為指向 D3DPRESENT_PARAMETERS 結構的數位,一個用於適配卡群組中的每個顯示。

如果使用 D3DCREATE_ADAPTERGROUP_DEVICE 建立多頭裝置, IDirect3DDevice9Ex::ResetEx 需要 D3DPRESENT_PARAMETERS 結構的數位,其中每個結構都必須指定全屏幕顯示器。 若要切換回視窗模式,應用程式必須終結裝置,並在視窗模式中重新建立非多頭裝置。

規格需求

需求
目標平台 Windows
標頭 d3d9.h
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9Ex