2005-07-15 13:45:19 +00:00
|
|
|
#include <math.h>
|
|
|
|
|
#include "cairo-test.h"
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
#define SIZE 100
|
|
|
|
|
#define SIZE2 20
|
|
|
|
|
#define OFFSET 10
|
|
|
|
|
|
2006-07-13 12:58:24 -04:00
|
|
|
static cairo_test_draw_function_t draw;
|
|
|
|
|
|
2005-07-15 13:45:19 +00:00
|
|
|
cairo_test_t test = {
|
|
|
|
|
"composite-integer-translate-over-repeat",
|
|
|
|
|
"Test simple compositing: integer-translation 32->32 OVER, with repeat",
|
2006-07-11 22:19:39 -04:00
|
|
|
SIZE, SIZE,
|
|
|
|
|
draw
|
2005-07-15 13:45:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static cairo_test_status_t
|
|
|
|
|
draw (cairo_t *cr, int width, int height)
|
|
|
|
|
{
|
|
|
|
|
cairo_surface_t *image;
|
|
|
|
|
cairo_pattern_t *pat;
|
|
|
|
|
cairo_t *cr2;
|
|
|
|
|
|
|
|
|
|
image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, SIZE2, SIZE2);
|
|
|
|
|
|
|
|
|
|
cr2 = cairo_create (image);
|
|
|
|
|
cairo_set_source_rgba (cr2, 1, 0, 0, 1);
|
|
|
|
|
cairo_rectangle (cr2, 0, 0, SIZE2/2, SIZE2/2);
|
|
|
|
|
cairo_fill (cr2);
|
|
|
|
|
cairo_set_source_rgba (cr2, 0, 1, 0, 1);
|
|
|
|
|
cairo_rectangle (cr2, SIZE2/2, 0, SIZE2/2, SIZE2/2);
|
|
|
|
|
cairo_fill (cr2);
|
|
|
|
|
cairo_set_source_rgba (cr2, 0, 0, 1, 1);
|
|
|
|
|
cairo_rectangle (cr2, 0, SIZE2/2, SIZE2/2, SIZE2/2);
|
|
|
|
|
cairo_fill (cr2);
|
|
|
|
|
cairo_set_source_rgba (cr2, 1, 1, 0, 1);
|
|
|
|
|
cairo_rectangle (cr2, SIZE2/2, SIZE2/2, SIZE2/2, SIZE2/2);
|
|
|
|
|
cairo_fill (cr2);
|
|
|
|
|
cairo_destroy (cr2);
|
|
|
|
|
|
|
|
|
|
pat = cairo_pattern_create_for_surface (image);
|
|
|
|
|
cairo_pattern_set_extend (pat, CAIRO_EXTEND_REPEAT);
|
|
|
|
|
|
|
|
|
|
cairo_set_source_rgba (cr, 0, 0, 0, 1);
|
|
|
|
|
cairo_rectangle (cr, 0, 0, SIZE, SIZE);
|
|
|
|
|
cairo_fill (cr);
|
|
|
|
|
|
|
|
|
|
cairo_translate (cr, OFFSET, OFFSET);
|
2005-08-08 13:46:11 +00:00
|
|
|
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
|
2005-07-15 13:45:19 +00:00
|
|
|
cairo_set_source (cr, pat);
|
|
|
|
|
cairo_rectangle (cr, 0, 0, SIZE - OFFSET, SIZE - OFFSET);
|
|
|
|
|
cairo_fill (cr);
|
|
|
|
|
|
|
|
|
|
cairo_surface_destroy (image);
|
2005-07-18 08:23:21 +00:00
|
|
|
cairo_pattern_destroy (pat);
|
2005-07-15 13:45:19 +00:00
|
|
|
|
|
|
|
|
return CAIRO_TEST_SUCCESS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
|
main (void)
|
|
|
|
|
{
|
2006-07-11 22:19:39 -04:00
|
|
|
return cairo_test (&test);
|
2005-07-15 13:45:19 +00:00
|
|
|
}
|