diff options
Diffstat (limited to 'progs/openvg/trivial/arc.c')
-rw-r--r-- | progs/openvg/trivial/arc.c | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/progs/openvg/trivial/arc.c b/progs/openvg/trivial/arc.c deleted file mode 100644 index db686bea6b..0000000000 --- a/progs/openvg/trivial/arc.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "eglcommon.h" - -#include <VG/openvg.h> -#include <math.h> - -const VGfloat clear_color[4] = {1.0, 1.0, 1.0, 1.0}; -const VGfloat color[4] = {1.0, 1.0, 1.0, 0.5}; - -VGPath vgPath; - -static void ellipse(VGPath vgPath, VGfloat rx, VGfloat ry, VGfloat angle) -{ - static const VGubyte cmd[] = - { VG_MOVE_TO_ABS, VG_SCCWARC_TO_REL, VG_SCCWARC_TO_REL, VG_CLOSE_PATH }; - - VGfloat val[12]; - VGfloat c = cos(angle) * rx; - VGfloat s = sin(angle) * rx; - - val[0] = c; - val[1] = s; - val[2] = rx; - val[3] = ry; - val[4] = angle; - val[5] = -2.0f * c; - val[6] = -2.0f * s; - val[7] = rx; - val[8] = ry; - val[9] = angle; - val[10] = 2.0f * c; - val[11] = 2.0f * s; - - vgClearPath(vgPath, VG_PATH_CAPABILITY_ALL); - vgAppendPathData(vgPath, sizeof(cmd), cmd, val); - vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH); -} - -static void -init(void) -{ - VGPaint vgPaint; - - vgSetfv(VG_CLEAR_COLOR, 4, clear_color); - vgPath = vgCreatePath(VG_PATH_FORMAT_STANDARD, - VG_PATH_DATATYPE_F, 1.0f, 0.0f, 0, 0, - VG_PATH_CAPABILITY_ALL); - - vgPaint = vgCreatePaint(); - vgSetParameteri(vgPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR); - vgSetColor(vgPaint, 0x00ff00ff); - vgSetPaint(vgPaint, VG_FILL_PATH); - - vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED); - vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER); - vgSetf(VG_STROKE_LINE_WIDTH, 2.0f); - vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_SQUARE); - vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_MITER); - vgSetf(VG_STROKE_MITER_LIMIT, 4.0f); - vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); -} - -/* new window size or exposure */ -static void -reshape(int w, int h) -{ -} - -static void -draw(void) -{ - vgClear(0, 0, window_width(), window_height()); - -#if 0 - vgLoadIdentity(); - vgTranslate(40.0f, 24.0f); - vgScale(0.61804f, 0.61804f); - vgShear(-1.0f, 0.0f); - vgDrawPath(vgPath, VG_FILL_PATH | VG_STROKE_PATH); -#else - - /* row 1, col 1: Identity transform. */ - - vgLoadIdentity(); - vgTranslate(8.0f, 8.0f); - ellipse(vgPath, 4.0f, 4.0f, 0.0f); - - /* row 1, col 2: 10^3 horizontal squeeze. */ - - vgLoadIdentity(); - vgTranslate(24.0f, 8.0f); - vgScale(1.0e-3f, 1.0f); - ellipse(vgPath, 4.0e3f, 4.0f, 0.0f); - - /* row 1, col 3: 10^6 horizontal squeeze. */ - - vgLoadIdentity(); - vgTranslate(40.0f, 8.0f); - vgScale(1.0e-6f, 1.0f); - ellipse(vgPath, 4.0e6f, 4.0f, 0.0f); - - /* row 1, col 4: 10^9 horizontal squeeze. */ - - vgLoadIdentity(); - vgTranslate(56.0f, 8.0f); - vgScale(1.0e-9f, 1.0f); - ellipse(vgPath, 4.0e9f, 4.0f, 0.0f); - - /* row 2, col 1: 10^3 vertical squeeze. */ - - vgLoadIdentity(); - vgTranslate(8.0f, 24.0f); - vgScale(1.0f, 1.0e-3f); - ellipse(vgPath, 4.0f, 4.0e3f, 0.0f); - - /* row 2, col 2: Shear 0. */ - - vgLoadIdentity(); - vgTranslate(24.0f, 24.0f); - vgShear(0.0f, 0.0f); - ellipse(vgPath, 4.0f, 4.0f, 0.0f); - - /* row 2, col 3: Horizontal shear -1. */ - - vgLoadIdentity(); - vgTranslate(40.0f, 24.0f); - vgScale(0.61804f, 0.61804f); - vgShear(-1.0f, 0.0f); - ellipse(vgPath, 10.47213f, 4.0f, 31.717f); -#endif - vgFlush(); -} - - -int main(int argc, char **argv) -{ - set_window_size(64, 64); - return run(argc, argv, init, reshape, - draw, 0); -} |