ホーム › Media.DirectShow › IVMRImageCompositor
IVMRImageCompositor
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT InitCompositionTarget(IUnknown* pD3DDevice, IDirectDrawSurface7* pddsRenderTarget)
| pD3DDevice | IUnknown* | in | 合成に使用するDirect3Dデバイスを表すIUnknown。 |
| pddsRenderTarget | IDirectDrawSurface7* | in | 合成先となるDirectDrawレンダーターゲットサーフェス。 |
vtbl 4 HRESULT TermCompositionTarget(IUnknown* pD3DDevice, IDirectDrawSurface7* pddsRenderTarget)
| pD3DDevice | IUnknown* | in | 解放するDirect3DデバイスのIUnknown。 |
| pddsRenderTarget | IDirectDrawSurface7* | in | 解放するレンダーターゲットサーフェス。 |
vtbl 5 HRESULT SetStreamMediaType(DWORD dwStrmID, AM_MEDIA_TYPE* pmt, BOOL fTexture)
| dwStrmID | DWORD | in | 対象とする入力ストリームの番号。 |
| pmt | AM_MEDIA_TYPE* | in | そのストリームのメディア型AM_MEDIA_TYPE。 |
| fTexture | BOOL | in | テクスチャサーフェスとして扱うか。TRUEでテクスチャ合成する。 |
vtbl 6 HRESULT CompositeImage(IUnknown* pD3DDevice, IDirectDrawSurface7* pddsRenderTarget, AM_MEDIA_TYPE* pmtRenderTarget, LONGLONG rtStart, LONGLONG rtEnd, DWORD dwClrBkGnd, VMRVIDEOSTREAMINFO* pVideoStreamInfo, DWORD cStreams)
| pD3DDevice | IUnknown* | in | 合成に使用するDirect3DデバイスのIUnknown。 |
| pddsRenderTarget | IDirectDrawSurface7* | in | 合成結果を書き込むレンダーターゲットサーフェス。 |
| pmtRenderTarget | AM_MEDIA_TYPE* | in | レンダーターゲットのメディア型AM_MEDIA_TYPE。 |
| rtStart | LONGLONG | in | 合成対象の開始時刻(REFERENCE_TIME)。 |
| rtEnd | LONGLONG | in | 合成対象の終了時刻(REFERENCE_TIME)。 |
| dwClrBkGnd | DWORD | in | 背景塗りつぶし色をRGBで指定する値。 |
| pVideoStreamInfo | VMRVIDEOSTREAMINFO* | in | 各入力ストリームの情報を並べたVMRVIDEOSTREAMINFO配列。 |
| cStreams | DWORD | in | pVideoStreamInfo配列の要素数(合成する入力ストリーム数)。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IVMRImageCompositor "{7A4FB5AF-479F-4074-BB40-CE6722E43C82}" #usecom global IVMRImageCompositor IID_IVMRImageCompositor "{}" #comfunc global IVMRImageCompositor_InitCompositionTarget 3 sptr,sptr #comfunc global IVMRImageCompositor_TermCompositionTarget 4 sptr,sptr #comfunc global IVMRImageCompositor_SetStreamMediaType 5 int,var,int #comfunc global IVMRImageCompositor_CompositeImage 6 sptr,sptr,var,int64,int64,int,var,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IVMRImageCompositor "{7A4FB5AF-479F-4074-BB40-CE6722E43C82}" #usecom global IVMRImageCompositor IID_IVMRImageCompositor "{}" #comfunc global IVMRImageCompositor_InitCompositionTarget 3 sptr,sptr #comfunc global IVMRImageCompositor_TermCompositionTarget 4 sptr,sptr #comfunc global IVMRImageCompositor_SetStreamMediaType 5 int,sptr,int #comfunc global IVMRImageCompositor_CompositeImage 6 sptr,sptr,sptr,int64,int64,int,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。