Merge branch '7.8'
[mesa.git] / progs / egl / openvg / trivial / roundedrect.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 color[4] = {0.9, 0.1, 0.1, 0.8};
7
8 VGPath path;
9 VGPaint fill;
10
11
12 static void
13 init(void)
14 {
15 static const VGubyte sqrCmds[10] = {VG_MOVE_TO_ABS,
16 VG_LINE_TO_ABS,
17 VG_CUBIC_TO_ABS,
18 VG_LINE_TO_ABS,
19 VG_CUBIC_TO_ABS,
20 VG_LINE_TO_ABS,
21 VG_CUBIC_TO_ABS,
22 VG_LINE_TO_ABS,
23 VG_CUBIC_TO_ABS,
24 VG_CLOSE_PATH};
25 static const VGfloat sqrCoords[] = {
26 45.885571, 62.857143,
27 154.11442, 62.857143,
28 162.1236, 62.857143, 168.57142, 70.260744, 168.57142, 79.457144,
29 168.57142, 123.4,
30 168.57142, 132.5964, 162.1236, 140, 154.11442, 140,
31 45.885571, 140,
32 37.876394, 140, 31.428572, 132.5964, 31.428572, 123.4,
33 31.428572, 79.457144,
34 31.428572, 70.260744, 37.876394,62.857143, 45.885571,62.857143
35 };
36 path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 1, 0, 0, 0,
37 VG_PATH_CAPABILITY_APPEND_TO);
38 vgAppendPathData(path, 10, sqrCmds, sqrCoords);
39
40 fill = vgCreatePaint();
41 vgSetParameterfv(fill, VG_PAINT_COLOR, 4, color);
42 vgSetPaint(fill, VG_FILL_PATH);
43
44 vgSetfv(VG_CLEAR_COLOR, 4, white_color);
45 vgSetf(VG_STROKE_LINE_WIDTH, 6);
46 }
47
48 /* new window size or exposure */
49 static void
50 reshape(int w, int h)
51 {
52 vgLoadIdentity();
53 }
54
55 static void
56 draw(void)
57 {
58 vgClear(0, 0, window_width(), window_height());
59 vgDrawPath(path, VG_STROKE_PATH);
60 }
61
62
63 int main(int argc, char **argv)
64 {
65 return run(argc, argv, init, reshape,
66 draw, 0);
67 }