Author: post
Date: 2009-06-29 19:31:02 +0200 (Mon, 29 Jun 2009)
New Revision: 2522

Modified:
   trunk/src/rs-loupe.c
Log:
Add black border to loupe to separate it from background.

Modified: trunk/src/rs-loupe.c
===================================================================
--- trunk/src/rs-loupe.c        2009-06-28 10:31:00 UTC (rev 2521)
+++ trunk/src/rs-loupe.c        2009-06-29 17:31:02 UTC (rev 2522)
@@ -24,6 +24,7 @@
 
 static gboolean expose(GtkWidget *widget, GdkEventExpose *event, RSLoupe 
*loupe);
 static void move(RSLoupe *loupe);
+static void add_border(RSLoupe *loupe, GdkPixbuf *buffer, GdkRectangle 
*request);
 static void redraw(RSLoupe *loupe);
 
 static void
@@ -188,6 +189,30 @@
 }
 
 static void
+add_border(RSLoupe *loupe, GdkPixbuf *buffer, GdkRectangle *request)
+{
+       guchar *img = gdk_pixbuf_get_pixels(buffer);
+       gint rs = gdk_pixbuf_get_rowstride (buffer);
+       gint ch = gdk_pixbuf_get_n_channels (buffer);
+
+       gint i;
+       img = &img[request->x*ch+request->y*rs];
+       guchar* img2 = &img[rs*(request->height-1)];
+       for (i = 0; i < request->width*ch; i++) 
+       {
+               img[i] = 0;
+               img2[i] = 0;
+       }
+
+       img2 = &img[(request->width-1)*ch];
+       for (i = 1; i < request->height; i++) 
+       {
+               img[i*rs] =img[i*rs+1] = img[i*rs+2] = 0;
+               img2[i*rs] = img2[i*rs+1] = img2[i*rs+2] = 0;
+       }
+}
+
+static void
 redraw(RSLoupe *loupe)
 {
        if (!loupe->filter)
@@ -216,6 +241,9 @@
        param.roi = &request;
 
        GdkPixbuf *buffer = rs_filter_get_image8(loupe->filter, &param);
+
+       add_border(loupe, buffer, &request);
+
        gdk_draw_pixbuf(drawable, gc, buffer, request.x, request.y, 0, 0, 
request.width, request.height, GDK_RGB_DITHER_NONE, 0, 0);
 
        g_object_unref(buffer);


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to