qt - Windows 上的 Qt 如何准确绘制?它是否调用 GDI 内部绘制?

标签 qt gdi

我是 Windows 开发人员,并且在 WinAPI 程序方面有一些经验。
据我所知,在 Windows 上有两种绘制方式,调用 GDI(包括 GDI 的包装器,如 GDI+)进行传统绘图或调用一些 API,如 DX 或 OpenGL 使用 GPU 进行绘制。
但是像Qt这样的其他东西是什么? Qt 是否最终调用 GDI 来绘制某些东西?或者它只是有自己的直接绘制方式?
我只是想知道它的一般理论。

最佳答案

Qt 小部件使用自定义软件渲染器(自定义光栅引擎) - 从表面上看,它不是 GDI。

https://doc.qt.io/qt-5/topics-graphics.html

每个小部件都继承自 QPaintDevice您可以检查喷漆设备的类型:https://doc.qt.io/qt-5/qpaintengine.html#Type-enum

QtQuick 似乎正在使用 ANGLE (will convert ogl calls to d3d on windows)/纯 OpenGL - https://blog.qt.io/blog/2017/01/18/opengl-implementation-qt-quick-app-using-today/

关于qt - Windows 上的 Qt 如何准确绘制?它是否调用 GDI 内部绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16663833/

相关文章:

c++ - Windows下4K屏幕截图并直接保存到缓冲区

multithreading - QThread中的QTcpSocket

c++ - 如何在 Qt 中为 qmake 指定一个库文件依赖?

c++ - Qt 模块错误 - QtOpenGL 中的 LNK 1112

c++ - 将 PDF 打印到 HDC(MFC 设备上下文)

c++ - 关于 GDI/GDI+ 坐标兼容性?

winapi - GDI裁剪的实现细节

windows - ffmpeg 录制屏幕并将视频文件以 .mpg 格式保存到磁盘

c++ - 在下面的代码中 tr ("%1") 和 .arg() 在这里吗?

c++ - 在 QT 中更改 UI 的奇怪行为