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, ¶m);
+
+ 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