Merge branch '7.8'
[mesa.git] / progs / egl / openvg / trivial / star-nonzero.c
1 #include "eglcommon.h"
2
3 #include <VG/openvg.h>
4
5 const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
6 const VGfloat green_color[4] = {0.0, 1.0, 0.0, 0.8};
7
8 VGPath path;
9 VGPaint fill;
10
11
12 static void
13 init(void)
14 {
15 static const VGubyte cmds[6] = {VG_MOVE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS, VG_LINE_TO_ABS,
16 VG_LINE_TO_ABS, VG_CLOSE_PATH};
17 static const VGfloat coords[] = { 0, 200,
18 300, 200,
19 50, 0,
20 150, 300,
21 250, 0};
22 path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
23 VG_PATH_CAPABILITY_APPEND_TO);
24 vgAppendPathData(path, 6, cmds, coords);
25
26 fill = vgCreatePaint();
27 vgSetParameterfv(fill, VG_PAINT_COLOR, 4, green_color);
28 vgSetPaint(fill, VG_FILL_PATH);
29
30 vgSetfv(VG_CLEAR_COLOR, 4, white_color);
31 vgSeti(VG_FILL_RULE, VG_NON_ZERO);
32 }
33
34 /* new window size or exposure */
35 static void
36 reshape(int w, int h)
37 {
38 vgLoadIdentity();
39 }
40
41 static void
42 draw(void)
43 {
44 vgClear(0, 0, window_width(), window_height());
45 vgDrawPath(path, VG_FILL_PATH | VG_STROKE_PATH);
46
47 vgFlush();
48 }
49
50
51 int main(int argc, char **argv)
52 {
53 return run(argc, argv, init, reshape,
54 draw, 0);
55 }