ホーム › Graphics.DirectComposition › IDCompositionDevice2
IDCompositionDevice2
COMメソッド 21
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Commit()
vtbl 4 HRESULT WaitForCommitCompletion()
vtbl 5 HRESULT GetFrameStatistics(DCOMPOSITION_FRAME_STATISTICS* statistics)
| statistics | DCOMPOSITION_FRAME_STATISTICS* | out | 直近の合成フレームのタイミング情報を受け取る構造体へのポインタである。 |
vtbl 6 HRESULT CreateVisual(IDCompositionVisual2** visual)
| visual | IDCompositionVisual2** | out | 新規作成されたビジュアルオブジェクトを受け取る出力ポインタである。 |
vtbl 7 HRESULT CreateSurfaceFactory(IUnknown* renderingDevice, IDCompositionSurfaceFactory** surfaceFactory)
| renderingDevice | IUnknown* | in | サーフェス生成に用いるD3DまたはD2Dレンダリングデバイスである。 |
| surfaceFactory | IDCompositionSurfaceFactory** | out | 作成されたサーフェスファクトリを受け取る出力ポインタである。 |
vtbl 8 HRESULT CreateSurface(DWORD width, DWORD height, DXGI_FORMAT pixelFormat, DXGI_ALPHA_MODE alphaMode, IDCompositionSurface** surface)
| width | DWORD | in | 作成するサーフェスの幅(ピクセル)。0より大きい値を指定する。 |
| height | DWORD | in | 作成するサーフェスの高さ(ピクセル)。0より大きい値を指定する。 |
| pixelFormat | DXGI_FORMAT | in | サーフェスのピクセル形式を指定するDXGI_FORMAT列挙値である。 |
| alphaMode | DXGI_ALPHA_MODE | in | アルファの扱いを示すDXGI_ALPHA_MODE(事前乗算/直線等)を指定する。 |
| surface | IDCompositionSurface** | out | 作成されたサーフェスを受け取る出力ポインタである。 |
vtbl 9 HRESULT CreateVirtualSurface(DWORD initialWidth, DWORD initialHeight, DXGI_FORMAT pixelFormat, DXGI_ALPHA_MODE alphaMode, IDCompositionVirtualSurface** virtualSurface)
| initialWidth | DWORD | in | 仮想サーフェスの初期幅(ピクセル)。後でResizeで変更可能である。 |
| initialHeight | DWORD | in | 仮想サーフェスの初期高さ(ピクセル)。後でResizeで変更可能である。 |
| pixelFormat | DXGI_FORMAT | in | サーフェスのピクセル形式を指定するDXGI_FORMAT列挙値である。 |
| alphaMode | DXGI_ALPHA_MODE | in | アルファの扱いを示すDXGI_ALPHA_MODE列挙値を指定する。 |
| virtualSurface | IDCompositionVirtualSurface** | out | 作成された仮想サーフェスを受け取る出力ポインタである。 |
vtbl 10 HRESULT CreateTranslateTransform(IDCompositionTranslateTransform** translateTransform)
| translateTransform | IDCompositionTranslateTransform** | out | 作成された2D平行移動変換オブジェクトを受け取る出力ポインタである。 |
vtbl 11 HRESULT CreateScaleTransform(IDCompositionScaleTransform** scaleTransform)
| scaleTransform | IDCompositionScaleTransform** | out | 作成された2D拡大縮小変換オブジェクトを受け取る出力ポインタである。 |
vtbl 12 HRESULT CreateRotateTransform(IDCompositionRotateTransform** rotateTransform)
| rotateTransform | IDCompositionRotateTransform** | out | 作成された2D回転変換オブジェクトを受け取る出力ポインタである。 |
vtbl 13 HRESULT CreateSkewTransform(IDCompositionSkewTransform** skewTransform)
| skewTransform | IDCompositionSkewTransform** | out | 作成された2Dせん断(スキュー)変換オブジェクトを受け取る出力ポインタである。 |
vtbl 14 HRESULT CreateMatrixTransform(IDCompositionMatrixTransform** matrixTransform)
| matrixTransform | IDCompositionMatrixTransform** | out | 作成された2D行列変換オブジェクトを受け取る出力ポインタである。 |
vtbl 15 HRESULT CreateTransformGroup(IDCompositionTransform** transforms, DWORD elements, IDCompositionTransform** transformGroup)
| transforms | IDCompositionTransform** | in | グループ化する2D変換オブジェクトの配列へのポインタである。 |
| elements | DWORD | in | transforms配列に含まれる変換の個数を指定する。 |
| transformGroup | IDCompositionTransform** | out | 合成された変換グループを受け取る出力ポインタである。 |
vtbl 16 HRESULT CreateTranslateTransform3D(IDCompositionTranslateTransform3D** translateTransform3D)
| translateTransform3D | IDCompositionTranslateTransform3D** | out | 作成された3D平行移動変換オブジェクトを受け取る出力ポインタである。 |
vtbl 17 HRESULT CreateScaleTransform3D(IDCompositionScaleTransform3D** scaleTransform3D)
| scaleTransform3D | IDCompositionScaleTransform3D** | out | 作成された3D拡大縮小変換オブジェクトを受け取る出力ポインタである。 |
vtbl 18 HRESULT CreateRotateTransform3D(IDCompositionRotateTransform3D** rotateTransform3D)
| rotateTransform3D | IDCompositionRotateTransform3D** | out | 作成された3D回転変換オブジェクトを受け取る出力ポインタである。 |
vtbl 19 HRESULT CreateMatrixTransform3D(IDCompositionMatrixTransform3D** matrixTransform3D)
| matrixTransform3D | IDCompositionMatrixTransform3D** | out | 作成された3D行列変換オブジェクトを受け取る出力ポインタである。 |
vtbl 20 HRESULT CreateTransform3DGroup(IDCompositionTransform3D** transforms3D, DWORD elements, IDCompositionTransform3D** transform3DGroup)
| transforms3D | IDCompositionTransform3D** | in | グループ化する3D変換オブジェクトの配列へのポインタである。 |
| elements | DWORD | in | transforms3D配列に含まれる変換の個数を指定する。 |
| transform3DGroup | IDCompositionTransform3D** | out | 合成された3D変換グループを受け取る出力ポインタである。 |
vtbl 21 HRESULT CreateEffectGroup(IDCompositionEffectGroup** effectGroup)
| effectGroup | IDCompositionEffectGroup** | out | 作成されたエフェクトグループオブジェクトを受け取る出力ポインタである。 |
vtbl 22 HRESULT CreateRectangleClip(IDCompositionRectangleClip** clip)
| clip | IDCompositionRectangleClip** | out | 作成された矩形クリップオブジェクトを受け取る出力ポインタである。 |
vtbl 23 HRESULT CreateAnimation(IDCompositionAnimation** animation)
| animation | IDCompositionAnimation** | out | 作成されたアニメーションオブジェクトを受け取る出力ポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDCompositionDevice2 "{75F6468D-1B8E-447C-9BC6-75FEA80B5B25}" #usecom global IDCompositionDevice2 IID_IDCompositionDevice2 "{}" #comfunc global IDCompositionDevice2_Commit 3 #comfunc global IDCompositionDevice2_WaitForCommitCompletion 4 #comfunc global IDCompositionDevice2_GetFrameStatistics 5 var #comfunc global IDCompositionDevice2_CreateVisual 6 sptr #comfunc global IDCompositionDevice2_CreateSurfaceFactory 7 sptr,sptr #comfunc global IDCompositionDevice2_CreateSurface 8 int,int,int,int,sptr #comfunc global IDCompositionDevice2_CreateVirtualSurface 9 int,int,int,int,sptr #comfunc global IDCompositionDevice2_CreateTranslateTransform 10 sptr #comfunc global IDCompositionDevice2_CreateScaleTransform 11 sptr #comfunc global IDCompositionDevice2_CreateRotateTransform 12 sptr #comfunc global IDCompositionDevice2_CreateSkewTransform 13 sptr #comfunc global IDCompositionDevice2_CreateMatrixTransform 14 sptr #comfunc global IDCompositionDevice2_CreateTransformGroup 15 sptr,int,sptr #comfunc global IDCompositionDevice2_CreateTranslateTransform3D 16 sptr #comfunc global IDCompositionDevice2_CreateScaleTransform3D 17 sptr #comfunc global IDCompositionDevice2_CreateRotateTransform3D 18 sptr #comfunc global IDCompositionDevice2_CreateMatrixTransform3D 19 sptr #comfunc global IDCompositionDevice2_CreateTransform3DGroup 20 sptr,int,sptr #comfunc global IDCompositionDevice2_CreateEffectGroup 21 sptr #comfunc global IDCompositionDevice2_CreateRectangleClip 22 sptr #comfunc global IDCompositionDevice2_CreateAnimation 23 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDCompositionDevice2 "{75F6468D-1B8E-447C-9BC6-75FEA80B5B25}" #usecom global IDCompositionDevice2 IID_IDCompositionDevice2 "{}" #comfunc global IDCompositionDevice2_Commit 3 #comfunc global IDCompositionDevice2_WaitForCommitCompletion 4 #comfunc global IDCompositionDevice2_GetFrameStatistics 5 sptr #comfunc global IDCompositionDevice2_CreateVisual 6 sptr #comfunc global IDCompositionDevice2_CreateSurfaceFactory 7 sptr,sptr #comfunc global IDCompositionDevice2_CreateSurface 8 int,int,int,int,sptr #comfunc global IDCompositionDevice2_CreateVirtualSurface 9 int,int,int,int,sptr #comfunc global IDCompositionDevice2_CreateTranslateTransform 10 sptr #comfunc global IDCompositionDevice2_CreateScaleTransform 11 sptr #comfunc global IDCompositionDevice2_CreateRotateTransform 12 sptr #comfunc global IDCompositionDevice2_CreateSkewTransform 13 sptr #comfunc global IDCompositionDevice2_CreateMatrixTransform 14 sptr #comfunc global IDCompositionDevice2_CreateTransformGroup 15 sptr,int,sptr #comfunc global IDCompositionDevice2_CreateTranslateTransform3D 16 sptr #comfunc global IDCompositionDevice2_CreateScaleTransform3D 17 sptr #comfunc global IDCompositionDevice2_CreateRotateTransform3D 18 sptr #comfunc global IDCompositionDevice2_CreateMatrixTransform3D 19 sptr #comfunc global IDCompositionDevice2_CreateTransform3DGroup 20 sptr,int,sptr #comfunc global IDCompositionDevice2_CreateEffectGroup 21 sptr #comfunc global IDCompositionDevice2_CreateRectangleClip 22 sptr #comfunc global IDCompositionDevice2_CreateAnimation 23 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。