IDXGIOutput6
COM公式ドキュメント
アダプターの出力(モニターなど)を表します。IDXGIOutput6 インターフェイスは、特定のモニター機能を提供するためのメソッドを公開します。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
色特性と接続タイプを含む、出力の拡張された記述を取得します。
| pDesc | DXGI_OUTPUT_DESC1* | out | 出力記述へのポインターです(DXGI_OUTPUT_DESC1 を参照)。 |
戻り値
型: HRESULT
成功したか失敗したかを示すコードを返します。成功した場合は S_OK、pDesc が NULL として渡された場合は DXGI_ERROR_INVALID_CALL を返します。
解説(Remarks)
一部のシナリオでは、この構造体のすべてのフィールドに明確に定義された値があるとは限りません。たとえば、この IDXGIOutput がクローン/複製セットを表す場合や、EDID にデータの欠落や無効なデータがある場合です。これらの場合、OS は標準的な SDR ディスプレイに対応する既定値を提供します。
出力が報告する色や輝度の特性は、ユーザーの操作や周囲の環境の変化により、システムの実行中に動的に変化することがあります。そのため、アプリは定期的に IDXGIFactory::IsCurrent を照会し、FALSE が返された場合は IDXGIFactory を再作成する必要があります。その後、新しいファクトリの対応する出力から GetDesc1 を再度照会して、最新の色情報を取得します。
モニターの機能に動的に反応するアプリの記述方法の詳細については、Using DirectX with high dynamic range displays and Advanced Color を参照してください。
高 DPI デスクトップでは、アプリが高 DPI 対応としてマークされていない限り、GetDesc1 は視覚化された画面サイズを返します。DPI 対応の Win32 アプリの記述方法については、High DPI を参照してください。
ハードウェアによる拡大縮小がサポートされていることをアプリケーションに通知します。
| pFlags | DWORD* | out | どの種類のハードウェアコンポジションがサポートされているかを示す DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS 列挙型の値のビットフィールドです。これらの値はビットごとの OR で結合されます。 |
戻り値
型: HRESULT
成功したか失敗したかを示すコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDXGIOutput6 "{068346E8-AAEC-4B84-ADD7-137F513F77A1}" #usecom global IDXGIOutput6 IID_IDXGIOutput6 "{}" #comfunc global IDXGIOutput6_GetDesc1 27 var #comfunc global IDXGIOutput6_CheckHardwareCompositionSupport 28 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IDXGIOutput6 "{068346E8-AAEC-4B84-ADD7-137F513F77A1}" #usecom global IDXGIOutput6 IID_IDXGIOutput6 "{}" #comfunc global IDXGIOutput6_GetDesc1 27 sptr #comfunc global IDXGIOutput6_CheckHardwareCompositionSupport 28 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。