ホーム › Graphics.CompositionSwapchain › IPresentationManager
IPresentationManager
COMメソッド 13
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT AddBufferFromResource(IUnknown* resource, IPresentationBuffer** presentationBuffer)
| resource | IUnknown* | in | 提示バッファの元となるグラフィックスリソース(テクスチャ等)へのポインタ。 |
| presentationBuffer | IPresentationBuffer** | out | 生成された提示バッファIPresentationBufferを受け取る出力ポインタ。 |
vtbl 4 HRESULT CreatePresentationSurface(HANDLE compositionSurfaceHandle, IPresentationSurface** presentationSurface)
| compositionSurfaceHandle | HANDLE | in | DCompositionSurfaceHandleの作成で得たコンポジションサーフェスのハンドル。 |
| presentationSurface | IPresentationSurface** | out | 生成された提示サーフェスIPresentationSurfaceを受け取る出力ポインタ。 |
vtbl 5 ULONGLONG GetNextPresentId()
vtbl 6 HRESULT SetTargetTime(SystemInterruptTime targetTime)
| targetTime | SystemInterruptTime | in | 次のフレームを表示させたい目標時刻(システム割り込み時刻単位)。 |
vtbl 7 HRESULT SetPreferredPresentDuration(SystemInterruptTime preferredDuration, SystemInterruptTime deviationTolerance)
| preferredDuration | SystemInterruptTime | in | 希望する1フレームの提示間隔(システム割り込み時刻単位)。 |
| deviationTolerance | SystemInterruptTime | in | 許容する間隔のずれ(システム割り込み時刻単位)。 |
| forceVsyncInterrupt | BYTE | in | TRUEで垂直同期割り込みを強制的に有効化し、FALSEで解除するブール値。 |
vtbl 9 HRESULT Present()
vtbl 10 HRESULT GetPresentRetiringFence(GUID* riid, void** fence)
| riid | GUID* | in | 取得したいフェンスインターフェイスのGUID(IID)へのポインタ。 |
| fence | void** | out | 提示完了を同期するフェンスオブジェクトを受け取る出力ポインタ。 |
| presentIdToCancelFrom | ULONGLONG | in | この提示ID以降の保留中の提示をキャンセルする起点となるID。 |
| lostEventHandle | HANDLE* | out | マネージャがロスト(無効化)状態になった際にシグナルされるイベントのハンドルを受け取る出力ポインタ。 |
| presentStatisticsAvailableEventHandle | HANDLE* | out | 提示統計が取得可能になった際にシグナルされるイベントのハンドルを受け取る出力ポインタ。 |
vtbl 14 HRESULT EnablePresentStatisticsKind(PresentStatisticsKind presentStatisticsKind, BYTE enabled)
| presentStatisticsKind | PresentStatisticsKind | in | 有効・無効を切り替える提示統計の種別(PresentStatisticsKind)。 |
| enabled | BYTE | in | TRUEで当該統計の収集を有効化し、FALSEで無効化するブール値。 |
vtbl 15 HRESULT GetNextPresentStatistics(IPresentStatistics** nextPresentStatistics)
| nextPresentStatistics | IPresentStatistics** | out | キューから取り出した次の提示統計IPresentStatisticsを受け取る出力ポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IPresentationManager "{FB562F82-6292-470A-88B1-843661E7F20C}" #usecom global IPresentationManager IID_IPresentationManager "{}" #comfunc global IPresentationManager_AddBufferFromResource 3 sptr,sptr #comfunc global IPresentationManager_CreatePresentationSurface 4 sptr,sptr #comfunc global IPresentationManager_GetNextPresentId 5 #comfunc global IPresentationManager_SetTargetTime 6 int #comfunc global IPresentationManager_SetPreferredPresentDuration 7 int,int #comfunc global IPresentationManager_ForceVSyncInterrupt 8 int #comfunc global IPresentationManager_Present 9 #comfunc global IPresentationManager_GetPresentRetiringFence 10 var,sptr #comfunc global IPresentationManager_CancelPresentsFrom 11 int64 #comfunc global IPresentationManager_GetLostEvent 12 sptr #comfunc global IPresentationManager_GetPresentStatisticsAvailableEvent 13 sptr #comfunc global IPresentationManager_EnablePresentStatisticsKind 14 int,int #comfunc global IPresentationManager_GetNextPresentStatistics 15 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPresentationManager "{FB562F82-6292-470A-88B1-843661E7F20C}" #usecom global IPresentationManager IID_IPresentationManager "{}" #comfunc global IPresentationManager_AddBufferFromResource 3 sptr,sptr #comfunc global IPresentationManager_CreatePresentationSurface 4 sptr,sptr #comfunc global IPresentationManager_GetNextPresentId 5 #comfunc global IPresentationManager_SetTargetTime 6 int #comfunc global IPresentationManager_SetPreferredPresentDuration 7 int,int #comfunc global IPresentationManager_ForceVSyncInterrupt 8 int #comfunc global IPresentationManager_Present 9 #comfunc global IPresentationManager_GetPresentRetiringFence 10 sptr,sptr #comfunc global IPresentationManager_CancelPresentsFrom 11 int64 #comfunc global IPresentationManager_GetLostEvent 12 sptr #comfunc global IPresentationManager_GetPresentStatisticsAvailableEvent 13 sptr #comfunc global IPresentationManager_EnablePresentStatisticsKind 14 int,int #comfunc global IPresentationManager_GetNextPresentStatistics 15 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。