D3DERR

以下是 Direct3D 方法可傳回的值清單。 如需每個可傳回之值的清單,請參閱個別方法描述。

常數 描述
D3DOK_NOAUTOGEN
這是成功的程式碼。 不過,此格式不支援 Mipmap 的自動產生。 這表示資源建立將會成功,但不會自動產生 mipmap 層級。
D3DERR_CONFLICTINGRENDERSTATE
目前設定的轉譯狀態不能一起使用。
D3DERR_CONFLICTINGTEXTUREFILTER
目前的紋理篩選準則不能一起使用。
D3DERR_CONFLICTINGTEXTUREPALETTE
目前紋理無法同時使用。
D3DERR_DEVICEHUNG
傳回此程式碼的裝置會導致 OS 重設硬體介面卡。 大部分的應用程式都應該終結裝置並結束。 必須繼續的應用程式應該終結所有視訊記憶體物件, (表面、紋理、狀態欄塊等) 並呼叫 Reset () ,讓裝置處於預設狀態。 如果應用程式接著以相同方式繼續轉譯,裝置會返回此狀態。
僅適用于 Direct3D 9Ex。
D3DERR_DEVICELOST
裝置已遺失,但目前無法重設。 因此,無法轉譯。 除了傳回此程式碼的裝置物件以外,Direct3D 裝置物件會導致 OS 重設硬體介面卡。 刪除所有視訊記憶體物件 (表面、紋理、狀態欄塊) ,並呼叫 Reset () 以將裝置傳回預設狀態。 如果應用程式繼續轉譯而不重設,轉譯呼叫將會成功。
D3DERR_DEVICENOTRESET
裝置已遺失,但目前可重設。
D3DERR_DEVICEREMOVED
已移除硬體介面卡。 應用程式必須終結裝置、執行介面卡列舉,並建立另一個 Direct3D 裝置。 如果應用程式繼續轉譯而不呼叫 Reset,則轉譯呼叫將會成功。
僅適用于 Direct3D 9Ex。
D3DERR_DRIVERINTERNALERROR
內部驅動程式錯誤。 應用程式應該會在收到此錯誤時終結並重新建立裝置。 如需偵錯此錯誤的提示,請參閱 驅動程式內部錯誤 (Direct3D 9)
D3DERR_DRIVERINVALIDCALL
未使用。
D3DERR_INVALIDCALL
方法呼叫無效。 例如,方法的參數可能不是有效的指標。
D3DERR_INVALIDDEVICE
要求的裝置類型無效。
D3DERR_MOREDATA
可用的資料比指定的緩衝區大小所能保存的資料還要多。
D3DERR_NOTAVAILABLE
此裝置不支援查詢的技術。
D3DERR_NOTFOUND
找不到要求的項目。
D3D_OK
未發生任何錯誤。
D3DERR_OUTOFVIDEOMEMORY
Direct3D 沒有足夠的顯示記憶體來執行作業。 裝置在單一場景中使用的資源多於可同時放入視訊記憶體中。 PresentPresentExCheckDeviceState 可以傳回此錯誤。 復原類似于D3DERR_DEVICEHUNG,但應用程式可能會想要減少其每一畫面格記憶體使用量,以避免重複發生錯誤。
D3DERR_TOOMANYOPERATIONS
應用程式要求比裝置支援更多的紋理篩選作業。
D3DERR_UNSUPPORTEDALPHAARG
裝置不支援 Alpha 色板的指定紋理混合引數。
D3DERR_UNSUPPORTEDALPHAOPERATION
裝置不支援 Alpha 色板的指定紋理混合作業。
D3DERR_UNSUPPORTEDCOLORARG
裝置不支援色彩值的指定紋理混合引數。
D3DERR_UNSUPPORTEDCOLOROPERATION
裝置不支援色彩值的指定紋理混合作業。
D3DERR_UNSUPPORTEDFACTORVALUE
裝置不支援指定的紋理因數值。 未使用;僅提供以支援舊版驅動程式。
D3DERR_UNSUPPORTEDTEXTUREFILTER
裝置不支援指定的紋理篩選。
D3DERR_WASSTILLDRAWING
將資訊傳送至此表面或從此表面傳送資訊的先前 Blit 作業不完整。
D3DERR_WRONGTEXTUREFORMAT
紋理表面的像素格式無效。
E_FAIL
Direct3D 子系統內發生不確定的錯誤。
E_INVALIDARG
不正確參數已傳遞至傳回函式。
E_INVALIDCALL
方法呼叫無效。 例如,方法的參數可能具有不正確值。
E_NOINTERFACE
沒有可用的物件介面。
E_NOTIMPL
未實作。
E_OUTOFMEMORY
Direct3D 無法配置足夠的記憶體來完成呼叫。
S_OK
未發生任何錯誤。
S_NOT_RESIDENT
至少一個包含資源的配置位於磁片上。 僅限 Direct3D 9Ex。
S_RESIDENT_IN_SHARED_MEMORY
沒有組成資源的配置位於磁片上。 不過,至少一個配置不在 GPU 可存取的記憶體中。 僅限 Direct3D 9Ex。
S_PRESENT_MODE_CHANGED
桌面顯示模式已變更。 應用程式可以繼續轉譯,但可能會有色彩轉換/延展。 挑選類似目前顯示模式的背景緩衝區格式,並呼叫 Reset 以重新建立交換鏈結。 呼叫 [重設] 之後,裝置會離開此狀態。 僅限 Direct3D 9Ex。
S_PRESENT_OCCLUDED
簡報區域已遮蔽。 遮蔽表示簡報視窗已最小化,或另一部裝置在與簡報視窗相同的監視器上進入全螢幕模式,而簡報視窗完全在該監視器上。 如果另一個視窗涵蓋工作區,則不會發生遮蔽。
遮蔽的應用程式可以繼續轉譯,而且所有呼叫都會成功,但不會更新遮蔽的簡報視窗。 最好應用程式應該停止使用裝置轉譯至簡報視窗,並持續呼叫 CheckDeviceState ,直到S_OK或S_PRESENT_MODE_CHANGED傳回為止。
僅限 Direct3D 9Ex。
D3DERR_UNSUPPORTEDOVERLAY
裝置不支援指定大小或顯示模式的重迭。
僅限 Windows 7 下的 Direct3D 9Ex。
D3DERR_UNSUPPORTEDOVERLAYFORMAT
裝置不支援指定介面格式的重迭。
僅限 Windows 7 下的 Direct3D 9Ex。
D3DERR_CANNOTPROTECTCONTENT
無法保護指定的內容。
僅限 Windows 7 下的 Direct3D 9Ex。
D3DERR_UNSUPPORTEDCRYPTO
不支援指定的密碼編譯演算法。
僅限 Windows 7 下的 Direct3D 9Ex。
D3DERR_PRESENT_STATISTICS_DISJOINT
目前統計資料沒有循序順序。
僅限 Windows 7 下的 Direct3D 9Ex。

備註

錯誤是以負值表示,無法合併。

其他傳回碼則包含在 S_PRESENT中。

設備代碼_FACD3D用來產生錯誤碼,如下列宏所示。

// Direct3D Errors
#define D3DERR_UNSUPPORTEDFACTORVALUE  MAKE_D3DHRESULT(2079)
#define D3DERR_WASSTILLDRAWING         MAKE_D3DHRESULT(540)
    
#define _FACD3D                  0x876   // Direct3D facility code
#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
#define MAKE_D3DSTATUS( code )   MAKE_HRESULT( 0, _FACD3D, code )

規格需求

需求
標頭
D3d9.h

另請參閱

Direct3D 常數