<div dir="ltr">Hi all,<div>Could someone review my gl2ps changes to our version of gl2ps and hopefully merge them into master?</div><div>I described the bug this fixes in a previous email sent to the list. Let me know if you need more information.</div><div>The changes follow.</div><div><br></div><div>Thanks,</div><div>Dan</div><div><br></div><div><div>diff --git a/ThirdParty/gl2ps/vtkgl2ps/gl2ps.c b/ThirdParty/gl2ps/vtkgl2ps/gl2ps.c</div><div>index 5ed8773..27fe82d 100644</div><div>--- a/ThirdParty/gl2ps/vtkgl2ps/gl2ps.c</div><div>+++ b/ThirdParty/gl2ps/vtkgl2ps/gl2ps.c</div><div>@@ -3506,8 +3506,9 @@ static void gl2psPutPDFText(GL2PSstring *text, int cnt, GLfloat x, GLfloat y)</div><div>   }</div><div> }</div><div> </div><div>-static void gl2psPutPDFSpecial(GL2PSstring *text)</div><div>+static void gl2psPutPDFSpecial(int prim, int sec, GL2PSstring *text)</div><div> {</div><div>+  gl2ps->streamlength += gl2psPrintf("/GS%d%d gs\n", prim, sec);</div><div>   gl2ps->streamlength += gl2psPrintf("%s\n", text->str);</div><div> }</div><div> </div><div>@@ -3703,7 +3704,7 @@ static void gl2psSortOutTrianglePDFgroup(GL2PSpdfgroup *gro)</div><div> </div><div> static void gl2psPDFgroupListWriteMainStream(void)</div><div> {</div><div>-  int i, j, lastel;</div><div>+  int i, j, lastel, count;</div><div>   GL2PSprimitive *prim = NULL, *prev = NULL;</div><div>   GL2PSpdfgroup *gro;</div><div>   GL2PStriangle t;</div><div>@@ -3711,7 +3712,9 @@ static void gl2psPDFgroupListWriteMainStream(void)</div><div>   if(!gl2ps->pdfgrouplist)</div><div>     return;</div><div> </div><div>-  for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){</div><div>+  count = gl2psListNbr(gl2ps->pdfgrouplist);</div><div>+</div><div>+  for(i = 0; i < count; ++i){</div><div>     gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i);</div><div> </div><div>     lastel = gl2psListNbr(gro->ptrlist) - 1;</div><div>@@ -3882,9 +3885,13 @@ static void gl2psPDFgroupListWriteMainStream(void)</div><div>       }</div><div>       break;</div><div>     case GL2PS_SPECIAL:</div><div>+      lastel = gl2psListNbr(gro->ptrlist) - 1;</div><div>+      if(lastel < 0)</div><div>+        continue;</div><div>+</div><div>       for(j = 0; j <= lastel; ++j){</div><div>         prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j);</div><div>-        gl2psPutPDFSpecial(prim->data.text);</div><div>+        gl2psPutPDFSpecial(i, j, prim->data.text);</div><div>       }</div><div>     default:</div><div>       break;</div><div>@@ -6000,9 +6029,9 @@ GL2PSDLL_API GLint gl2psText(const char *str, const char *fontname, GLshort font</div><div>                       NULL);</div><div> }</div><div> </div><div>-GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str)</div><div>+GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str, GL2PSrgba rgba)</div><div> {</div><div>-  return gl2psAddText(GL2PS_SPECIAL, str, "", 0, format, 0.0F, NULL);</div><div>+  return gl2psAddText(GL2PS_SPECIAL, str, "", 0, format, 0.0F, rgba);</div><div> }</div><div> </div><div> GL2PSDLL_API GLint gl2psDrawPixels(GLsizei width, GLsizei height,</div><div>diff --git a/ThirdParty/gl2ps/vtkgl2ps/gl2ps.h b/ThirdParty/gl2ps/vtkgl2ps/gl2ps.h</div><div>index 7258061..dd9368a 100644</div><div>--- a/ThirdParty/gl2ps/vtkgl2ps/gl2ps.h</div><div>+++ b/ThirdParty/gl2ps/vtkgl2ps/gl2ps.h</div><div>@@ -203,7 +203,7 @@ GL2PSDLL_API GLint gl2psTextOpt(const char *str, const char *fontname,</div><div> GL2PSDLL_API GLint gl2psTextOptColor(const char *str, const char *fontname,</div><div>                                      GLshort fontsize, GLint align, GLfloat angle,</div><div>                                      GL2PSrgba color);</div><div>-GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str);</div><div>+GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str, GL2PSrgba rgba);</div><div> GL2PSDLL_API GLint gl2psDrawPixels(GLsizei width, GLsizei height,</div><div>                                    GLint xorig, GLint yorig,</div><div>                                    GLenum format, GLenum type, const void *pixels);</div></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 19, 2016 at 4:49 PM, Dan Lipsa <span dir="ltr"><<a href="mailto:dan.lipsa@kitware.com" target="_blank">dan.lipsa@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div>We have a merge request in VTK which includes a fix to gl2ps.</div><div><br></div><div><a href="https://gitlab.kitware.com/vtk/vtk/merge_requests/2277" target="_blank">https://gitlab.kitware.com/<wbr>vtk/vtk/merge_requests/2277</a></div><div><br></div><div>The test we use is:<br></div><div><a href="https://gitlab.kitware.com/vtk/vtk/blob/6d51efa1f268b7cec5dc0ce1e195db4f1c812a23/Rendering/GL2PS/Testing/Cxx/TestGL2PSTextOpacity.cxx" target="_blank">https://gitlab.kitware.com/<wbr>vtk/vtk/blob/<wbr>6d51efa1f268b7cec5dc0ce1e195db<wbr>4f1c812a23/Rendering/GL2PS/<wbr>Testing/Cxx/<wbr>TestGL2PSTextOpacity.cxx</a><br></div><div><br></div><div>If we set for text the opacity to 0.5 and TextAsPath to 1 we get an invalid PDF (text_bad.pdf). After our fix we get an valid PDF (text.pdf). See attached files.<br></div><div><br></div><div>Would you please review our changes and once approved include them in future versions of gl2ps.</div><div>Changes to a2ps are listed as the last two files in the list of changes:</div><div><br></div><div><a href="https://gitlab.kitware.com/vtk/vtk/merge_requests/2277/diffs" target="_blank">https://gitlab.kitware.com/<wbr>vtk/vtk/merge_requests/2277/<wbr>diffs</a><br></div><div><br></div><div><br></div><div>Thank you,</div><div><br></div><div>Dan</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>
</blockquote></div><br></div>