Win32 API 日本語リファレンス
ホームGraphics.Direct3D10 › ID3D10Debug

ID3D10Debug

COM
IID9b7e4e01-342c-4106-a19f-4f2704f689f0継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

デバッグインターフェイスは、デバッグ設定を制御し、パイプラインの状態を検証します。デバッグレイヤーが有効になっている場合にのみ使用できます。(ID3D10Debug)

解説(Remarks)

このインターフェイスは、ID3D10Device Interface から IUnknown::QueryInterface を使用して照会することで取得します。

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetFeatureMask(DWORD Mask)

デバッグ機能のオン/オフを切り替えるフラグのビットフィールドを設定します。

MaskDWORDinビットごとの論理和で結合された機能マスクフラグ。フラグが指定されている場合はその機能がオンに設定され、指定されていない場合はオフに設定されます。フラグの一覧については解説を参照してください。

戻り値

Type: HRESULT

このメソッドは、次の Direct3D 10 Return Codes のいずれかを返します。

解説(Remarks)

メモ Session 0 プロセスでこの API を呼び出すと、DXGI_ERROR_NOT_CURRENTLY_AVAILABLE が返されます。
機能マスクフラグを設定すると、レンダリング操作メソッド(以下に一覧表示)の呼び出し時に追加の処理が実行されます。指定可能な機能フラグは次のとおりです。
D3D10_DEBUG_FEATURE_FINISH_PER_RENDER_OP アプリケーションは、レンダリング操作の処理を GPU が完了するまで待機してから続行します。
D3D10_DEBUG_FEATURE_FLUSH_PER_RENDER_OP ランタイムは追加で ID3D10Device::Flush を呼び出します。
D3D10_DEBUG_FEATURE_PRESENT_PER_RENDER_OP ランタイムは Present を呼び出します。レンダーバッファーの表示は、事前に呼び出された ID3D10Debug::SetSwapChain および ID3D10Debug::SetPresentPerRenderOpDelay によって確立された設定に従って行われます。

これらの機能マスクフラグは、次のレンダリング操作メソッドに適用されます。

vtbl 4 DWORD GetFeatureMask()

どのデバッグ機能がオンまたはオフになっているかを示すフラグのビットフィールドを取得します。(ID3D10Debug.GetFeatureMask)

戻り値

Type: UINT

ビットごとの論理和で結合された機能マスクフラグのマスク。フラグが指定されている場合はその機能がオンに設定され、指定されていない場合はオフに設定されます。指定可能な機能マスクフラグの一覧については、ID3D10Debug::SetFeatureMask を参照してください。

vtbl 5 HRESULT SetPresentPerRenderOpDelay(DWORD Milliseconds)

Present の呼び出し後にスリープするミリ秒数を設定します。

MillisecondsDWORDinPresent の呼び出し後にスリープするミリ秒数。

戻り値

Type: HRESULT

このメソッドは、次の Direct3D 10 Return Codes のいずれかを返します。

解説(Remarks)

メモ Session 0 プロセスでこの API を呼び出すと、DXGI_ERROR_NOT_CURRENTLY_AVAILABLE が返されます。
アプリケーションは、D3D10_DEBUG_FEATURE_PRESENT_PER_RENDER_OP機能マスク に設定されている場合にのみスリープします。このフラグが設定されていない場合、ミリ秒数は設定されますが無視され、アプリケーションはスリープしません。このメソッドが一度も呼び出されない場合、既定値として 10ms が使用されます。
vtbl 6 DWORD GetPresentPerRenderOpDelay()

Present の呼び出し後にスリープするミリ秒数を取得します。

戻り値

Type: UINT

Present の呼び出し後にスリープするミリ秒数。

解説(Remarks)

値は ID3D10Debug::SetPresentPerRenderOpDelay で設定されます。

vtbl 7 HRESULT SetSwapChain(IDXGISwapChain* pSwapChain)

Present を自動的に呼び出すためにランタイムが使用するスワップチェーンを設定します。

pSwapChainIDXGISwapChain*inoptionalPresent を自動的に呼び出すためにランタイムが使用するスワップチェーン。DXGI_SWAP_EFFECT_SEQUENTIAL スワップエフェクトフラグを指定して作成されている必要があります。

戻り値

Type: HRESULT

このメソッドは、次の Direct3D 10 Return Codes のいずれかを返します。

解説(Remarks)

メモ Session 0 プロセスでこの API を呼び出すと、DXGI_ERROR_NOT_CURRENTLY_AVAILABLE が返されます。
このメソッドで設定されたスワップチェーンは、D3D10_DEBUG_FEATURE_PRESENT_PER_RENDER_OP機能マスク に設定されている場合にのみ使用されます。
vtbl 8 HRESULT GetSwapChain(IDXGISwapChain** ppSwapChain)

Present を自動的に呼び出すためにランタイムが使用するスワップチェーンを取得します。

ppSwapChainIDXGISwapChain**outPresent を自動的に呼び出すためにランタイムが使用するスワップチェーン。

戻り値

Type: HRESULT

このメソッドは、次の Direct3D 10 Return Codes のいずれかを返します。

解説(Remarks)

このメソッドで取得されるスワップチェーンは、D3D10_DEBUG_FEATURE_PRESENT_PER_RENDER_OP機能マスク に設定されている場合にのみ使用されます。

vtbl 9 HRESULT Validate()

パイプライン状態の妥当性を確認します。

戻り値

Type: HRESULT

このメソッドは、次の Direct3D 10 Return Codes のいずれかを返します。

解説(Remarks)

デバッグレイヤー が有効になっている場合、すべての描画関数がこの操作を実行します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_ID3D10Debug "{9B7E4E01-342C-4106-A19F-4F2704F689F0}"
#usecom global ID3D10Debug IID_ID3D10Debug "{}"
#comfunc global ID3D10Debug_SetFeatureMask              3 int
#comfunc global ID3D10Debug_GetFeatureMask              4
#comfunc global ID3D10Debug_SetPresentPerRenderOpDelay  5 int
#comfunc global ID3D10Debug_GetPresentPerRenderOpDelay  6
#comfunc global ID3D10Debug_SetSwapChain                7 sptr
#comfunc global ID3D10Debug_GetSwapChain                8 sptr
#comfunc global ID3D10Debug_Validate                    9
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。