diff options
author | Zack Rusin <zackr@vmware.com> | 2009-05-01 12:41:38 -0400 |
---|---|---|
committer | Zack Rusin <zackr@vmware.com> | 2009-05-01 12:51:59 -0400 |
commit | 544dd4b11f7be76bb00fe29a60eaf2772dcc69ca (patch) | |
tree | 5aafdef60cc47ba38dd3aa1de57322d257093f7a /progs/openvg/trivial/lookup.c | |
parent | fbceedd2dee967b426ee187205941c6506769ea5 (diff) |
OpenVG 1.0 State Tracker
Import of the OpenVG 1.0 state tracker for Gallium.
Diffstat (limited to 'progs/openvg/trivial/lookup.c')
-rw-r--r-- | progs/openvg/trivial/lookup.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/progs/openvg/trivial/lookup.c b/progs/openvg/trivial/lookup.c new file mode 100644 index 0000000000..a103ba4488 --- /dev/null +++ b/progs/openvg/trivial/lookup.c @@ -0,0 +1,71 @@ +#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}; +VGfloat clearColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ +VGImage parent; + +VGPaint fill; + +static void +init(void) +{ + VGImage child1, child2; + VGubyte *data; + VGuint LUT[256]; + VGint i; + + data = (VGubyte *)malloc(sizeof(VGubyte)*window_width()*window_height()); + + for (i=0;i<window_width()*window_height();i++) { + data[i] = 0x00; + } + + for (i=0; i<256; i++) { + if ( i == 0 ) + LUT[0] = 0xFFFFFFFF; + else + LUT[i] = 0xFF00FFFF; + } + + parent = vgCreateImage( VG_A_8, 64, 64, VG_IMAGE_QUALITY_NONANTIALIASED ); + + vgImageSubData(parent, data, window_width(), VG_A_8, 0, 0, + window_width(), window_height()); + child1 = vgChildImage(parent, 0, 0, 32, 64); + child2 = vgChildImage(parent, 32, 0, 32, 64); + + vgLookupSingle(child2, child1, LUT, VG_GREEN, VG_FALSE, VG_TRUE); +} + +/* new window size or exposure */ +static void +reshape(int w, int h) +{ +} + +static void +draw(void) +{ + vgSetfv(VG_CLEAR_COLOR, 4, clearColor); + vgClear(0, 0, window_width(), window_height()); + //vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); + //vgLoadIdentity(); + //vgTranslate(10, 10); + vgDrawImage(parent); + vgFlush(); +} + + +int main(int argc, char **argv) +{ + set_window_size(64, 64); + return run(argc, argv, init, reshape, + draw, 0); +} |