1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
#include "eglcommon.h"
#include <VG/openvg.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5};
VGImage srcImg;
VGImage dstImg;
VGPaint fill;
VGfloat bgCol[4] = {0.906f, 0.914f, 0.761f, 1.0f};
static void
init(void)
{
VGfloat red[4];
VGfloat grey[4];
VGfloat orange[4];
VGfloat blue[4];
VGfloat black[4];
VGfloat white[4];
VGshort transKernel[49] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
red[0] = 0.6710f;
red[1] = 0.1060f;
red[2] = 0.1330f;
red[3] = 1.0f;
grey[0] = 0.6347f;
grey[1] = 0.6561f;
grey[2] = 0.6057f;
grey[3] = 1.0f;
orange[0] = 1.0000f;
orange[1] = 0.8227f;
orange[2] = 0.5057f;
orange[3] = 1.0f;
blue[0] = 0.0000f;
blue[1] = 0.6908f;
blue[2] = 0.8595f;
blue[3] = 1.0f;
black[0] = 0;
black[1] = 0;
black[2] = 0;
black[3] = 1.0f;
white[0] = 1;
white[1] = 1;
white[2] = 1;
white[3] = 1.0f;
vgSetfv(VG_TILE_FILL_COLOR, 4, blue);
vgSeti(VG_FILTER_CHANNEL_MASK, 14);
/* Setup images */
srcImg = vgCreateImage(VG_sRGBA_8888, 32, 32,
VG_IMAGE_QUALITY_NONANTIALIASED);
dstImg = vgCreateImage(VG_sRGBA_8888, 32, 32,
VG_IMAGE_QUALITY_NONANTIALIASED);
vgSetfv(VG_CLEAR_COLOR, 4, black);
vgClearImage(srcImg, 0, 0, 32, 32);
vgSetfv(VG_CLEAR_COLOR, 4, red);
vgClearImage(srcImg, 3, 3, 27, 27);
vgSetfv(VG_CLEAR_COLOR, 4, orange);
vgClearImage(dstImg, 0, 0, 32, 32);
transKernel[8] = 1;
vgConvolve(dstImg, srcImg, 3, 3, 3, 0, transKernel,
1, 0, VG_TILE_FILL);
}
/* new window size or exposure */
static void
reshape(int w, int h)
{
}
static void
draw(void)
{
vgSetfv(VG_CLEAR_COLOR, 4, bgCol);
vgClear(0, 0, window_width(), window_height());
vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE);
vgLoadIdentity();
vgTranslate(10, 10);
vgDrawImage(dstImg);
vgFlush();
}
int main(int argc, char **argv)
{
set_window_size(64, 64);
return run(argc, argv, init, reshape,
draw, 0);
}
|