Merge branch '7.8'
[mesa.git] / progs / egl / openvg / trivial / vguarc.c
1 #include "eglcommon.h"
2
3 #include <VG/openvg.h>
4 #include <VG/vgu.h>
5
6 const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
7 const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
8
9 VGPath path;
10 VGPaint paint;
11
12
13 static void
14 init(void)
15 {
16 VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */
17 VGfloat greenColor[] = {0.0f, 1.0f, 0.0f, 1.0f};/* green color */
18 VGint arcType = VGU_ARC_OPEN;
19 VGfloat x, y, w, h, startAngle, angleExtent;
20
21 x = 150;
22 y = 150;
23 w = 150;
24 h = 150;
25 #if 0
26 startAngle = -540.0f;
27 angleExtent = 270.0f;
28 #else
29 startAngle = 270.0f;
30 angleExtent = 90.0f;
31 #endif
32
33 paint = vgCreatePaint();
34
35 vgSetPaint(paint, VG_STROKE_PATH);
36 vgSetParameterfv(paint, VG_PAINT_COLOR, 4, greenColor);
37 vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
38 vgSetf(VG_STROKE_LINE_WIDTH, 6.0f);
39 vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
40 vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
41
42 path = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
43 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL);
44
45 vguArc(path, x, y, w, h, startAngle, angleExtent, arcType);
46
47 vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT);
48 vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL);
49 vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
50 }
51
52 /* new window size or exposure */
53 static void
54 reshape(int w, int h)
55 {
56 vgLoadIdentity();
57 }
58
59 static void
60 draw(void)
61 {
62 vgClear(0, 0, window_width(), window_height());
63 vgDrawPath(path, VG_STROKE_PATH);
64
65 vgFlush();
66 }
67
68
69 int main(int argc, char **argv)
70 {
71 // set_window_size(64, 63);
72 return run(argc, argv, init, reshape,
73 draw, 0);
74 }