背景
本文尝试对Windows系统中的一些Graphic相关的概念进行介绍和厘清。
windows图形基础架构简介
Windows 为图形提供了多个 API,下图显示了这些 API。
上图出自微软官方https://learn.microsoft.com/en-us/windows/win32/learnwin32/overview-of-the-windows-graphics-architecture
- 图形设备接口 (GDI) 是 Windows 的原始图形接口。 GDI 首先针对 16 位 Windows 编写,然后针对 32 位和 64 位 Windows 进行了更新。
- GDI+ 作为 GDI 的后续版本在 Windows XP 中引入。 GDI+ 库是通过包装平面 C 函数的一组 C++ 类访问的。 .NET Framework还在 System.Drawing 命名空间中提供 GDI+ 的托管版本。
- Direct3D 支持三维图形。
- Direct2D 是适用于二维图形的新式 API,是 GDI 和 GDI+ 的继任者。
- DirectWrite是文本布局和光栅化引擎。 可以使用 GDI 或 Direct2D 绘制光栅化文本。
- DirectX 图形基础结构 (DXGI) 执行低级别任务,例如为输出演示帧。 大多数应用程序不直接使用 DXGI。 相反,它充当图形驱动程序和 Direct3D 之间的中间层。
自 Windows 诞生之初,图形编程的主要 API 就是图形设备接口 (GDI)。 此 API 设计用于处理众多 2D 输出设备,是 Windows 用户界面体验的基础。
该图出自微软官方https://learn.microsoft.com/en-us/windows/win32/direct3darticles/graphics-apis-in-windows-vista
新的驱动程序模型——Windows 显示驱动程序模型 (WDDM) 将 GPU 和 Direct3D 带到了最前沿,允许创建一种全新的体验 - 3D 桌面,从而将 GDI 的 2D 世界与现代可编程 GPU 的强大功能完美融合。 借助 WDDM,视频硬件完全由 Direct3D 驱动,所有其他图形接口都通过新的以 Direct3D 为中心的驱动程序模型与视频硬件通信。