2010-10-27 86 views
0

我正在编程一个有很多图像的QGraphicsView。但是,当我显示分辨率为8528 x 1128像素(全景图像)的JPEG时,QGraphicsPixmapItem不会呈现。它只是显示一个黑色的方块。 “正常”大小的图像呈现良好。我还没有试图找到问题发生的规模的“magick限制”。大QPixmaps与OpenGL崩溃

在我的笔记本电脑上安装了Ubuntu 10.10 x64,它也会崩溃显卡驱动程序并重新启动Gnome会话!

一切工作正常,如果我禁用OpenGL。

为什么?有什么我可以做的吗?

,我发现了另一个有一个非常类似的问题:http://www.qtforum.org/article/34238/really-strange-problem-with-qgraphicsview-and-opengl.html

回答

3

确保它返回的东西比8528更大的OpenGL实现:

GLint texSize; 
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &texSize); 

如果没有你要不得不求助于某种平铺的渲染系统,以便您可以将所有图像数据放入比最大尺寸更小的纹理中。

+3

为了强化这一点 - 您远远超过了GL纹理的安全限制,并且使用了非方形非幂次幂的维度。所有这些因素都会降低您可能需要处理的硬件和GL驱动程序。好消息是,既然您已经使用了QGraphicsView,将您的巨大图片分割成片(在CPU上)并为每个图块创建单独的图形项目应该很容易。 – 2010-10-27 16:35:58