ported to GimpPreviewArea.

* plug-ins/common/scatter_hsv.c: ported to GimpPreviewArea.
This commit is contained in:
David Odin
2004-08-01 19:43:06 +00:00
parent b05f9f4b60
commit eaa8a2a51c
2 changed files with 168 additions and 161 deletions

View File

@ -1,3 +1,7 @@
2004-08-01 DindinX <david@dindinx.org>
* plug-ins/common/scatter_hsv.c: ported to GimpPreviewArea.
2004-08-01 Simon Budig <simon@gimp.org>
* app/widgets/gimpbrusheditor.c: Fixed oversight that accidentially

View File

@ -24,11 +24,7 @@
#include <stdio.h>
#include <stdlib.h>
#ifdef __GNUC__
#warning GTK_DISABLE_DEPRECATED
#endif
#undef GTK_DISABLE_DEPRECATED
#include <string.h>
#include <gtk/gtk.h>
@ -364,7 +360,7 @@ scatter_hsv_dialog (void)
gtk_container_add (GTK_CONTAINER (abox), pframe);
gtk_widget_show (pframe);
preview = gtk_preview_new (GTK_PREVIEW_COLOR);
preview = gimp_preview_area_new ();
{
gint width = gimp_drawable_width (drawable_id);
gint height = gimp_drawable_height (drawable_id);
@ -372,8 +368,7 @@ scatter_hsv_dialog (void)
preview_width = (PREVIEW_WIDTH < width) ? PREVIEW_WIDTH : width;
preview_height = (PREVIEW_HEIGHT < height) ? PREVIEW_HEIGHT : height;
}
gtk_preview_size (GTK_PREVIEW (preview), preview_width * 2, preview_height);
scatter_hsv_preview_update ();
gtk_widget_set_size_request (preview, preview_width * 2, preview_height);
gtk_container_add (GTK_CONTAINER (pframe), preview);
gtk_widget_set_events (preview,
GDK_BUTTON_PRESS_MASK |
@ -432,6 +427,8 @@ scatter_hsv_dialog (void)
gtk_widget_show (dlg);
scatter_hsv_preview_update ();
run = (gimp_dialog_run (GIMP_DIALOG (dlg)) == GTK_RESPONSE_OK);
gtk_widget_destroy (dlg);
@ -515,6 +512,7 @@ scatter_hsv_preview_update (void)
gint src_bpp, src_bpl;
guchar data[3];
gdouble shift_rate;
guchar *buffer;
drawable = gimp_drawable_get (drawable_id);
gimp_drawable_mask_bounds (drawable_id,
@ -525,6 +523,8 @@ scatter_hsv_preview_update (void)
src_bpp = (src_is_gray ? 1 : 3) + (src_has_alpha ? 1 : 0);
src_bpl = preview_width * src_bpp;
buffer = g_new (guchar, 2 * preview_width * preview_height * 3);
if (! preview_buffer)
preview_buffer = g_new (guchar, src_bpl * preview_height);
@ -568,9 +568,8 @@ scatter_hsv_preview_update (void)
scatter_hsv_scatter (data+0, data+1, data+2);
for (dy = 0; dy < scale; dy++)
for (dx = 0; dx < scale; dx++)
gtk_preview_draw_row (GTK_PREVIEW (preview), data,
preview_width + x * scale + dx,
y * scale + dy, 1);
memcpy ( buffer+((y*scale+dy)*2*preview_width+preview_width+x*scale+dx)*3,
data, 3);
}
}
for (y = 0; y < preview_height; y ++)
@ -582,10 +581,14 @@ scatter_hsv_preview_update (void)
data[i] = preview_buffer[y * src_bpl + x * src_bpp + i];
scatter_hsv_scatter (data+0, data+1, data+2);
gtk_preview_draw_row (GTK_PREVIEW (preview), data, x, y, 1);
memcpy (buffer+(y*2*preview_width+x)*3, data, 3);
}
gtk_widget_queue_draw (preview);
gimp_preview_area_draw (GIMP_PREVIEW_AREA (preview),
0, 0, preview_width * 2, preview_height,
GIMP_RGB_IMAGE,
buffer,
preview_width * 2 * 3);
g_free (buffer);
}
static void