diff --git a/CMakeLists.txt b/CMakeLists.txt
index e14df598e..53d873cdb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -863,6 +863,7 @@ if(NULLGL)
src/glview/OffscreenView.cc
src/glview/OffscreenContextNULL.cc
src/io/export_png.cc
+ ../gl2ps/gl2ps.c
src/io/imageutils.cc)
else()
set(OFFSCREEN_SOURCES
@@ -879,6 +880,7 @@ else()
src/glview/preview/OpenCSGRenderer.cc
src/glview/preview/ThrownTogetherRenderer.cc
src/io/export_png.cc
+ ../gl2ps/gl2ps.c
src/io/imageutils.cc
${GLEW_SOURCES})
endif()
diff --git a/src/gui/QGLView.cc b/src/gui/QGLView.cc
index 484356f17..51476a245 100644
--- a/src/gui/QGLView.cc
+++ b/src/gui/QGLView.cc
@@ -57,6 +57,7 @@
#endif
#include "qt-obsolete.h"
+#include "../gl2ps/gl2ps.h"
QGLView::QGLView(QWidget *parent) : QOpenGLWidget(parent)
{
@@ -351,6 +352,22 @@ const QImage& QGLView::grabFrame()
{
// Force reading from front buffer. Some configurations will read from the back buffer here.
glReadBuffer(GL_FRONT);
+
+ FILE* fp = fopen("out.svg", "wb");
+ int state = GL2PS_OVERFLOW;
+ int buffsize = 0;
+ while (state == GL2PS_OVERFLOW) {
+ buffsize += 1024 * 1024;
+ gl2psBeginPage("test", "gl2psTestSimple", NULL,
+ GL2PS_SVG, GL2PS_BSP_SORT,
+ GL2PS_DRAW_BACKGROUND | GL2PS_USE_CURRENT_VIEWPORT,
+ GL_RGBA, 0, NULL, 0, 0, 0, buffsize, fp, "out.svg");
+ GLView::initializeGL();
+ GLView::paintGL();
+ state = gl2psEndPage();
+ }
+ fclose(fp);
+
this->frame = grabFramebuffer();
return this->frame;
}