[cairo] Problem with linear gradients and reflect mode post-rewrite

T Rowley tor at cs.brown.edu
Tue Jan 2 15:39:29 PST 2007


The following testcase works before the 
e9bef30d2bcdf41c7b7f20b3517839c37e752f75 landing, and has visual 
artifacts afterwards.

-------------- next part --------------
#include "cairo-test.h"
#include "stdio.h"

#define WIDTH  50
#define HEIGHT 50

static cairo_test_draw_function_t draw;

cairo_test_t test = {
    "linear-gradient-reflect",
    "Tests the drawing of linear gradient with reflect",
    WIDTH, HEIGHT,
    draw
};

static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
    cairo_pattern_t *pattern;

    cairo_set_source_rgb (cr, 0.5, 0.5, 0.5);
    cairo_paint (cr);

    cairo_save (cr);

    pattern = cairo_pattern_create_linear (0, 0, 10.0, 0);

    cairo_pattern_add_color_stop_rgb (pattern, 0.0,
				      0.0, 0.0, 1.0);
    cairo_pattern_add_color_stop_rgb (pattern, 1.0,
				      1.0, 0.0, 0.0);
    cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REFLECT);

    cairo_set_source (cr, pattern);
    cairo_pattern_destroy (pattern);
    cairo_rectangle (cr, 0.0, 0.0, WIDTH, HEIGHT);
    cairo_fill (cr);

    cairo_restore (cr);

    return CAIRO_TEST_SUCCESS;
}

int
main (void)
{
    return cairo_test (&test);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linear-gradient-reflect-ref.png
Type: image/png
Size: 216 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20070102/c25a8546/linear-gradient-reflect-ref.png


More information about the cairo mailing list