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