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

IDXGISwapChain

COM
IID310d36a0-d2e7-4c0a-aa04-6a9d23b8886a継承元IDXGIDeviceSubObject自前メソッド開始 vtbl8

メソッド 10

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

vtbl 8 HRESULT Present(DWORD SyncInterval, DXGI_PRESENT Flags)
SyncIntervalDWORDin垂直同期のフレーム待機数を指定する。0で即時、1以上でVSync同期となる。
FlagsDXGI_PRESENTin表示動作を制御するDXGI_PRESENTフラグ(TEST/DO_NOT_SEQUENCE等)を指定する。
vtbl 9 HRESULT GetBuffer(DWORD Buffer, GUID* riid, void** ppSurface)
BufferDWORDin取得するバックバッファのインデックス(0始まり)を指定する。
riidGUID*in取得するバッファインターフェイスのGUID(例: ID3D11Texture2D)を指定する。
ppSurfacevoid**out取得したバッファインターフェイスを受け取る出力先(void**)である。
vtbl 10 HRESULT SetFullscreenState(BOOL Fullscreen, IDXGIOutput* pTarget)
FullscreenBOOLin全画面モードに移行するか指定する。TRUEで全画面、FALSEでウィンドウとなる。
pTargetIDXGIOutput*inoptional全画面表示先の出力IDXGIOutputを指定する。NULL可で既定の出力を選ぶ。
vtbl 11 HRESULT GetFullscreenState(BOOL* pFullscreen, IDXGIOutput** ppTarget)
pFullscreenBOOL*outoptional現在全画面か否かを受け取るBOOL出力先である。NULL可。
ppTargetIDXGIOutput**outoptional全画面表示先の出力IDXGIOutputを受け取る出力先である。NULL可。
vtbl 12 HRESULT GetDesc(DXGI_SWAP_CHAIN_DESC* pDesc)
pDescDXGI_SWAP_CHAIN_DESC*outスワップチェーンの記述情報を受け取るDXGI_SWAP_CHAIN_DESC構造体である。
vtbl 13 HRESULT ResizeBuffers(DWORD BufferCount, DWORD Width, DWORD Height, DXGI_FORMAT NewFormat, DWORD SwapChainFlags)
BufferCountDWORDinバックバッファの数を指定する。0で既存の数を維持する。
WidthDWORDinバックバッファの幅をピクセルで指定する。0でクライアント領域に合わせる。
HeightDWORDinバックバッファの高さをピクセルで指定する。0でクライアント領域に合わせる。
NewFormatDXGI_FORMATin新しいバックバッファのフォーマットをDXGI_FORMATで指定する。
SwapChainFlagsDWORDinスワップチェーンの動作オプションを示すDXGI_SWAP_CHAIN_FLAG値を指定する。
vtbl 14 HRESULT ResizeTarget(DXGI_MODE_DESC* pNewTargetParameters)
pNewTargetParametersDXGI_MODE_DESC*in対象出力の新しいモード(解像度・リフレッシュ等)を指定するDXGI_MODE_DESC構造体である。
vtbl 15 HRESULT GetContainingOutput(IDXGIOutput** ppOutput)
ppOutputIDXGIOutput**outスワップチェーンが主に属する出力IDXGIOutputを受け取る出力先である。
vtbl 16 HRESULT GetFrameStatistics(DXGI_FRAME_STATISTICS* pStats)
pStatsDXGI_FRAME_STATISTICS*out表示・同期に関する統計情報を受け取るDXGI_FRAME_STATISTICS構造体である。
vtbl 17 HRESULT GetLastPresentCount(DWORD* pLastPresentCount)
pLastPresentCountDWORD*out直近のPresent呼び出し回数を受け取るDWORD出力先である。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDXGISwapChain "{310D36A0-D2E7-4C0A-AA04-6A9D23B8886A}"
#usecom global IDXGISwapChain IID_IDXGISwapChain "{}"
#comfunc global IDXGISwapChain_Present              8 int,int
#comfunc global IDXGISwapChain_GetBuffer            9 int,var,sptr
#comfunc global IDXGISwapChain_SetFullscreenState   10 int,sptr
#comfunc global IDXGISwapChain_GetFullscreenState   11 var,sptr
#comfunc global IDXGISwapChain_GetDesc              12 var
#comfunc global IDXGISwapChain_ResizeBuffers        13 int,int,int,int,int
#comfunc global IDXGISwapChain_ResizeTarget         14 var
#comfunc global IDXGISwapChain_GetContainingOutput  15 sptr
#comfunc global IDXGISwapChain_GetFrameStatistics   16 var
#comfunc global IDXGISwapChain_GetLastPresentCount  17 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。