Я хочу реализовать функцию, которая сохраняет содержимое, отображаемое OpenGLWidget, в файл изображения.C++, Qt5: результаты grabFrameBuffer ошибочны при использовании мультисэмплирования
Я использую следующий код, чтобы сохранить изображение:
ui->gl_widget->grabFramebuffer().save("/foo/bar.png");
Это прекрасно работает до тех пор, как я не использую мультисамплинг, но если добавить эту строку в моей инициализации, я получаю только странно выглядящие результаты:
QSurfaceFormat format;
...
format.setSamples(4);
...
дополнительно, рендеринг статической сцены несколько раз приводит к появлению различных изображений.
Я использую Qt5.6.0 и OpenGL 3.3 (Core Profile).
Вы можете помочь мне найти эту проблему у себя на странице? Я искал довольно долгое время, и я не знаю, что вызывает эту проблему.
Заранее благодарен!
Это ошибка. Он должен работать. Если эта ошибка не сообщается, сделайте это на qt bugtracker. –
Я подозреваю, что реализация этого метода может быть вызвана вызовом 'glReadPixels()' OpenGL, который не поддерживается для мультисэмплированных фреймбуферов. –