From 9946d0d51bfa0fb3a00aaf4cea0bc9845d7e12f1 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Sat, 16 Aug 2008 12:11:49 -0300 Subject: [PATCH] Rescale points and use its individual scale to show image --- gdk.c | 3 ++- movie.c | 15 +++++++++++++++ point.h | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gdk.c b/gdk.c index 541fbe5..780e2ba 100644 --- a/gdk.c +++ b/gdk.c @@ -59,7 +59,7 @@ expose (GtkWidget *widget, GdkEventExpose *event, gpointer data) gdk_pixbuf_scale (ctx->picture, screen, 0, 0, event->area.width, event->area.height, -point.x + event->area.width/2, -point.y + event->area.height/2, - 1.0, 1.0, GDK_INTERP_HYPER); + point.rx, point.ry, GDK_INTERP_HYPER); gdk_draw_pixbuf (widget->window, NULL, screen, 0, 0, 0, 0, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); gdk_pixbuf_unref (screen); @@ -91,6 +91,7 @@ main (int argc, char **argv) else filename = argv[1]; ctx.points = ReadPoints ("pro-gnu"); + rescale_points (ctx.points); ctx.picture = gdk_pixbuf_new_from_file (filename, NULL); ctx.i = ctx.points->len; colorspace = gdk_pixbuf_get_colorspace (ctx.picture); diff --git a/movie.c b/movie.c index 8fbbf6a..4ff67db 100644 --- a/movie.c +++ b/movie.c @@ -102,3 +102,18 @@ ReadPoints (char *filename) fclose (file); return points; } + +void +rescale_points (GArray *points) +{ + Point *point; + int i; + for (i = 0; i < points->len; i++) + { + point = &(g_array_index (points, Point, i)); + point->rx = 4.0; + point->ry = 4.0; + point->x *= point->rx; + point->y *= point->ry; + } +} diff --git a/point.h b/point.h index f503922..fc27a9b 100644 --- a/point.h +++ b/point.h @@ -25,9 +25,11 @@ typedef struct { int x, y; + double rx, ry; char *name; } Point; GArray * ReadPoints (char *); +void rescale_points (GArray *); #endif -- 2.20.1