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

IPresentationManager

COM
IIDfb562f82-6292-470a-88b1-843661e7f20c継承元IUnknown自前メソッド開始 vtbl3

メソッド 13

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

vtbl 3 HRESULT AddBufferFromResource(IUnknown* resource, IPresentationBuffer** presentationBuffer)
resourceIUnknown*in提示バッファの元となるグラフィックスリソース(テクスチャ等)へのポインタ。
presentationBufferIPresentationBuffer**out生成された提示バッファIPresentationBufferを受け取る出力ポインタ。
vtbl 4 HRESULT CreatePresentationSurface(HANDLE compositionSurfaceHandle, IPresentationSurface** presentationSurface)
compositionSurfaceHandleHANDLEinDCompositionSurfaceHandleの作成で得たコンポジションサーフェスのハンドル。
presentationSurfaceIPresentationSurface**out生成された提示サーフェスIPresentationSurfaceを受け取る出力ポインタ。
vtbl 5 ULONGLONG GetNextPresentId()
vtbl 6 HRESULT SetTargetTime(SystemInterruptTime targetTime)
targetTimeSystemInterruptTimein次のフレームを表示させたい目標時刻(システム割り込み時刻単位)。
vtbl 7 HRESULT SetPreferredPresentDuration(SystemInterruptTime preferredDuration, SystemInterruptTime deviationTolerance)
preferredDurationSystemInterruptTimein希望する1フレームの提示間隔(システム割り込み時刻単位)。
deviationToleranceSystemInterruptTimein許容する間隔のずれ(システム割り込み時刻単位)。
vtbl 8 HRESULT ForceVSyncInterrupt(BYTE forceVsyncInterrupt)
forceVsyncInterruptBYTEinTRUEで垂直同期割り込みを強制的に有効化し、FALSEで解除するブール値。
vtbl 9 HRESULT Present()
vtbl 10 HRESULT GetPresentRetiringFence(GUID* riid, void** fence)
riidGUID*in取得したいフェンスインターフェイスのGUID(IID)へのポインタ。
fencevoid**out提示完了を同期するフェンスオブジェクトを受け取る出力ポインタ。
vtbl 11 HRESULT CancelPresentsFrom(ULONGLONG presentIdToCancelFrom)
presentIdToCancelFromULONGLONGinこの提示ID以降の保留中の提示をキャンセルする起点となるID。
vtbl 12 HRESULT GetLostEvent(HANDLE* lostEventHandle)
lostEventHandleHANDLE*outマネージャがロスト(無効化)状態になった際にシグナルされるイベントのハンドルを受け取る出力ポインタ。
vtbl 13 HRESULT GetPresentStatisticsAvailableEvent(HANDLE* presentStatisticsAvailableEventHandle)
presentStatisticsAvailableEventHandleHANDLE*out提示統計が取得可能になった際にシグナルされるイベントのハンドルを受け取る出力ポインタ。
vtbl 14 HRESULT EnablePresentStatisticsKind(PresentStatisticsKind presentStatisticsKind, BYTE enabled)
presentStatisticsKindPresentStatisticsKindin有効・無効を切り替える提示統計の種別(PresentStatisticsKind)。
enabledBYTEinTRUEで当該統計の収集を有効化し、FALSEで無効化するブール値。
vtbl 15 HRESULT GetNextPresentStatistics(IPresentStatistics** nextPresentStatistics)
nextPresentStatisticsIPresentStatistics**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 指定が可能。