2010-10-27 85 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