132001f49Smrg#include "eglcommon.h" 232001f49Smrg 332001f49Smrg#include <VG/openvg.h> 432001f49Smrg#include <VG/vgu.h> 532001f49Smrg#include <stdio.h> 632001f49Smrg#include <math.h> 732001f49Smrg#include <stdlib.h> 832001f49Smrg 932001f49Smrgstatic void 1032001f49Smrginit(void) 1132001f49Smrg{ 1232001f49Smrg} 1332001f49Smrg 1432001f49Smrg/* new window size or exposure */ 1532001f49Smrgstatic void 1632001f49Smrgreshape(int w, int h) 1732001f49Smrg{ 1832001f49Smrg} 1932001f49Smrg 2032001f49Smrg 2132001f49Smrgstatic void 2232001f49Smrgdraw(void) 2332001f49Smrg{ 2432001f49Smrg VGint WINDSIZEX = window_width(); 2532001f49Smrg VGint WINDSIZEY = window_height(); 2632001f49Smrg VGPath path; 2732001f49Smrg VGPaint paint; 2832001f49Smrg 2932001f49Smrg VGfloat clearColor[] = {1.0f, 1.0f, 1.0f, 0.0f};/* white color */ 3032001f49Smrg VGfloat fillColor[] = {1.0f, 0.0f, 0.0f, 1.0f};/* red color */ 3132001f49Smrg 3232001f49Smrg#if 1 3332001f49Smrg VGubyte commands[4] = {VG_MOVE_TO_ABS, VG_LCWARC_TO_ABS, VG_SCWARC_TO_ABS, VG_CLOSE_PATH}; 3432001f49Smrg#else 3532001f49Smrg VGubyte commands[4] = {VG_MOVE_TO_ABS, VG_SCCWARC_TO_ABS, VG_LCCWARC_TO_ABS,VG_CLOSE_PATH}; 3632001f49Smrg#endif 3732001f49Smrg VGfloat coords[] = {32.0f, 0.0f, 3832001f49Smrg -32.0f, -32.0f, 0.0f, 64.0f, 32.0f, 3932001f49Smrg -32.0f, -32.0f, 0.0f, 32.0f, 0.0f}; 4032001f49Smrg 4132001f49Smrg 4232001f49Smrg vgSetfv(VG_CLEAR_COLOR, 4, clearColor); 4332001f49Smrg vgClear(0, 0, WINDSIZEX, WINDSIZEY); 4432001f49Smrg vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); 4532001f49Smrg 4632001f49Smrg vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); 4732001f49Smrg vgLoadIdentity(); 4832001f49Smrg //vgTranslate(32.0f, 32.0f); 4932001f49Smrg 5032001f49Smrg path = vgCreatePath( VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F, 5132001f49Smrg 1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL ); 5232001f49Smrg if ( path == VG_INVALID_HANDLE ) { 5332001f49Smrg return; 5432001f49Smrg } 5532001f49Smrg paint = vgCreatePaint(); 5632001f49Smrg if ( paint == VG_INVALID_HANDLE ) { 5732001f49Smrg vgDestroyPath(path); 5832001f49Smrg return; 5932001f49Smrg } 6032001f49Smrg 6132001f49Smrg vgAppendPathData(path, 4, commands, coords); 6232001f49Smrg vgSetParameterfv(paint, VG_PAINT_COLOR, 4, fillColor); 6332001f49Smrg vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); 6432001f49Smrg vgSetPaint(paint, VG_FILL_PATH); 6532001f49Smrg vgDrawPath(path, VG_FILL_PATH); 6632001f49Smrg 6732001f49Smrg vgDestroyPath(path); 6832001f49Smrg vgDestroyPaint(paint); 6932001f49Smrg} 7032001f49Smrg 7132001f49Smrg 7232001f49Smrgint main(int argc, char **argv) 7332001f49Smrg{ 7432001f49Smrg set_window_size(64, 64); 7532001f49Smrg return run(argc, argv, init, reshape, 7632001f49Smrg draw, 0); 7732001f49Smrg} 78