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