D3DERR
次に示すのは、Direct3D のメソッドが返す値の一覧です。それぞれの返す値の一覧については、個別のメソッドの説明を参照してください。
名前 | 説明 |
---|---|
D3DOK_NOAUTOGEN | これはサクセス コードです。ただし、このフォーマットではミップマップの自動生成はサポートされていません。したがって、リソースの作成には成功しますが、ミップマップ レベルは自動的に生成されません。 |
D3DERR_CONFLICTINGRENDERSTATE | 現在設定されているレンダリング ステートは同時に使用できません。 |
D3DERR_CONFLICTINGTEXTUREFILTER | 現在のテクスチャー フィルターは同時に使用できません。 |
D3DERR_CONFLICTINGTEXTUREPALETTE | 現在のテクスチャーは同時に使用できません。 |
D3DERR_DEVICEHUNG | このコードを返したデバイスが原因で、ハードウェア アダプターが OS によってリセットされました。ほとんどのアプリケーションは、デバイスを破棄し、終了する必要があります。処理を継続しなければならないアプリケーションでは、すべてのビデオ メモリー オブジェクト (サーフェス、テクスチャー、ステート ブロックなど) を破棄し、Reset() を呼び出してデバイスをデフォルトの状態にします。その後、アプリケーションでレンダリングを同じ方法で継続すると、デバイスはこの状態に戻ります。
Direct3D 9Ex のみに適用されます。 |
D3DERR_DEVICELOST | デバイスが失われましたが、この時点ではリセットできません。したがって、レンダリングはできません。このコードを返したもの以外の Direct 3D デバイス オブジェクトが原因で、ハードウェア アダプターが 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 が処理を行ううえで十分なディスプレイ メモリーがありません。デバイスは、ビデオ メモリーに同時に収まるより多くのリソースを、1 つのシーンで使用しています。IDirect3DDevice9::Present、IDirect3DDevice9Ex::PresentEx、または IDirect3DDevice9Ex::CheckDeviceState から、このエラーが返される可能性があります。リカバリは D3DERR_DEVICEHUNG に類似していますが、アプリケーションでは、このエラーの再発を防止するために、1 フレームあたりのメモリーの使用量を減らすことをお勧めします。 |
D3DERR_TOOMANYOPERATIONS | デバイスがサポートしている以上のテクスチャー フィルタリング処理をアプリケーションが要求しています。 |
D3DERR_UNSUPPORTEDALPHAARG | アルファ チャンネルに対して指定されているテクスチャー ブレンディング引数をデバイスがサポートしていません。 |
D3DERR_UNSUPPORTEDALPHAOPERATION | アルファ チャンネルに対して指定されているテクスチャー ブレンディング処理をデバイスがサポートしていません。 |
D3DERR_UNSUPPORTEDCOLORARG | カラー値に対して指定されているテクスチャー ブレンディング引数をデバイスがサポートしていません。 |
D3DERR_UNSUPPORTEDCOLOROPERATION | カラー値に対して指定されているテクスチャー ブレンディング処理をデバイスがサポートしていません。 |
D3DERR_UNSUPPORTEDFACTORVALUE | 指定されたテクスチャー係数値をデバイスがサポートしていません。使用されません。以前のドライバーをサポートするためにのみ提供されています。 |
D3DERR_UNSUPPORTEDTEXTUREFILTER | 指定されたテクスチャー フィルターをデバイスがサポートしていません。 |
D3DERR_WASSTILLDRAWING | このサーフェスとの間で情報を転送している以前のビット演算が不完全です。 |
D3DERR_WRONGTEXTUREFORMAT | テクスチャー サーフェスのピクセル フォーマットが有効ではありません。 |
E_FAIL | Direct3D サブシステム内で原因不明のエラーが発生しました。 |
E_INVALIDARG | 戻り関数に無効なパラメーターが渡されました。 |
E_INVALIDCALL | メソッドの呼び出しが無効です。たとえば、メソッドのパラメーターに無効な値が設定されている場合などです。 |
E_NOINTERFACE | 利用可能なオブジェクト インターフェイスがありません。 |
E_NOTIMPL | 実装されていません。 |
E_OUTOFMEMORY | Direct3D が呼び出しを完了するうえで十分なメモリーを割り当てることができませんでした。 |
S_OK | エラーは発生していません。 |
S_NOT_RESIDENT | 一連のリソースを構成する割り当てがディスク上に 1 つ以上存在します。Direct3D 9Ex 専用です。 |
S_RESIDENT_IN_SHARED_MEMORY | 一連のリソースを構成する割り当てがディスク上に存在しません。ただし、GPU からアクセス可能なメモリーにはない割り当てが 1 つ以上存在します。Direct3D 9Ex 専用です。 |
S_PRESENT_MODE_CHANGED | デスクトップの表示モードが変更されました。アプリケーションはレンダリングを継続できますが、色変換/伸縮が発生している場合もあります。現在の表示モードに類似したバック バッファー フォーマットを選択し、Reset を呼び出して、スワップ チェーンを再作成してください。デバイスは、Reset が呼び出された後、このステートを抜けます。Direct3D 9Ex 専用です。 |
S_PRESENT_OCCLUDED | プレゼンテーション領域がオクルードされています。オクルードとは、プレゼンテーション ウィンドウが最小化されるか、プレゼンテーション ウィンドウと同じモニター上で別のデバイスが全画面モードに入り、プレゼンテーション ウィンドウが完全にそのモニター上にあるということです。オクルージョンは、クライアント領域が別のウィンドウによって覆われていると、発生しません。
オクルードされたアプリケーションはレンダリングを継続することができ、すべての呼び出しは成功しますが、オクルードされたプレゼンテーション ウィンドウは更新されません。アプリケーションは、該当するデバイスを使用するプレゼンテーション ウィンドウへのレンダリングを停止し、S_OK または S_PRESENT_MODE_CHANGED が返されるまで IDirect3DDevice9Ex::CheckDeviceState を呼び出し続けるのが望ましいと言えます。 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 )