<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 3, 2017 at 5:06 PM, Christophe Geuzaine <span dir="ltr"><<a href="mailto:cgeuzaine@ulg.ac.be" target="_blank">cgeuzaine@ulg.ac.be</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Dear Dan,<br>
<br>
The patch looks OK to me: I merged a slightly modified version, that introduces a new function gl2psSpecialColor in order not to break the API of gl2psSpecial.<br></blockquote><div><br></div><div><br></div><div>Christophe,</div><div>Sounds good. Thanks for reviewing and merging in the change.</div><div><br></div><div>Dan</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thanks!<br>
<br>
Christophe<br>
<div><div class="h5"><br>
<br>
> On 31 Jan 2017, at 16:33, Dan Lipsa <<a href="mailto:dan.lipsa@kitware.com">dan.lipsa@kitware.com</a>> wrote:<br>
><br>
> Hi all,<br>
> Could someone review my gl2ps changes to our version of gl2ps and hopefully merge them into master?<br>
> I described the bug this fixes in a previous email sent to the list. Let me know if you need more information.<br>
> The changes follow.<br>
><br>
> Thanks,<br>
> Dan<br>
><br>
> diff --git a/ThirdParty/gl2ps/vtkgl2ps/<wbr>gl2ps.c b/ThirdParty/gl2ps/vtkgl2ps/<wbr>gl2ps.c<br>
> index 5ed8773..27fe82d 100644<br>
> --- a/ThirdParty/gl2ps/vtkgl2ps/<wbr>gl2ps.c<br>
> +++ b/ThirdParty/gl2ps/vtkgl2ps/<wbr>gl2ps.c<br>
> @@ -3506,8 +3506,9 @@ static void gl2psPutPDFText(GL2PSstring *text, int cnt, GLfloat x, GLfloat y)<br>
>    }<br>
>  }<br>
><br>
> -static void gl2psPutPDFSpecial(GL2PSstring *text)<br>
> +static void gl2psPutPDFSpecial(int prim, int sec, GL2PSstring *text)<br>
>  {<br>
> +  gl2ps->streamlength += gl2psPrintf("/GS%d%d gs\n", prim, sec);<br>
>    gl2ps->streamlength += gl2psPrintf("%s\n", text->str);<br>
>  }<br>
><br>
> @@ -3703,7 +3704,7 @@ static void gl2psSortOutTrianglePDFgroup(<wbr>GL2PSpdfgroup *gro)<br>
><br>
>  static void gl2psPDFgroupListWriteMainStre<wbr>am(void)<br>
>  {<br>
> -  int i, j, lastel;<br>
> +  int i, j, lastel, count;<br>
>    GL2PSprimitive *prim = NULL, *prev = NULL;<br>
>    GL2PSpdfgroup *gro;<br>
>    GL2PStriangle t;<br>
> @@ -3711,7 +3712,9 @@ static void gl2psPDFgroupListWriteMainStre<wbr>am(void)<br>
>    if(!gl2ps->pdfgrouplist)<br>
>      return;<br>
><br>
> -  for(i = 0; i < gl2psListNbr(gl2ps-><wbr>pdfgrouplist); ++i){<br>
> +  count = gl2psListNbr(gl2ps-><wbr>pdfgrouplist);<br>
> +<br>
> +  for(i = 0; i < count; ++i){<br>
>      gro = (GL2PSpdfgroup*)<wbr>gl2psListPointer(gl2ps-><wbr>pdfgrouplist, i);<br>
><br>
>      lastel = gl2psListNbr(gro->ptrlist) - 1;<br>
> @@ -3882,9 +3885,13 @@ static void gl2psPDFgroupListWriteMainStre<wbr>am(void)<br>
>        }<br>
>        break;<br>
>      case GL2PS_SPECIAL:<br>
> +      lastel = gl2psListNbr(gro->ptrlist) - 1;<br>
> +      if(lastel < 0)<br>
> +        continue;<br>
> +<br>
>        for(j = 0; j <= lastel; ++j){<br>
>          prim = *(GL2PSprimitive**)<wbr>gl2psListPointer(gro->ptrlist, j);<br>
> -        gl2psPutPDFSpecial(prim->data.<wbr>text);<br>
> +        gl2psPutPDFSpecial(i, j, prim->data.text);<br>
>        }<br>
>      default:<br>
>        break;<br>
> @@ -6000,9 +6029,9 @@ GL2PSDLL_API GLint gl2psText(const char *str, const char *fontname, GLshort font<br>
>                        NULL);<br>
>  }<br>
><br>
> -GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str)<br>
> +GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str, GL2PSrgba rgba)<br>
>  {<br>
> -  return gl2psAddText(GL2PS_SPECIAL, str, "", 0, format, 0.0F, NULL);<br>
> +  return gl2psAddText(GL2PS_SPECIAL, str, "", 0, format, 0.0F, rgba);<br>
>  }<br>
><br>
>  GL2PSDLL_API GLint gl2psDrawPixels(GLsizei width, GLsizei height,<br>
> diff --git a/ThirdParty/gl2ps/vtkgl2ps/<wbr>gl2ps.h b/ThirdParty/gl2ps/vtkgl2ps/<wbr>gl2ps.h<br>
> index 7258061..dd9368a 100644<br>
> --- a/ThirdParty/gl2ps/vtkgl2ps/<wbr>gl2ps.h<br>
> +++ b/ThirdParty/gl2ps/vtkgl2ps/<wbr>gl2ps.h<br>
> @@ -203,7 +203,7 @@ GL2PSDLL_API GLint gl2psTextOpt(const char *str, const char *fontname,<br>
>  GL2PSDLL_API GLint gl2psTextOptColor(const char *str, const char *fontname,<br>
>                                       GLshort fontsize, GLint align, GLfloat angle,<br>
>                                       GL2PSrgba color);<br>
> -GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str);<br>
> +GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str, GL2PSrgba rgba);<br>
>  GL2PSDLL_API GLint gl2psDrawPixels(GLsizei width, GLsizei height,<br>
>                                     GLint xorig, GLint yorig,<br>
>                                     GLenum format, GLenum type, const void *pixels);<br>
><br>
><br>
><br>
><br>
><br>
> On Mon, Dec 19, 2016 at 4:49 PM, Dan Lipsa <<a href="mailto:dan.lipsa@kitware.com">dan.lipsa@kitware.com</a>> wrote:<br>
> Hi all,<br>
> We have a merge request in VTK which includes a fix to gl2ps.<br>
><br>
> <a href="https://gitlab.kitware.com/vtk/vtk/merge_requests/2277" rel="noreferrer" target="_blank">https://gitlab.kitware.com/<wbr>vtk/vtk/merge_requests/2277</a><br>
><br>
> The test we use is:<br>
> <a href="https://gitlab.kitware.com/vtk/vtk/blob/6d51efa1f268b7cec5dc0ce1e195db4f1c812a23/Rendering/GL2PS/Testing/Cxx/TestGL2PSTextOpacity.cxx" rel="noreferrer" target="_blank">https://gitlab.kitware.com/<wbr>vtk/vtk/blob/<wbr>6d51efa1f268b7cec5dc0ce1e195db<wbr>4f1c812a23/Rendering/GL2PS/<wbr>Testing/Cxx/<wbr>TestGL2PSTextOpacity.cxx</a><br>
><br>
> 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>
><br>
> Would you please review our changes and once approved include them in future versions of gl2ps.<br>
> Changes to a2ps are listed as the last two files in the list of changes:<br>
><br>
> <a href="https://gitlab.kitware.com/vtk/vtk/merge_requests/2277/diffs" rel="noreferrer" target="_blank">https://gitlab.kitware.com/<wbr>vtk/vtk/merge_requests/2277/<wbr>diffs</a><br>
><br>
><br>
> Thank you,<br>
><br>
> Dan<br>
><br>
><br>
><br>
><br>
><br>
><br>
</div></div>> ______________________________<wbr>_________________<br>
> gl2ps mailing list<br>
> <a href="mailto:gl2ps@geuz.org">gl2ps@geuz.org</a><br>
> <a href="http://www.geuz.org/mailman/listinfo/gl2ps" rel="noreferrer" target="_blank">http://www.geuz.org/mailman/<wbr>listinfo/gl2ps</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Prof. Christophe Geuzaine<br>
University of Liege, Electrical Engineering and Computer Science<br>
<a href="http://www.montefiore.ulg.ac.be/~geuzaine" rel="noreferrer" target="_blank">http://www.montefiore.ulg.ac.<wbr>be/~geuzaine</a><br>
<br>
Free software: <a href="http://gmsh.info" rel="noreferrer" target="_blank">http://gmsh.info</a> | <a href="http://getdp.info" rel="noreferrer" target="_blank">http://getdp.info</a> | <a href="http://onelab.info" rel="noreferrer" target="_blank">http://onelab.info</a><br>
<br>
</font></span></blockquote></div><br></div></div>