Tag: qpainter

QPainterPaths的高效屏幕外渲染(需要OpenGL和非OpenGL解决scheme)

在我的应用程序中,我使用QPainter在widget上绘制街道地图 由QPainterPaths ,包含预先绘制的path 该widget目前是一个QWidget ,而不是一个QGLWidget ,但这可能会改变。 我正试图将这幅画移出屏幕,并将其分割成大块的作业 我想绘制每个块到QImage ,最后将所有图像绘制到widget QPainterPaths已经分块,所以这不是问题 问题是,在QImages上绘图比在QWidget绘图慢大约5倍 我做了一些基准testing 时间值在多次运行中取平均值 testing块包含100个QPainterPaths ,每个QPainterPaths具有大约150个线性线段 用QPainter::Antialiasing渲染提示绘制了大约15k条path, QPen使用圆顶和圆形连接 请记住,我的源代码是QPainterPaths (线宽+颜色;一些绘制 ,一些填充 ) 我不需要QPainter支持的所有其他types的绘图 QPainterPaths可以转换成其他可以在OpenGL buffer上绘制的东西,这将是一个很好的解决scheme。 我不熟悉OpenGL离屏渲染,我知道有不同types的OpenGL缓冲区,其中大部分不是用于2D图像渲染,而是用于顶点数据。 Paint Device for chunk | Rendering the chunk itself | Painting chunk on QWidget ———————–+—————————-+————————– QImage | 2000 ms | < 10 ms QPixmap (*) | 250 ms | < […]