6
const VGfloat clear_color[4] = {1.0, 1.0, 1.0, 1.0};
7
const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5};
11
static void ellipse(VGPath vgPath, VGfloat rx, VGfloat ry, VGfloat angle)
13
static const VGubyte cmd[] =
14
{ VG_MOVE_TO_ABS, VG_SCCWARC_TO_REL, VG_SCCWARC_TO_REL, VG_CLOSE_PATH };
17
VGfloat c = cos(angle) * rx;
18
VGfloat s = sin(angle) * rx;
33
vgClearPath(vgPath, VG_PATH_CAPABILITY_ALL);
34
vgAppendPathData(vgPath, sizeof(cmd), cmd, val);
35
vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH);
43
vgSetfv(VG_CLEAR_COLOR, 4, clear_color);
44
vgPath = vgCreatePath(VG_PATH_FORMAT_STANDARD,
45
VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0,
46
VG_PATH_CAPABILITY_ALL);
48
vgPaint = vgCreatePaint();
49
vgSetParameteri(vgPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
50
vgSetColor(vgPaint, 0x00ff00ff);
51
vgSetPaint(vgPaint, VG_FILL_PATH);
53
vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
54
vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER);
55
vgSetf(VG_STROKE_LINE_WIDTH, 2.0f);
56
vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_SQUARE);
57
vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_MITER);
58
vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
59
vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
62
/* new window size or exposure */
71
vgClear(0, 0, window_width(), window_height());
75
vgTranslate(40.0f, 24.0f);
76
vgScale(0.61804f, 0.61804f);
78
vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH);
81
/* row 1, col 1: Identity transform. */
84
vgTranslate(8.0f, 8.0f);
85
ellipse(vgPath, 4.0f, 4.0f, 0.0f);
87
/* row 1, col 2: 10^3 horizontal squeeze. */
90
vgTranslate(24.0f, 8.0f);
91
vgScale(1.0e-3f, 1.0f);
92
ellipse(vgPath, 4.0e3f, 4.0f, 0.0f);
94
/* row 1, col 3: 10^6 horizontal squeeze. */
97
vgTranslate(40.0f, 8.0f);
98
vgScale(1.0e-6f, 1.0f);
99
ellipse(vgPath, 4.0e6f, 4.0f, 0.0f);
101
/* row 1, col 4: 10^9 horizontal squeeze. */
104
vgTranslate(56.0f, 8.0f);
105
vgScale(1.0e-9f, 1.0f);
106
ellipse(vgPath, 4.0e9f, 4.0f, 0.0f);
108
/* row 2, col 1: 10^3 vertical squeeze. */
111
vgTranslate(8.0f, 24.0f);
112
vgScale(1.0f, 1.0e-3f);
113
ellipse(vgPath, 4.0f, 4.0e3f, 0.0f);
115
/* row 2, col 2: Shear 0. */
118
vgTranslate(24.0f, 24.0f);
120
ellipse(vgPath, 4.0f, 4.0f, 0.0f);
122
/* row 2, col 3: Horizontal shear -1. */
125
vgTranslate(40.0f, 24.0f);
126
vgScale(0.61804f, 0.61804f);
127
vgShear(-1.0f, 0.0f);
128
ellipse(vgPath, 10.47213f, 4.0f, 31.717f);
134
int main(int argc, char **argv)
136
set_window_size(64, 64);
137
return run(argc, argv, init, reshape,