Changed the entire file structure to remove the .c includes from cairo.c
[phpCairo.git] / testcases / phpCairo / operator-clear.php~
blobf0f756a8c8a4ca1cdf8b656abc6480908dd30d2d
1 <?
3 $width = 16
4 $height = 16
5 $pad = 2
7 function set_solid_pattern ($x, $y)
9     global $con;
10     $con->set_source_rgb (1.0, 0, 0.0);
13 function set_gradient_pattern ($x, $y)
15     global $con,$width,$height;
17     $pat = new CairoLinearGradient ($x, $y, $x + $width, $y + $height);
18     $pat->add_color_stop_rgba (0.2, 1, 0, 0, 1);
19     $pat->add_color_stop_rgba ( 0.8, 1, 0, 0, 0.0);
20     $con->set_source ($pat);
21     
24 function draw_mask ($x, $y)
26     
27     global $con,$width,$height;
28     double $wi = floor(0.9 * $width);
29     double $he = floor(0.9 * $height);
30     x += 0.05 * $width;
31     y += 0.05 * $height;
32     new $s = new CairoImageSurface(FORMAT_ARGB32, 1, 1);
33     $s->create_similar ($con->get_group_target(),
34                                                  CONTENT_ALPHA,
35                                                  $wi, $he);
36     $con2 = new CairoContext($s);
38     $con2->set_source_rgb (1, 1, 1); /* white */
40     $con2->arc (0.5 * $wi, 0.5 * $he, 0.45 * $he, 0, 2 * M_PI);
41     $con2->fill ();
44     $con->mask_surface ($s, $x, $y);
46    
49 function draw_glyphs ($x, $y)
51     
52     global $con,$width,$height;
53     $con->set_font_size (0.8 * $height);
55     $extents = $con->text_extents ("FG");
56     $con->move_to (cr,
57                    $x + floor (($width - $extents["width"]) / 2 + 0.5) - $extents["x_bearing"],
58                    $y + floor (($height - $extents["height"]) / 2 + 0.5) - $extents["y_bearing"]);
59     $con->show_text ("FG");
62 function draw_polygon ($x, $y)
64     global $con,$width,$height;
65     
66     $wi = floor(0.9 * $width);
67     $he = floor(0.9 * $height);
68     $x += 0.05 * $width;
69     $y += 0.05 * $height;
71     $con->new_path ();
72     $con->move_to ($x, $y);
73     $con->line_to ($x, $y + $he);
74     $con->line_to ($x + $wi / 2, $y + 3 * $he / 4);
75     $con->line_to ($x + $wi, $y + $he);
76     $con->line_to ($x + $wi, $y);
77     $con->line_to ($x + $wi / 2, $y + $he / 4);
78     $con->close_path ();
79     $con->fill ();
82 function draw_rects ($x, $y)
84     global $con,$width,$height;
85   
86     $block_width = floor(0.33 * $width + 0.5);
87     $block_height = floor(0.33 * $height + 0.5);
88     
90     for ($i = 0; $i < 3; $i++)
91         for ($j = 0; $j < 3; $j++)
92             if (($i + $j) % 2 == 0)
93                 $con->rectangle (
94                                  $x + $block_width * $i, $y + $block_height * $j,
95                                  $block_width,         $block_height);
97     $con->fill ();
100     $con->select_font_face (cr, "Bitstream Vera Sans",
101                             CAIRO_FONT_SLANT_NORMAL,
102                             CAIRO_FONT_WEIGHT_NORMAL);
104     for ($j = 0; $j < 4; $j++) {
105         for ($i = 0; $i < 2; $i++) {
106             $x = $i * ($width + $pad) + $pad;
107             $y = $j * ($height + $pad) + $pad;
109             $con->save ();
111             $pat = new CairoLinearGradient ($x + $width, $y,
112                                                    $x,         $y + $height);
113             $pat->add_color_stop_rgba (0.2,
114                                                0.0, 0.0, 1.0, 1.0); /* Solid blue */
115             $pat->add_color_stop_rgba ( 0.8,
116                                                0.0, 0.0, 1.0, 0.0); /* Transparent blue */
117             $con->set_source ($pat);
118             
120             $con->rectangle ($x, $y, $width, $height);
121             $con->fill_preserve ();
122             $con->clip ();
124             $con->set_operator (OPERATOR_CLEAR);
125             //pattern_funcs[i] ($x, $y);
126             
127             //draw_funcs[j] (cr, x, y);
128             
129             $con->restore (cr);
130         }
131     }