mirror of https://github.com/GNOME/gimp.git
ported to GimpPreviewArea. Centered the preview, too.
* plug-ins/common/unsharp.c: ported to GimpPreviewArea. Centered the preview, too.
This commit is contained in:
parent
5bb7292a68
commit
4977f8a7c2
|
@ -1,3 +1,8 @@
|
||||||
|
2004-08-02 DindinX <david@dindinx.org>
|
||||||
|
|
||||||
|
* plug-ins/common/unsharp.c: ported to GimpPreviewArea. Centered the
|
||||||
|
preview, too.
|
||||||
|
|
||||||
2004-08-01 DindinX <david@dindinx.org>
|
2004-08-01 DindinX <david@dindinx.org>
|
||||||
|
|
||||||
* plug-ins/common/tileit.c: ported to GimpPreviewArea.
|
* plug-ins/common/tileit.c: ported to GimpPreviewArea.
|
||||||
|
|
|
@ -677,12 +677,8 @@ unsharp_preview_new (void)
|
||||||
gtk_table_attach (GTK_TABLE (table), frame, 0, 1, 0, 1, 0, 0, 0, 0);
|
gtk_table_attach (GTK_TABLE (table), frame, 0, 1, 0, 1, 0, 0, 0, 0);
|
||||||
gtk_widget_show (frame);
|
gtk_widget_show (frame);
|
||||||
|
|
||||||
if (gimp_drawable_type (drawable->drawable_id) == GIMP_GRAY_IMAGE ||
|
preview = gimp_preview_area_new ();
|
||||||
gimp_drawable_type (drawable->drawable_id) == GIMP_GRAYA_IMAGE)
|
gtk_widget_set_size_request (preview, preview_width, preview_height);
|
||||||
preview = gtk_preview_new (GTK_PREVIEW_GRAYSCALE);
|
|
||||||
else
|
|
||||||
preview = gtk_preview_new (GTK_PREVIEW_COLOR);
|
|
||||||
gtk_preview_size (GTK_PREVIEW (preview), preview_width, preview_height);
|
|
||||||
gtk_container_add (GTK_CONTAINER (frame), preview);
|
gtk_container_add (GTK_CONTAINER (frame), preview);
|
||||||
gtk_widget_show (preview);
|
gtk_widget_show (preview);
|
||||||
|
|
||||||
|
@ -739,7 +735,7 @@ unsharp_mask_dialog (void)
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
GtkWidget *table;
|
GtkWidget *table;
|
||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
GtkWidget *hbox;
|
GtkWidget *aligment;
|
||||||
GtkWidget *scrollbar;
|
GtkWidget *scrollbar;
|
||||||
GtkObject *adj;
|
GtkObject *adj;
|
||||||
gboolean run;
|
gboolean run;
|
||||||
|
@ -761,12 +757,12 @@ unsharp_mask_dialog (void)
|
||||||
FALSE, FALSE, 0);
|
FALSE, FALSE, 0);
|
||||||
gtk_widget_show (vbox);
|
gtk_widget_show (vbox);
|
||||||
|
|
||||||
hbox = gtk_hbox_new (FALSE, 0);
|
aligment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (vbox), aligment, FALSE, FALSE, 0);
|
||||||
gtk_widget_show (hbox);
|
gtk_widget_show (aligment);
|
||||||
|
|
||||||
table = unsharp_preview_new ();
|
table = unsharp_preview_new ();
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0);
|
gtk_container_add (GTK_CONTAINER (aligment), table);
|
||||||
gtk_widget_show (table);
|
gtk_widget_show (table);
|
||||||
|
|
||||||
table = gtk_table_new (3, 3, FALSE);
|
table = gtk_table_new (3, 3, FALSE);
|
||||||
|
@ -859,7 +855,6 @@ preview_update (void)
|
||||||
|
|
||||||
/* preview */
|
/* preview */
|
||||||
guchar *render_buffer = NULL; /* Buffer to hold rendered image */
|
guchar *render_buffer = NULL; /* Buffer to hold rendered image */
|
||||||
guchar *row_buffer = NULL;
|
|
||||||
gint preview_width; /* Width of preview widget */
|
gint preview_width; /* Width of preview widget */
|
||||||
gint preview_height; /* Height of preview widget */
|
gint preview_height; /* Height of preview widget */
|
||||||
gint preview_x1; /* Upper-left X of preview */
|
gint preview_x1; /* Upper-left X of preview */
|
||||||
|
@ -874,10 +869,6 @@ preview_update (void)
|
||||||
gint preview_buf_x2; /* Lower-right X of preview */
|
gint preview_buf_x2; /* Lower-right X of preview */
|
||||||
gint preview_buf_y2; /* Lower-right Y of preview */
|
gint preview_buf_y2; /* Lower-right Y of preview */
|
||||||
|
|
||||||
const guchar check_light = GIMP_CHECK_LIGHT * 255;
|
|
||||||
const guchar check_dark = GIMP_CHECK_DARK * 255;
|
|
||||||
guchar check;
|
|
||||||
|
|
||||||
GimpPixelRgn srcPR, destPR; /* Pixel regions */
|
GimpPixelRgn srcPR, destPR; /* Pixel regions */
|
||||||
gint x, y; /* Current location in image */
|
gint x, y; /* Current location in image */
|
||||||
|
|
||||||
|
@ -940,105 +931,14 @@ preview_update (void)
|
||||||
row = 0;
|
row = 0;
|
||||||
buf_y = y + preview_height;
|
buf_y = y + preview_height;
|
||||||
|
|
||||||
if (gimp_drawable_type (drawable->drawable_id) == GIMP_GRAY_IMAGE ||
|
offset = (x * bytes) + (y * preview_buf_width * bytes);
|
||||||
gimp_drawable_type (drawable->drawable_id) == GIMP_GRAYA_IMAGE)
|
|
||||||
row_buffer = g_new (guchar, preview_width);
|
|
||||||
else
|
|
||||||
row_buffer = g_new (guchar, preview_width * 3);
|
|
||||||
|
|
||||||
for ( ; y < buf_y ; y++ )
|
gimp_preview_area_draw (GIMP_PREVIEW_AREA (preview),
|
||||||
{
|
0, 0, preview_width, preview_height,
|
||||||
offset = (x * bytes) + (y * preview_buf_width * bytes);
|
gimp_drawable_type (drawable->drawable_id),
|
||||||
|
render_buffer + offset,
|
||||||
|
preview_buf_width * bytes);
|
||||||
|
|
||||||
switch (gimp_drawable_type (drawable->drawable_id))
|
|
||||||
{
|
|
||||||
case GIMP_GRAY_IMAGE:
|
|
||||||
memcpy (row_buffer, render_buffer + offset, preview_width);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GIMP_GRAYA_IMAGE:
|
|
||||||
{
|
|
||||||
gint j;
|
|
||||||
guchar *rowptr = row_buffer;
|
|
||||||
guchar *bufptr = render_buffer + offset;
|
|
||||||
|
|
||||||
for (j = 0; j < preview_width; j++)
|
|
||||||
{
|
|
||||||
if (bufptr[1] == 255)
|
|
||||||
*rowptr = bufptr[0];
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ((row & GIMP_CHECK_SIZE) ^ (j & GIMP_CHECK_SIZE))
|
|
||||||
check = check_light;
|
|
||||||
else
|
|
||||||
check = check_dark;
|
|
||||||
|
|
||||||
if (bufptr[1] == 0)
|
|
||||||
*rowptr = check;
|
|
||||||
else
|
|
||||||
*rowptr = check + (((gint) (bufptr[0] - check) * bufptr[1]) >> 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
rowptr ++;
|
|
||||||
bufptr += 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
case GIMP_RGB_IMAGE:
|
|
||||||
memcpy (row_buffer, render_buffer + offset, preview_width * 3);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GIMP_RGBA_IMAGE:
|
|
||||||
{
|
|
||||||
gint j;
|
|
||||||
guchar *rowptr = row_buffer;
|
|
||||||
guchar *bufptr = render_buffer + offset;
|
|
||||||
|
|
||||||
for (j = 0; j < preview_width; j++)
|
|
||||||
{
|
|
||||||
if (bufptr[3] == 255)
|
|
||||||
{
|
|
||||||
rowptr[0] = bufptr[0];
|
|
||||||
rowptr[1] = bufptr[1];
|
|
||||||
rowptr[2] = bufptr[2];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ((row & GIMP_CHECK_SIZE) ^ (j & GIMP_CHECK_SIZE))
|
|
||||||
check = check_light;
|
|
||||||
else
|
|
||||||
check = check_dark;
|
|
||||||
|
|
||||||
if (bufptr[3] == 0)
|
|
||||||
{
|
|
||||||
rowptr[0] = check;
|
|
||||||
rowptr[1] = check;
|
|
||||||
rowptr[2] = check;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rowptr[0] = check + (((gint) (bufptr[0] - check) * bufptr[3]) >> 8);
|
|
||||||
rowptr[1] = check + (((gint) (bufptr[1] - check) * bufptr[3]) >> 8);
|
|
||||||
rowptr[2] = check + (((gint) (bufptr[2] - check) * bufptr[3]) >> 8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
rowptr += 3;
|
|
||||||
bufptr += 4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
gtk_preview_draw_row (GTK_PREVIEW (preview), row_buffer, 0,
|
|
||||||
row++, preview_width);
|
|
||||||
}
|
|
||||||
|
|
||||||
gtk_widget_queue_draw (preview);
|
|
||||||
|
|
||||||
g_free (row_buffer);
|
|
||||||
g_free (render_buffer);
|
g_free (render_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue