IPresentationSurface
COM公式ドキュメント
単一のバインドされたバッファを持つ IPresentationContent を表します。このバッファはシステムコンポジターと共有でき、グローバルなビジュアルツリー内のコンテンツとして表示できます。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このプレゼンテーションサーフェスに関連付けられるプレゼンテーションバッファを設定します。
| presentationBuffer | IPresentationBuffer* | in | このプレゼンテーションサーフェスに関連付けられるプレゼンテーションバッファ。 |
戻り値
型: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。
プレゼンテーションサーフェスが使用する色空間の種類を設定します。
| colorSpace | DXGI_COLOR_SPACE_TYPE | in | プレゼンテーションサーフェスが使用する色空間の種類。 |
戻り値
型: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。
プレゼンテーションサーフェスの透明度の動作を設定します。
| alphaMode | DXGI_ALPHA_MODE | in | プレゼンテーションサーフェスの透明度の動作。 |
戻り値
型: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。
サンプリング元となるソースプレゼンテーションバッファの領域を設定します。
| sourceRect | RECT* | in | サンプリング元となるソースプレゼンテーションバッファの領域を定義する矩形。 |
戻り値
型: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。
ソースバッファ領域に適用する変換を設定します。この変換は、バッファが表示される画面上の領域を定義します。
| transform | PresentationTransform* | in | ソースバッファ領域に適用する変換。バッファが表示される画面上の領域を定義します。 |
戻り値
型: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。
プレゼンテーションを特定のディスプレイアダプターの出力に制限します。
| output | IUnknown* | in | アダプターの出力を表すオブジェクト。IDXGIOutput のみが受け付けられます。 |
戻り値
型: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。
バッファの読み戻しを無効または有効にするフラグを設定します。
| value | BYTE | in | 読み戻しを無効にする場合は TRUE、それ以外の場合は FALSE。 |
戻り値
型: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。
解説(Remarks)
この関数に TRUE を渡すと、コンポジターがバッファを何らかのキャプチャ形式(画面キャプチャ、ウィンドウキャプチャなど)へレンダリングすることを一切防止できます。
各レターボックス領域が占めるサイズを、ビジュアル空間内で設定します。
| leftLetterboxSize | FLOAT | in | レターボックス領域の左マージンのサイズ。 |
| topLetterboxSize | FLOAT | in | レターボックス領域の上マージンのサイズ。 |
| rightLetterboxSize | FLOAT | in | レターボックス領域の右マージンのサイズ。 |
| bottomLetterboxSize | FLOAT | in | レターボックス領域の下マージンのサイズ。 |
戻り値
型: HRESULT
関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。
解説(Remarks)
マージンは変換のスケール成分の影響を受けませんが、それ以外のすべての成分の影響を受けます。言い換えると、マージンは変換を適用した状態で適用されますが、その変換に含まれるスケールについては自身のサイズで補正されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IPresentationSurface "{956710FB-EA40-4EBA-A3EB-4375A0EB4EDC}" #usecom global IPresentationSurface IID_IPresentationSurface "{}" #comfunc global IPresentationSurface_SetBuffer 4 sptr #comfunc global IPresentationSurface_SetColorSpace 5 int #comfunc global IPresentationSurface_SetAlphaMode 6 int #comfunc global IPresentationSurface_SetSourceRect 7 var #comfunc global IPresentationSurface_SetTransform 8 var #comfunc global IPresentationSurface_RestrictToOutput 9 sptr #comfunc global IPresentationSurface_SetDisableReadback 10 int #comfunc global IPresentationSurface_SetLetterboxingMargins 11 float,float,float,float ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPresentationSurface "{956710FB-EA40-4EBA-A3EB-4375A0EB4EDC}" #usecom global IPresentationSurface IID_IPresentationSurface "{}" #comfunc global IPresentationSurface_SetBuffer 4 sptr #comfunc global IPresentationSurface_SetColorSpace 5 int #comfunc global IPresentationSurface_SetAlphaMode 6 int #comfunc global IPresentationSurface_SetSourceRect 7 sptr #comfunc global IPresentationSurface_SetTransform 8 sptr #comfunc global IPresentationSurface_RestrictToOutput 9 sptr #comfunc global IPresentationSurface_SetDisableReadback 10 int #comfunc global IPresentationSurface_SetLetterboxingMargins 11 float,float,float,float ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。