<div dir="ltr"><div><div><div>But setCTM and concatCTM does not change clipping. <br></div>In PDF, once a clipping path is set, further changes of CTM do not change the clipping path, right?<br><br></div><div>From the name, shiftCTM looks like a shortcut for concatCTM(1,0,tx,0,1,ty), but it does more. That's why I'm saying it's confusing.<br>

<br><br></div><div>My suggestion is to rename it, or add a new statement "state->clip_backdoor(tx,ty)" right after when shiftCTM is called.<br></div><div><br><br></div>regards,<br></div>- Lu<br><div><div><div>

<div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jan 26, 2013 at 9:37 PM, Thomas Freitag <span dir="ltr"><<a href="mailto:Thomas.Freitag@kabelmail.de" target="_blank">Thomas.Freitag@kabelmail.de</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am 26.01.2013 13:56, schrieb Albert Astals Cid:<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
El Dissabte, 26 de gener de 2013, a les 20:40:14, 王璐 va escriure:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
    In GfxState.h, this function is declared right after setCTM and<br>
concatCTM, which looks like no big deal than the other 2, but actually also<br>
modifies clip BBox of the State<br>
<br>
    The only place this function is used is in the functions handling<br>
transparency groups in SplashOutputDev.cc. I'm not familiar with that part,<br>
but looks like an ad hoc hack.<br>
<br>
    I found this while I want to track all functions that might update clip<br>
BBox, this does not make sense to me. Although I've got no better solution,<br>
at least it might be more reasonable if we add a new backdoor for clip BBox<br>
and change shiftCTM to what it looks like. In this way SplashOutputDev<br>
still takes the responsibility, but GfxState is relieved.<br>
<br>
    What do you think ? I can create a patch.<br>
</blockquote>
Why do you think this is a problem?<br>
<br>
<br>
To be honest i don't see any need for a change, all these functions are<br>
internal and not supposed to be used outside the inner world of poppler<br>
itself, so the function is doing what it should do.<br>
<br>
At most we could rename the function, and name it something like<br>
shiftCTMAndClip or something, would that work for you?<br>
</blockquote></div>
It's definitely needed in SplashOutputDev: SplashOutputDev creates a new bitmap for transparency groups and has to shift the CTM so that Gfx continues drawing in that new bitmap with changed origin and not outside it. I see neither a need need to create a backdoor which makes it more unreadable nor to rename it, even it it changes the clipping as side effect, but that should be expected when someone shifts the current transfer matrix.<br>



<br>
Cheers,<br>
Thomas<div><div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br>
   Albert<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    regards,<br>
    - Lu<br>
</blockquote>
______________________________<u></u>_________________<br>
poppler mailing list<br>
<a href="mailto:poppler@lists.freedesktop.org" target="_blank">poppler@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/poppler" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/poppler</a><br>
</blockquote>
<br>
<br>
______________________________<u></u>_________________<br>
poppler mailing list<br>
<a href="mailto:poppler@lists.freedesktop.org" target="_blank">poppler@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/poppler" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/poppler</a><br>
</div></div></blockquote></div><br></div></div></div></div></div></div>