ホーム › Graphics.CompositionSwapchain › IPresentationSurface
IPresentationSurface
COMメソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 4 HRESULT SetBuffer(IPresentationBuffer* presentationBuffer)
| presentationBuffer | IPresentationBuffer* | in | このサーフェスに表示内容として割り当てる提示バッファへのポインタ。 |
vtbl 5 HRESULT SetColorSpace(DXGI_COLOR_SPACE_TYPE colorSpace)
| colorSpace | DXGI_COLOR_SPACE_TYPE | in | サーフェスの色空間を指定するDXGI_COLOR_SPACE_TYPE列挙値。 |
vtbl 6 HRESULT SetAlphaMode(DXGI_ALPHA_MODE alphaMode)
| alphaMode | DXGI_ALPHA_MODE | in | アルファ合成の扱い(プリマルチプライ・ストレート・無視)を指定するDXGI_ALPHA_MODE列挙値。 |
| sourceRect | RECT* | in | バッファから表示に用いる元矩形領域を指定するRECTへのポインタ。 |
vtbl 8 HRESULT SetTransform(PresentationTransform* transform)
| transform | PresentationTransform* | in | サーフェスに適用する変換(回転・拡縮等)を指定するPresentationTransformへのポインタ。 |
| output | IUnknown* | in | 提示対象を限定する出力(IDXGIOutput等)へのポインタ。NULLで制限解除。 |
| value | BYTE | in | TRUEで読み戻し(リードバック)を無効化し、FALSEで有効化するブール値。 |
vtbl 11 HRESULT SetLetterboxingMargins(FLOAT leftLetterboxSize, FLOAT topLetterboxSize, FLOAT rightLetterboxSize, FLOAT bottomLetterboxSize)
| leftLetterboxSize | FLOAT | in | 左側のレターボックス余白サイズ(ピクセル)。 |
| topLetterboxSize | FLOAT | in | 上側のレターボックス余白サイズ(ピクセル)。 |
| rightLetterboxSize | FLOAT | in | 右側のレターボックス余白サイズ(ピクセル)。 |
| bottomLetterboxSize | FLOAT | in | 下側のレターボックス余白サイズ(ピクセル)。 |
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 指定が可能。