[cairo-bugs] [Bug 29501] cairo_restore does not undo a clip done on a DirectFB surface
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Wed Aug 11 11:21:51 PDT 2010
https://bugs.freedesktop.org/show_bug.cgi?id=29501
--- Comment #1 from Bill Spitzak <spitzak at gmail.com> 2010-08-11 11:21:50 PDT ---
Don't you have to do some sort of sync() call to get the surface to
actually match? I suspect Cairo is not updating the clip until it needs
to draw something, which is why removing the show_layout() seems to work
(because it never applied the clip).
bugzilla-daemon at freedesktop.org wrote:
> https://bugs.freedesktop.org/show_bug.cgi?id=29501
>
> Summary: cairo_restore does not undo a clip done on a DirectFB
> surface
> Product: cairo
> Version: 1.8.4
> Platform: Other
> OS/Version: Linux (All)
> Status: NEW
> Severity: normal
> Priority: medium
> Component: directfb backend
> AssignedTo: cairo-bugs at cairographics.org
> ReportedBy: allison.newman at sfr.com
> QAContact: cairo-bugs at cairographics.org
>
>
> Take the following code:
>
>
> cairo_save(pCairo);
> cairo_rectangle(pCairo, x, y, w, h);
> cairo_clip(pCairo);
> cairo_translate(pCairo, x, y);
> pango_cairo_show_layout(pCairo, pLayout);
> cairo_restore(pCairo);
>
>
> After the cairo_restore(), if I try to do a DirectFB drawing operation on the
> surface outside the region specified for the cairo clip, there is no drawing
> done.
>
> I'm not sure exactly where the bug is though, it may be in pango. If I remove
> either the cairo_clip() or the pango_cairo_show_layout(), I can still draw
> correctly on the surface, but if I have both, the clip remains in effect.
>
> Adding:
> pFBSurface->SetClip(pFBSurface, NULL);
>
> after the cairo_restore() allows me to draw correctly to the surface again.
>
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the cairo-bugs
mailing list