微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将OpenGL用于QGraphicsItems可以加快QGraphicsView中的显示速度吗?

如何解决将OpenGL用于QGraphicsItems可以加快QGraphicsView中的显示速度吗?

| 我正在使用一个QGraphicsView,其中包含数百个大型QGraphicsItems。 QGraphicsItems本质上是QGraphicspixmapItems,因为我正在从文件中读取一些原始数据,并将其转换为QImage,然后使用drawImage()绘制器。 问题是,在我开始在场景中获得一定数量的这些项目,或者只是一个非常大的项目之后,场景的响应速度变得非常缓慢。如果我移动这些项目,或尝试放大/缩小它们等,则场景将永远需要刷新。我希望它更具交互性,而不是在加载所有数据后不停地等待场景刷新。 OpenGL可以在这里帮助我吗?我将如何去做呢?创建2D矩形并在其上绘制原始数据的纹理?我所有的QGraphicsItems都放在一个QGraphicsItemGroup中,它们基本上构成了一个大图像。如果将我缩小到足以看到我所有的数百个QGraphicsItem,则图块的大“图像”至少为32000x32000像素。如果我将这些作为纹理映射到矩形上,OpenGL甚至可以处理呢?     

解决方法

        32000平方的纹理为1G像素。使用RGBA颜色,即4GB的视频内存。 您说您的尺寸甚至更多,那么您是否有足够的视频RAM?不要忘记为mipmap级别添加空间。 您可能可以通过谨慎使用OpenGL来加快速度,但是您将需要智能地管理纹理,而不希望OpenGL创建那么大的纹理。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。