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
init(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
reshape(int w,int h)50 reshape(int w, int h)
51 {
52    vgLoadIdentity();
53 }
54 
55 static void
draw(void)56 draw(void)
57 {
58    vgClear(0, 0, window_width(), window_height());
59    vgDrawPath(path, VG_STROKE_PATH);
60 }
61 
62 
main(int argc,char ** argv)63 int main(int argc, char **argv)
64 {
65    return run(argc, argv, init, reshape,
66               draw, 0);
67 }
68