Big QPixmaps вылетает с OpenGL
Я программирую QGraphicsView, который имеет много изображений. Но когда я отображаю JPEG с разрешением 8528 x 1128 px (изображение панорамы), QGraphicsPixmapItem не рендерится. Он просто отображает черный квадрат. Изображения "нормального" размера отдают хорошо. Я не пытался найти "предел магии", для каких размеров возникает проблема.
На моем ноутбуке с Ubuntu 10.10 x64 также происходит сбой драйвера графической карты и перезапускается сеанс Gnome!
Все работает нормально, если я отключаю OpenGL.
Зачем? Что я могу сделать?
Я обнаружил, что у другой есть очень похожая проблема: http://www.qtforum.org/article/34238/really-strange-problem-with-qgraphicsview-and-opengl.html
1 ответ
Убедитесь, что это возвращает что-то большее, чем 8528 в вашей реализации OpenGL:
GLint texSize;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &texSize);
Если этого не произойдет, вам придется прибегнуть к какой-либо системе мозаичного рендеринга, чтобы вы могли разместить все данные вашего изображения в текстурах, меньших максимального размера.