D3D11
+ -

IDXGISwapChain交换链

2024-05-25 29 0

IDXGISwapChain的方法主要与屏显相关。

115551528221

IDXGISwapChain::GetDesc

获取交换链的属性信息

typedef struct DXGI_SWAP_CHAIN_DESC {
  DXGI_MODE_DESC   BufferDesc;
  DXGI_SAMPLE_DESC SampleDesc;
  DXGI_USAGE       BufferUsage;
  UINT             BufferCount;
  HWND             OutputWindow;
  BOOL             Windowed;
  DXGI_SWAP_EFFECT SwapEffect;
  UINT             Flags;
} DXGI_SWAP_CHAIN_DESC;

IDXGISwapChain::GetBuffer

访问交换链的后台缓冲区指针,用于获取或修改渲染数据

IDXGISwapChain::ResizeBuffers

更改交换链的后台缓冲区大小、格式和缓冲区数。 在调整应用程序窗口大小时应调用此名称。

HRESULT ResizeBuffers(
  UINT        BufferCount,
  UINT        Width,
  UINT        Height,
  DXGI_FORMAT NewFormat,
  UINT        SwapChainFlags
);

IDXGISwapChain::GetContainingOutput

获取输出 (包含目标窗口的大部分工作区的显示监视器) 。

IDXGIOutput 接口表示适配器输出 (,例如监视器)

IDXGISwapChain::ResizeTarget

调整输出目标的大小

typedef struct DXGI_MODE_DESC {
  UINT                     Width;
  UINT                     Height;
  DXGI_RATIONAL            RefreshRate;
  DXGI_FORMAT              Format;
  DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
  DXGI_MODE_SCALING        Scaling;
} DXGI_MODE_DESC;

IDXGISwapChain::GetFrameStatistics

获取最后一帧渲染的性能统计信息

typedef struct DXGI_FRAME_STATISTICS {
  UINT          PresentCount;
  UINT          PresentRefreshCount;
  UINT          SyncRefreshCount;
  LARGE_INTEGER SyncQPCTime;
  LARGE_INTEGER SyncGPUTime;
} DXGI_FRAME_STATISTICS;

IDXGISwapChain::SetFullscreenState

将显示状态设置为窗口或全屏。信息同GetFullscreenState

IDXGISwapChain::GetFullscreenState

是否全屏状态和全屏状态下的目标输出指针

HRESULT GetFullscreenState(
  [out, optional] BOOL        *pFullscreen, //是否全屏
  [out, optional] IDXGIOutput **ppTarget //全屏时为输出目标的指针,否则为NULL
);

0 篇笔记 写笔记

IDXGISwapChain交换链
IDXGISwapChain的方法主要与屏显相关。IDXGISwapChain::GetDesc获取交换链的属性信息typedef struct DXGI_SWAP_CHAIN_DESC { DXGI_MODE_DESC BufferDesc; DXGI_SAMPLE_DESC S......
作者信息
站长漫谈
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!