From 91241509143d0fb37701ee4521f124d75a721981 Mon Sep 17 00:00:00 2001 From: sam Date: Mon, 10 Nov 2003 18:23:23 +0000 Subject: [PATCH] * test/demo.c: + Ellipses demo. git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/ttyvaders/trunk@134 92316355-f0b4-4df1-b90c-862c8a59935f --- test/demo.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/test/demo.c b/test/demo.c index af33811..f3ab63a 100644 --- a/test/demo.c +++ b/test/demo.c @@ -35,6 +35,7 @@ static void demo_dots(void); static void demo_lines(void); static void demo_thin_lines(void); static void demo_circles(void); +static void demo_ellipses(void); static void demo_triangles(void); static void demo_outlined_triangles(void); static void demo_sprites(void); @@ -97,13 +98,17 @@ int main(int argc, char **argv) break; case '5': ee_clear(); - demo = demo_triangles; + demo = demo_ellipses; break; case '6': ee_clear(); - demo = demo_outlined_triangles; + demo = demo_triangles; break; case '7': + ee_clear(); + demo = demo_outlined_triangles; + break; + case '8': ee_clear(); demo = demo_sprites; break; @@ -149,11 +154,13 @@ static void display_menu(void) ee_goto(4, 10); ee_putstr("4: circles demo"); ee_goto(4, 11); - ee_putstr("5: triangles demo"); + ee_putstr("5: ellipses demo"); ee_goto(4, 12); - ee_putstr("6: outlined triangles demo"); + ee_putstr("6: triangles demo"); ee_goto(4, 13); - ee_putstr("7: sprites demo"); + ee_putstr("7: outlined triangles demo"); + ee_goto(4, 14); + ee_putstr("8: sprites demo"); ee_goto(4, yo - 2); ee_putstr("q: quit"); @@ -362,6 +369,41 @@ static void demo_circles(void) ee_refresh(); } +static void demo_ellipses(void) +{ + int w = ee_get_width(); + int h = ee_get_height(); + + /* Draw circles */ + if(force_clipping) + { + ee_color(ee_rand(1, 10)); + ee_draw_ellipse(ee_rand(- w, 2 * w), + ee_rand(- h, 2 * h), + ee_rand(0, w), + ee_rand(0, h), + '#'); + } + else + { + int x = ee_rand(0, w); + int y = ee_rand(0, h); + int a = ee_rand(0, w); + int b = ee_rand(0, h); + + if(x - a < 0 || x + a >= w || y - b < 0 || y + b >= h) + { + demo_ellipses(); + return; + } + + ee_color(ee_rand(1, 10)); + ee_draw_ellipse(x, y, a, b, '#'); + } + + ee_refresh(); +} + static void demo_triangles(void) { int w = ee_get_width();