Use a GimpPreviewArea instead of GtkPreview.
* plug-ins/common/curve_bend.c: Use a GimpPreviewArea instead of GtkPreview.
This commit is contained in:
@ -1,3 +1,8 @@
|
||||
2004-07-30 DindinX <david@dindinx.org>
|
||||
|
||||
* plug-ins/common/curve_bend.c: Use a GimpPreviewArea instead of
|
||||
GtkPreview.
|
||||
|
||||
2004-07-30 Sven Neumann <sven@gimp.org>
|
||||
|
||||
Applied a bunch of small changes contributed by Tim Mooney to fix
|
||||
|
@ -41,11 +41,6 @@
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#warning GTK_DISABLE_DEPRECATED
|
||||
#endif
|
||||
#undef GTK_DISABLE_DEPRECATED
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include <libgimp/gimp.h>
|
||||
@ -92,9 +87,7 @@
|
||||
#define PV_IMG_HEIGHT 128
|
||||
#define RADIUS 3
|
||||
#define MIN_DISTANCE 8
|
||||
#define PREVIEW_BPP 3
|
||||
#define PREVIEW_BG_GRAY1 108
|
||||
#define PREVIEW_BG_GRAY2 156
|
||||
#define PREVIEW_BPP 4
|
||||
|
||||
#define SMOOTH 0
|
||||
#define GFREE 1
|
||||
@ -1293,8 +1286,8 @@ bender_new_dialog (GimpDrawable *drawable)
|
||||
gtk_container_add (GTK_CONTAINER (abox), frame);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
cd->pv_widget = gtk_preview_new (GTK_PREVIEW_COLOR);
|
||||
gtk_preview_size (GTK_PREVIEW (cd->pv_widget),
|
||||
cd->pv_widget = gimp_preview_area_new ();
|
||||
gtk_widget_set_size_request (cd->pv_widget,
|
||||
PREVIEW_SIZE_X, PREVIEW_SIZE_Y);
|
||||
gtk_widget_set_events (cd->pv_widget, RANGE_MASK);
|
||||
gtk_container_add (GTK_CONTAINER (frame), cd->pv_widget);
|
||||
@ -1379,7 +1372,7 @@ bender_new_dialog (GimpDrawable *drawable)
|
||||
G_CALLBACK (bender_antialias_callback),
|
||||
cd);
|
||||
|
||||
/* The wor_on_copy toggle */
|
||||
/* The work_on_copy toggle */
|
||||
toggle = gtk_check_button_new_with_mnemonic (_("Work on cop_y"));
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), cd->work_on_copy);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), toggle, FALSE, FALSE, 0);
|
||||
@ -2370,19 +2363,17 @@ static void
|
||||
p_render_preview (BenderDialog *cd,
|
||||
gint32 layer_id)
|
||||
{
|
||||
guchar l_rowbuf[PREVIEW_BPP * PREVIEW_SIZE_X];
|
||||
guchar l_pixel[4];
|
||||
guchar *l_ptr;
|
||||
guchar *l_buf, *l_ptr;
|
||||
GimpDrawable *l_pv_drawable;
|
||||
gint l_x, l_y;
|
||||
gint l_ofx, l_ofy;
|
||||
gint l_idx;
|
||||
guchar l_bg_gray;
|
||||
t_GDRW l_gdrw;
|
||||
t_GDRW *gdrw;
|
||||
|
||||
l_pv_drawable = gimp_drawable_get (layer_id);
|
||||
|
||||
l_ptr = l_buf = g_new (guchar, PREVIEW_BPP * PREVIEW_SIZE_X * PREVIEW_SIZE_Y);
|
||||
gdrw = &l_gdrw;
|
||||
p_init_gdrw(gdrw, l_pv_drawable, FALSE, FALSE);
|
||||
|
||||
@ -2393,50 +2384,33 @@ p_render_preview (BenderDialog *cd,
|
||||
/* render preview */
|
||||
for (l_y = 0; l_y < PREVIEW_SIZE_Y; l_y++)
|
||||
{
|
||||
l_ptr = &l_rowbuf[0];
|
||||
|
||||
for (l_x = 0; l_x < PREVIEW_SIZE_X; l_x++)
|
||||
{
|
||||
p_get_pixel(gdrw, l_x + l_ofx, l_y + l_ofy, &l_pixel[0]);
|
||||
if (l_pixel[gdrw->index_alpha] < 255)
|
||||
{
|
||||
/* for transparent pixels: mix with preview background color */
|
||||
if ((l_x % 32) < 16)
|
||||
{
|
||||
l_bg_gray = PREVIEW_BG_GRAY1;
|
||||
if ((l_y % 32) < 16) l_bg_gray = PREVIEW_BG_GRAY2;
|
||||
}
|
||||
else
|
||||
{
|
||||
l_bg_gray = PREVIEW_BG_GRAY2;
|
||||
if ((l_y % 32) < 16) l_bg_gray = PREVIEW_BG_GRAY1;
|
||||
}
|
||||
|
||||
for (l_idx = 0; l_idx < gdrw->index_alpha ; l_idx++)
|
||||
{
|
||||
l_pixel[l_idx] = MIX_CHANNEL(l_pixel[l_idx], l_bg_gray, l_pixel[gdrw->index_alpha]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (cd->color)
|
||||
{
|
||||
*l_ptr = l_pixel[0];
|
||||
l_ptr[0] = l_pixel[0];
|
||||
l_ptr[1] = l_pixel[1];
|
||||
l_ptr[2] = l_pixel[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
*l_ptr = l_pixel[0];
|
||||
l_ptr[0] = l_pixel[0];
|
||||
l_ptr[1] = l_pixel[0];
|
||||
l_ptr[2] = l_pixel[0];
|
||||
}
|
||||
l_ptr[3] = l_pixel[gdrw->index_alpha];
|
||||
|
||||
l_ptr += PREVIEW_BPP;
|
||||
}
|
||||
|
||||
gtk_preview_draw_row(GTK_PREVIEW(cd->pv_widget), &l_rowbuf[0], 0, l_y, PREVIEW_SIZE_X);
|
||||
}
|
||||
gimp_preview_area_draw (GIMP_PREVIEW_AREA (cd->pv_widget),
|
||||
0, 0, PREVIEW_SIZE_X, PREVIEW_SIZE_Y,
|
||||
GIMP_RGBA_IMAGE,
|
||||
l_buf,
|
||||
PREVIEW_BPP * PREVIEW_SIZE_X);
|
||||
g_free (l_buf);
|
||||
|
||||
p_end_gdrw(gdrw);
|
||||
} /* end p_render_preview */
|
||||
|
Reference in New Issue
Block a user