Windows MSDN:Windows DXGI Overview
一:介绍
可见DXGI是windows系统中用户模式下最底层的图形设备接口。不管是Direct 2D 还是 Direct 3D都基于其上。因此,DXGI 直接与硬件驱动打交道。
二:重要概念
2.1 基本概念
由于Windows闭源,因此对于DXGI的实现没有更多的公开细节,预留的 API 操作接口也相当少,其主要的作用就是枚举。其中重要的几个概念如图:
IDXGIFactory :完成枚举的主控工厂;
IDXGIAdapter:Adapter为对硬件设备及其功能的一个抽象,简单理解为一个硬件设备就好了;
IDXGIOutput :每个硬件设备上可能有多个输出接口,因此每个接口对应一个Output。
2.2 交换链
图像输出过程大概如下:
Video Memory负责缓存图像,而对于交换链可简单理解为缓存的 buffer 控制。一般交换链有多个缓冲区,一个前缓冲(为正在显示的buffer),一个或者多个后缓冲。(例如:一帧图像在显示的时候,另一帧图像在一个后缓冲buffer中处理并等待显示,如下图:)
注:了解 DXGI 以及 交换链 的概念对学习 Direct2D 和 Direct3D 很有帮助。