[cairo-bugs] [Bug 51910] New: Surface based patterns are drawn incorrectly when using non-default pattern matrix

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jul 9 13:51:03 PDT 2012


             Bug #: 51910
           Summary: Surface based patterns are drawn incorrectly when
                    using non-default pattern matrix
    Classification: Unclassified
           Product: cairo
           Version: 1.12.2
          Platform: x86-64 (AMD64)
        OS/Version: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: xlib backend
        AssignedTo: cworth at cworth.org
        ReportedBy: thezbyg at gmail.com
         QAContact: cairo-bugs at cairographics.org

Created attachment 64019
  --> https://bugs.freedesktop.org/attachment.cgi?id=64019
Small program replicating the bug

Drawing surface based patterns breaks when using non-default pattern matrix in
Xlib backend. The same code works correctly in, at least, image backend. 

If you have a 32x32 px pattern image, then in the following code, first two
rectangles will have incorrect patterns.

pattern_surface = cairo_image_surface_create_from_png("pattern.png");
pattern = cairo_pattern_create_for_surface(pattern_surface);
cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT);
cairo_matrix_t matrix;
cairo_matrix_init_translate(&matrix, 14.1, 0);
cairo_pattern_set_matrix(pattern, &matrix);
cairo_set_source(cr, pattern);
for (int i = 0; i < 8; i++){
    cairo_rectangle(cr, i * 3.5, i * 32, 256, 32);

The same code works correctly when using image backend.

I attached a small program replicating this bug. This program shows the output
of Xlib backend in a window and saves the output of image backend into a file

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