# HG changeset patch # User Pantxo Diribarne # Date 1444675744 -7200 # Node ID 395140e536560c43256af107ca58e2945595f143 # Parent 4e307c55a2b5c26d87bdbe46c17a5e10ea676e48 Fix regression in svg output and simplify viewport handling (bug #44765) * gl2ps-renderer.cc (glps-renderer::draw): remove check for GL2PS_NO_FEEDBACK, it it always true after EndViewport * gl2ps-renderer.h (glps-renderer::draw_axes): call gl2psBegin(End)Viewport for every axes and check for GL2PS_NO_FEEDBACK after each axes. * gl2ps-renderer.h (glps-renderer::draw_axes):remove unnecessary "naxes" attribute diff -r 4e307c55a2b5 -r 395140e53656 libinterp/corefcn/gl2ps-renderer.cc --- a/libinterp/corefcn/gl2ps-renderer.cc Sun Oct 11 21:09:41 2015 -0700 +++ b/libinterp/corefcn/gl2ps-renderer.cc Mon Oct 12 20:49:04 2015 +0200 @@ -137,17 +137,13 @@ opengl_renderer::draw (go); - // Without glFinish () there may primitives be missing in the + // Without glFinish () there may be primitives missing in the // gl2ps output. glFinish (); state = gl2psEndPage (); - if (state == GL2PS_NO_FEEDBACK) - { - warning ("gl2ps-renderer::draw: empty feedback buffer and/or nothing else to print"); - } - else if (state == GL2PS_ERROR) + if (state == GL2PS_ERROR) { old_print_cmd.clear (); error ("gl2ps-renderer::draw: gl2psEndPage returned GL2PS_ERROR"); diff -r 4e307c55a2b5 -r 395140e53656 libinterp/corefcn/gl2ps-renderer.h --- a/libinterp/corefcn/gl2ps-renderer.h Sun Oct 11 21:09:41 2015 -0700 +++ b/libinterp/corefcn/gl2ps-renderer.h Mon Oct 12 20:49:04 2015 +0200 @@ -37,7 +37,7 @@ public: glps_renderer (FILE *_fp, const std::string& _term) : opengl_renderer () , fp (_fp), term (_term), fontsize (), - fontname (), naxes (0) { } + fontname () { } ~glps_renderer (void) { } @@ -53,12 +53,7 @@ void draw_axes (const axes::properties& props) { - // Finish previous sorting tree here, the last one will be closed - // by gl2psEndPage () - if (naxes++) - gl2psEndViewport (); - - // Initialize a sorting tree in gl2ps for each axes + // Initialize a sorting tree (viewport) in gl2ps for each axes GLint vp[4]; glGetIntegerv (GL_VIEWPORT, vp); gl2psBeginViewport (vp); @@ -67,6 +62,11 @@ // gl2ps output. opengl_renderer::draw_axes (props); glFinish (); + + // Finalize viewport + GLint state = gl2psEndViewport (); + if (state == GL2PS_NO_FEEDBACK) + warning ("gl2ps-renderer::draw: empty feedback buffer and/or nothing else to print"); } void draw_text (const text::properties& props); @@ -108,7 +108,6 @@ caseless_str term; double fontsize; std::string fontname; - int naxes; }; #endif // HAVE_GL2PS_H