[cairo-bugs] [Bug 38117] New: cairo_show_glyphs sometimes draws in the wrong place with half pixel coords

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jun 9 08:27:42 PDT 2011


https://bugs.freedesktop.org/show_bug.cgi?id=38117

           Summary: cairo_show_glyphs sometimes draws in the wrong place
                    with half pixel coords
           Product: cairo
           Version: 1.10.2
          Platform: x86-64 (AMD64)
        OS/Version: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: general
        AssignedTo: cworth at cworth.org
        ReportedBy: martin at lispworks.com
         QAContact: cairo-bugs at cairographics.org


Created an attachment (id=47775)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=47775)
Example source code

When using a transformation matrix that shifts by half a pixel,
cairo_show_glyphs sometimes draws the first and/or second glyphs in the wrong
place.

The effect varies depending on how much of the first glyph is visible in the
region being redrawn (I think it is related to the clip region that gtk sets
up).  I've tested this on Fedora 14.

I've attached an example that displays a window divided into three sections and
also two strings "abc".  The bottom string is drawn with an offset of half a
pixel horizontally relative to the top string.

Slightly different expose events can be generated to demonstrate the problem by
clicking in different thirds of the window

In 1.10.2 and master, clicking in the left third of the window displays the
correct strings.

In 1.10.2, clicking in the middle third of the window displays the "b" one
pixel to the left of where it should be and clicking in the right third of the
window displays both the "a" and the "b" one pixel to the left of where they
should be.

In master, clicking in the middle or right thirds of the window displays the
"b" one pixel to the left of where it should be.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the cairo-bugs mailing list