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

IPresentationSurface

COM
IID956710fb-ea40-4eba-a3eb-4375a0eb4edc継承元IPresentationContent自前メソッド開始 vtbl4

公式ドキュメント

単一のバインドされたバッファを持つ IPresentationContent を表します。このバッファはシステムコンポジターと共有でき、グローバルなビジュアルツリー内のコンテンツとして表示できます。

メソッド 8

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

vtbl 4 HRESULT SetBuffer(IPresentationBuffer* presentationBuffer)

このプレゼンテーションサーフェスに関連付けられるプレゼンテーションバッファを設定します。

presentationBufferIPresentationBuffer*inこのプレゼンテーションサーフェスに関連付けられるプレゼンテーションバッファ。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。

vtbl 5 HRESULT SetColorSpace(DXGI_COLOR_SPACE_TYPE colorSpace)

プレゼンテーションサーフェスが使用する色空間の種類を設定します。

colorSpaceDXGI_COLOR_SPACE_TYPEinプレゼンテーションサーフェスが使用する色空間の種類。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。

vtbl 6 HRESULT SetAlphaMode(DXGI_ALPHA_MODE alphaMode)

プレゼンテーションサーフェスの透明度の動作を設定します。

alphaModeDXGI_ALPHA_MODEinプレゼンテーションサーフェスの透明度の動作。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。

vtbl 7 HRESULT SetSourceRect(RECT* sourceRect)

サンプリング元となるソースプレゼンテーションバッファの領域を設定します。

sourceRectRECT*inサンプリング元となるソースプレゼンテーションバッファの領域を定義する矩形。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。

vtbl 8 HRESULT SetTransform(PresentationTransform* transform)

ソースバッファ領域に適用する変換を設定します。この変換は、バッファが表示される画面上の領域を定義します。

transformPresentationTransform*inソースバッファ領域に適用する変換。バッファが表示される画面上の領域を定義します。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。

vtbl 9 HRESULT RestrictToOutput(IUnknown* output)

プレゼンテーションを特定のディスプレイアダプターの出力に制限します。

outputIUnknown*inアダプターの出力を表すオブジェクト。IDXGIOutput のみが受け付けられます。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。

vtbl 10 HRESULT SetDisableReadback(BYTE value)

バッファの読み戻しを無効または有効にするフラグを設定します。

valueBYTEin読み戻しを無効にする場合は TRUE、それ以外の場合は FALSE

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。

解説(Remarks)

この関数に TRUE を渡すと、コンポジターがバッファを何らかのキャプチャ形式(画面キャプチャ、ウィンドウキャプチャなど)へレンダリングすることを一切防止できます。

vtbl 11 HRESULT SetLetterboxingMargins(FLOAT leftLetterboxSize, FLOAT topLetterboxSize, FLOAT rightLetterboxSize, FLOAT bottomLetterboxSize)

各レターボックス領域が占めるサイズを、ビジュアル空間内で設定します。

leftLetterboxSizeFLOATinレターボックス領域の左マージンのサイズ。
topLetterboxSizeFLOATinレターボックス領域の上マージンのサイズ。
rightLetterboxSizeFLOATinレターボックス領域の右マージンのサイズ。
bottomLetterboxSizeFLOATinレターボックス領域の下マージンのサイズ。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、エラーを示す HRESULT 値を返します。

解説(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_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 指定が可能。