ported to GimpPreviewArea.
* plug-ins/common/scatter_hsv.c: ported to GimpPreviewArea.
This commit is contained in:
@ -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
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user