mirror of https://github.com/GNOME/gimp.git
libgimp/color_display.h add bpl param for convert func
* libgimp/color_display.h * app/gdisplay.c: add bpl param for convert func * gdisplay_color.c: guard against head and tail cases in reorders * app/gdisplay_color_ui.c: expose_full on all actions, so there is immediate feedback. Check for no selection and do nothing on actions * app/path_tool.c: #warning is not portable; change to /* XXX: */ * modules/cdisplay_gamma.c: make it so it actually works properly -Yosh
This commit is contained in:
parent
140f13e1d8
commit
a3ef836860
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
||||||
|
Mon Oct 4 19:13:39 PDT 1999 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
|
* libgimp/color_display.h
|
||||||
|
* app/gdisplay.c: add bpl param for convert func
|
||||||
|
|
||||||
|
* gdisplay_color.c: guard against head and tail cases in reorders
|
||||||
|
|
||||||
|
* app/gdisplay_color_ui.c: expose_full on all actions, so there is
|
||||||
|
immediate feedback. Check for no selection and do nothing on actions
|
||||||
|
|
||||||
|
* app/path_tool.c: #warning is not portable; change to /* XXX: */
|
||||||
|
|
||||||
|
* modules/cdisplay_gamma.c: make it so it actually works properly
|
||||||
|
|
||||||
Mon Oct 4 21:09:20 1999 Tim Janik <timj@gtk.org>
|
Mon Oct 4 21:09:20 1999 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* plug-ins/common/csource.c: minor cleanups. fixed up alpha channel
|
* plug-ins/common/csource.c: minor cleanups. fixed up alpha channel
|
||||||
|
|
|
@ -1261,10 +1261,11 @@ gdisplay_display_area (GDisplay *gdisp,
|
||||||
int i, j;
|
int i, j;
|
||||||
GList *list;
|
GList *list;
|
||||||
guchar *buf;
|
guchar *buf;
|
||||||
int bpp;
|
int bpp, bpl;
|
||||||
|
|
||||||
buf = gximage_get_data ();
|
buf = gximage_get_data ();
|
||||||
bpp = gximage_get_bpp ();
|
bpp = gximage_get_bpp ();
|
||||||
|
bpl = gximage_get_bpl ();
|
||||||
|
|
||||||
sx = SCALEX (gdisp, gdisp->gimage->width);
|
sx = SCALEX (gdisp, gdisp->gimage->width);
|
||||||
sy = SCALEY (gdisp, gdisp->gimage->height);
|
sy = SCALEY (gdisp, gdisp->gimage->height);
|
||||||
|
@ -1347,7 +1348,7 @@ gdisplay_display_area (GDisplay *gdisp,
|
||||||
while (list)
|
while (list)
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node = (ColorDisplayNode *) list->data;
|
ColorDisplayNode *node = (ColorDisplayNode *) list->data;
|
||||||
node->cd_convert (node->cd_ID, buf, dx, dy, bpp);
|
node->cd_convert (node->cd_ID, buf, dx, dy, bpp, bpl);
|
||||||
list = list->next;
|
list = list->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1261,10 +1261,11 @@ gdisplay_display_area (GDisplay *gdisp,
|
||||||
int i, j;
|
int i, j;
|
||||||
GList *list;
|
GList *list;
|
||||||
guchar *buf;
|
guchar *buf;
|
||||||
int bpp;
|
int bpp, bpl;
|
||||||
|
|
||||||
buf = gximage_get_data ();
|
buf = gximage_get_data ();
|
||||||
bpp = gximage_get_bpp ();
|
bpp = gximage_get_bpp ();
|
||||||
|
bpl = gximage_get_bpl ();
|
||||||
|
|
||||||
sx = SCALEX (gdisp, gdisp->gimage->width);
|
sx = SCALEX (gdisp, gdisp->gimage->width);
|
||||||
sy = SCALEY (gdisp, gdisp->gimage->height);
|
sy = SCALEY (gdisp, gdisp->gimage->height);
|
||||||
|
@ -1347,7 +1348,7 @@ gdisplay_display_area (GDisplay *gdisp,
|
||||||
while (list)
|
while (list)
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node = (ColorDisplayNode *) list->data;
|
ColorDisplayNode *node = (ColorDisplayNode *) list->data;
|
||||||
node->cd_convert (node->cd_ID, buf, dx, dy, bpp);
|
node->cd_convert (node->cd_ID, buf, dx, dy, bpp, bpl);
|
||||||
list = list->next;
|
list = list->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ struct _ColorDisplayDialog
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
};
|
};
|
||||||
|
|
||||||
static ColorDisplayDialog cdd = { NULL, NULL, NULL, 0, 0, FALSE, NULL, NULL };
|
static ColorDisplayDialog cdd = { NULL, NULL, NULL, -1, -1, FALSE, NULL, NULL };
|
||||||
|
|
||||||
typedef void (*ButtonCallback) (GtkWidget *, gpointer);
|
typedef void (*ButtonCallback) (GtkWidget *, gpointer);
|
||||||
|
|
||||||
|
@ -202,7 +202,8 @@ color_display_ok_callback (GtkWidget *widget,
|
||||||
g_list_free (cdd.old_nodes);
|
g_list_free (cdd.old_nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -227,7 +228,8 @@ color_display_cancel_callback (GtkWidget *widget,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -238,8 +240,14 @@ color_display_add_callback (GtkWidget *widget,
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
gint row;
|
gint row;
|
||||||
|
|
||||||
|
if (cdd.src_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
gtk_clist_get_text (GTK_CLIST (cdd.src), cdd.src_row, 0, &name);
|
gtk_clist_get_text (GTK_CLIST (cdd.src), cdd.src_row, 0, &name);
|
||||||
|
|
||||||
|
if (!name)
|
||||||
|
return;
|
||||||
|
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
node = gdisplay_color_attach (cdd.gdisp, name);
|
node = gdisplay_color_attach (cdd.gdisp, name);
|
||||||
|
@ -247,7 +255,8 @@ color_display_add_callback (GtkWidget *widget,
|
||||||
row = gtk_clist_append (GTK_CLIST (cdd.dest), &name);
|
row = gtk_clist_append (GTK_CLIST (cdd.dest), &name);
|
||||||
gtk_clist_set_row_data (GTK_CLIST (cdd.dest), row, node);
|
gtk_clist_set_row_data (GTK_CLIST (cdd.dest), row, node);
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -256,6 +265,9 @@ color_display_remove_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
|
@ -268,7 +280,8 @@ color_display_remove_callback (GtkWidget *widget,
|
||||||
else
|
else
|
||||||
gdisplay_color_detach_destroy (cdd.gdisp, node);
|
gdisplay_color_detach_destroy (cdd.gdisp, node);
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -277,6 +290,9 @@ color_display_up_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
|
@ -285,7 +301,8 @@ color_display_up_callback (GtkWidget *widget,
|
||||||
gdisplay_color_reorder_up (cdd.gdisp, node);
|
gdisplay_color_reorder_up (cdd.gdisp, node);
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -294,15 +311,18 @@ color_display_down_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
gtk_clist_row_move (GTK_CLIST (cdd.dest), cdd.dest_row, cdd.dest_row + 1);
|
gtk_clist_row_move (GTK_CLIST (cdd.dest), cdd.dest_row, cdd.dest_row + 1);
|
||||||
|
|
||||||
gdisplay_color_reorder_down (cdd.gdisp, node);
|
gdisplay_color_reorder_down (cdd.gdisp, node);
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -331,6 +351,12 @@ gdisplay_color_ui (GDisplay *gdisp)
|
||||||
|
|
||||||
cdd.gdisp = gdisp;
|
cdd.gdisp = gdisp;
|
||||||
|
|
||||||
|
cdd.src_row = -1;
|
||||||
|
cdd.dest_row = -1;
|
||||||
|
|
||||||
|
/* gtk_clist_set_selectable (GTK_CLIST (cdd.src), 0, TRUE);
|
||||||
|
gtk_clist_set_selectable (GTK_CLIST (cdd.dest), 0, TRUE); */
|
||||||
|
|
||||||
gtk_widget_show (cdd.shell);
|
gtk_widget_show (cdd.shell);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -242,8 +242,11 @@ gdisplay_color_reorder_up (GDisplay *gdisp,
|
||||||
|
|
||||||
node_list = g_list_find (gdisp->cd_list, node);
|
node_list = g_list_find (gdisp->cd_list, node);
|
||||||
|
|
||||||
node_list->data = node_list->prev->data;
|
if (node_list->prev)
|
||||||
node_list->prev->data = node;
|
{
|
||||||
|
node_list->data = node_list->prev->data;
|
||||||
|
node_list->prev->data = node;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -254,8 +257,11 @@ gdisplay_color_reorder_down (GDisplay *gdisp,
|
||||||
|
|
||||||
node_list = g_list_find (gdisp->cd_list, node);
|
node_list = g_list_find (gdisp->cd_list, node);
|
||||||
|
|
||||||
node_list->data = node_list->next->data;
|
if (node_list->next)
|
||||||
node_list->next->data = node;
|
{
|
||||||
|
node_list->data = node_list->next->data;
|
||||||
|
node_list->next->data = node;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
|
|
|
@ -1261,10 +1261,11 @@ gdisplay_display_area (GDisplay *gdisp,
|
||||||
int i, j;
|
int i, j;
|
||||||
GList *list;
|
GList *list;
|
||||||
guchar *buf;
|
guchar *buf;
|
||||||
int bpp;
|
int bpp, bpl;
|
||||||
|
|
||||||
buf = gximage_get_data ();
|
buf = gximage_get_data ();
|
||||||
bpp = gximage_get_bpp ();
|
bpp = gximage_get_bpp ();
|
||||||
|
bpl = gximage_get_bpl ();
|
||||||
|
|
||||||
sx = SCALEX (gdisp, gdisp->gimage->width);
|
sx = SCALEX (gdisp, gdisp->gimage->width);
|
||||||
sy = SCALEY (gdisp, gdisp->gimage->height);
|
sy = SCALEY (gdisp, gdisp->gimage->height);
|
||||||
|
@ -1347,7 +1348,7 @@ gdisplay_display_area (GDisplay *gdisp,
|
||||||
while (list)
|
while (list)
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node = (ColorDisplayNode *) list->data;
|
ColorDisplayNode *node = (ColorDisplayNode *) list->data;
|
||||||
node->cd_convert (node->cd_ID, buf, dx, dy, bpp);
|
node->cd_convert (node->cd_ID, buf, dx, dy, bpp, bpl);
|
||||||
list = list->next;
|
list = list->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -242,8 +242,11 @@ gdisplay_color_reorder_up (GDisplay *gdisp,
|
||||||
|
|
||||||
node_list = g_list_find (gdisp->cd_list, node);
|
node_list = g_list_find (gdisp->cd_list, node);
|
||||||
|
|
||||||
node_list->data = node_list->prev->data;
|
if (node_list->prev)
|
||||||
node_list->prev->data = node;
|
{
|
||||||
|
node_list->data = node_list->prev->data;
|
||||||
|
node_list->prev->data = node;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -254,8 +257,11 @@ gdisplay_color_reorder_down (GDisplay *gdisp,
|
||||||
|
|
||||||
node_list = g_list_find (gdisp->cd_list, node);
|
node_list = g_list_find (gdisp->cd_list, node);
|
||||||
|
|
||||||
node_list->data = node_list->next->data;
|
if (node_list->next)
|
||||||
node_list->next->data = node;
|
{
|
||||||
|
node_list->data = node_list->next->data;
|
||||||
|
node_list->next->data = node;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
|
|
|
@ -43,7 +43,7 @@ struct _ColorDisplayDialog
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
};
|
};
|
||||||
|
|
||||||
static ColorDisplayDialog cdd = { NULL, NULL, NULL, 0, 0, FALSE, NULL, NULL };
|
static ColorDisplayDialog cdd = { NULL, NULL, NULL, -1, -1, FALSE, NULL, NULL };
|
||||||
|
|
||||||
typedef void (*ButtonCallback) (GtkWidget *, gpointer);
|
typedef void (*ButtonCallback) (GtkWidget *, gpointer);
|
||||||
|
|
||||||
|
@ -202,7 +202,8 @@ color_display_ok_callback (GtkWidget *widget,
|
||||||
g_list_free (cdd.old_nodes);
|
g_list_free (cdd.old_nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -227,7 +228,8 @@ color_display_cancel_callback (GtkWidget *widget,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -238,8 +240,14 @@ color_display_add_callback (GtkWidget *widget,
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
gint row;
|
gint row;
|
||||||
|
|
||||||
|
if (cdd.src_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
gtk_clist_get_text (GTK_CLIST (cdd.src), cdd.src_row, 0, &name);
|
gtk_clist_get_text (GTK_CLIST (cdd.src), cdd.src_row, 0, &name);
|
||||||
|
|
||||||
|
if (!name)
|
||||||
|
return;
|
||||||
|
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
node = gdisplay_color_attach (cdd.gdisp, name);
|
node = gdisplay_color_attach (cdd.gdisp, name);
|
||||||
|
@ -247,7 +255,8 @@ color_display_add_callback (GtkWidget *widget,
|
||||||
row = gtk_clist_append (GTK_CLIST (cdd.dest), &name);
|
row = gtk_clist_append (GTK_CLIST (cdd.dest), &name);
|
||||||
gtk_clist_set_row_data (GTK_CLIST (cdd.dest), row, node);
|
gtk_clist_set_row_data (GTK_CLIST (cdd.dest), row, node);
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -256,6 +265,9 @@ color_display_remove_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
|
@ -268,7 +280,8 @@ color_display_remove_callback (GtkWidget *widget,
|
||||||
else
|
else
|
||||||
gdisplay_color_detach_destroy (cdd.gdisp, node);
|
gdisplay_color_detach_destroy (cdd.gdisp, node);
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -277,6 +290,9 @@ color_display_up_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
|
@ -285,7 +301,8 @@ color_display_up_callback (GtkWidget *widget,
|
||||||
gdisplay_color_reorder_up (cdd.gdisp, node);
|
gdisplay_color_reorder_up (cdd.gdisp, node);
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -294,15 +311,18 @@ color_display_down_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
gtk_clist_row_move (GTK_CLIST (cdd.dest), cdd.dest_row, cdd.dest_row + 1);
|
gtk_clist_row_move (GTK_CLIST (cdd.dest), cdd.dest_row, cdd.dest_row + 1);
|
||||||
|
|
||||||
gdisplay_color_reorder_down (cdd.gdisp, node);
|
gdisplay_color_reorder_down (cdd.gdisp, node);
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -331,6 +351,12 @@ gdisplay_color_ui (GDisplay *gdisp)
|
||||||
|
|
||||||
cdd.gdisp = gdisp;
|
cdd.gdisp = gdisp;
|
||||||
|
|
||||||
|
cdd.src_row = -1;
|
||||||
|
cdd.dest_row = -1;
|
||||||
|
|
||||||
|
/* gtk_clist_set_selectable (GTK_CLIST (cdd.src), 0, TRUE);
|
||||||
|
gtk_clist_set_selectable (GTK_CLIST (cdd.dest), 0, TRUE); */
|
||||||
|
|
||||||
gtk_widget_show (cdd.shell);
|
gtk_widget_show (cdd.shell);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -188,7 +188,7 @@ path_traverse_segment (Path *path, PathCurve *curve, PathSegment *segment, Segme
|
||||||
fprintf(stderr, "path_traverse_segment\n");
|
fprintf(stderr, "path_traverse_segment\n");
|
||||||
#endif PATH_TOOL_DEBUG
|
#endif PATH_TOOL_DEBUG
|
||||||
|
|
||||||
#warning here we need path_curve_get_point(s)
|
/* XXX: here we need path_curve_get_point(s) */
|
||||||
|
|
||||||
/* Something like:
|
/* Something like:
|
||||||
* for i = 1 to subsamples {
|
* for i = 1 to subsamples {
|
||||||
|
@ -267,7 +267,7 @@ PathSegment * path_append_segment (Path * cur_path, PathCurve * cur_curve, Segm
|
||||||
|
|
||||||
cur_curve->cur_segment = new_segment;
|
cur_curve->cur_segment = new_segment;
|
||||||
|
|
||||||
#warning we need initialisation of the segment here.
|
/* XXX: we need initialisation of the segment here. */
|
||||||
|
|
||||||
}
|
}
|
||||||
#ifdef PATH_TOOL_DEBUG
|
#ifdef PATH_TOOL_DEBUG
|
||||||
|
@ -313,7 +313,7 @@ PathSegment * path_prepend_segment (Path * cur_path, PathCurve * cur_curve, Seg
|
||||||
|
|
||||||
cur_curve->segments = new_segment;
|
cur_curve->segments = new_segment;
|
||||||
cur_curve->cur_segment = new_segment;
|
cur_curve->cur_segment = new_segment;
|
||||||
#warning we need initialisation of the segment here.
|
/* XXX: we need initialisation of the segment here. */
|
||||||
}
|
}
|
||||||
#ifdef PATH_TOOL_DEBUG
|
#ifdef PATH_TOOL_DEBUG
|
||||||
else
|
else
|
||||||
|
@ -339,7 +339,7 @@ PathSegment * path_split_segment (PathSegment *segment, gdouble position)
|
||||||
new_segment = g_new (PathSegment, 1);
|
new_segment = g_new (PathSegment, 1);
|
||||||
|
|
||||||
new_segment->type = segment->type;
|
new_segment->type = segment->type;
|
||||||
#warning Giving PathTool as NULL Pointer!
|
/* XXX: Giving PathTool as NULL Pointer! */
|
||||||
path_curve_get_point (NULL, segment, position, &(new_segment->x), &(new_segment->y));
|
path_curve_get_point (NULL, segment, position, &(new_segment->x), &(new_segment->y));
|
||||||
new_segment->flags = 0;
|
new_segment->flags = 0;
|
||||||
new_segment->parent = segment->parent;
|
new_segment->parent = segment->parent;
|
||||||
|
@ -347,7 +347,7 @@ PathSegment * path_split_segment (PathSegment *segment, gdouble position)
|
||||||
new_segment->prev = segment;
|
new_segment->prev = segment;
|
||||||
new_segment->data = NULL;
|
new_segment->data = NULL;
|
||||||
|
|
||||||
#warning we need initialisation of the segment here.
|
/* XXX: we need initialisation of the segment here. */
|
||||||
|
|
||||||
new_segment->next->prev = new_segment;
|
new_segment->next->prev = new_segment;
|
||||||
segment->next = new_segment;
|
segment->next = new_segment;
|
||||||
|
@ -390,7 +390,7 @@ path_join_curves (PathSegment *segment1, PathSegment *segment2) {
|
||||||
segment2->prev = segment1;
|
segment2->prev = segment1;
|
||||||
segment1->next = segment2;
|
segment1->next = segment2;
|
||||||
}
|
}
|
||||||
#warning Probably some segment-updates needed
|
/* XXX: Probably some segment-updates needed */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -442,7 +442,7 @@ path_join_curves (PathSegment *segment1, PathSegment *segment2) {
|
||||||
tmp->parent = curve1;
|
tmp->parent = curve1;
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
#warning Probably some segment-updates needed
|
/* XXX: Probably some segment-updates needed */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -473,7 +473,7 @@ path_join_curves (PathSegment *segment1, PathSegment *segment2) {
|
||||||
tmp = tmp->prev;
|
tmp = tmp->prev;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
#warning Probably some segment-updates needed
|
/* XXX: Probably some segment-updates needed */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PATH_TOOL_DEBUG
|
#ifdef PATH_TOOL_DEBUG
|
||||||
|
@ -495,7 +495,7 @@ path_flip_curve (PathCurve *curve)
|
||||||
|
|
||||||
PathSegment *tmp, *tmp2;
|
PathSegment *tmp, *tmp2;
|
||||||
|
|
||||||
#warning Please add path_curve_flip_segment here
|
/* XXX: Please add path_curve_flip_segment here */
|
||||||
|
|
||||||
if (!curve && !curve->segments) {
|
if (!curve && !curve->segments) {
|
||||||
#ifdef PATH_TOOL_DEBUG
|
#ifdef PATH_TOOL_DEBUG
|
||||||
|
@ -526,7 +526,7 @@ path_flip_curve (PathCurve *curve)
|
||||||
tmp->data = end_data;
|
tmp->data = end_data;
|
||||||
}
|
}
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
#warning Probably some segment-updates needed
|
/* XXX: Probably some segment-updates needed */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -582,7 +582,7 @@ path_free_segment (PathSegment *segment)
|
||||||
segment->parent, segment, 0, SEGMENT_ACTIVE);
|
segment->parent, segment, 0, SEGMENT_ACTIVE);
|
||||||
if (segment->data)
|
if (segment->data)
|
||||||
g_free(segment->data);
|
g_free(segment->data);
|
||||||
#warning Free Segment needs an own hook in the different curve-types!
|
/* XXX: Free Segment needs an own hook in the different curve-types! */
|
||||||
g_free (segment);
|
g_free (segment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -632,7 +632,7 @@ path_delete_segment (PathSegment *segment)
|
||||||
/*
|
/*
|
||||||
* here we have to update the surrounding segments
|
* here we have to update the surrounding segments
|
||||||
*/
|
*/
|
||||||
#warning Please add path_curve_update_segment here
|
/* XXX: Please add path_curve_update_segment here */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1398,7 +1398,7 @@ path_offset_active_helper (Path *path, PathCurve *curve, PathSegment *segment, g
|
||||||
segment->x += data->dx;
|
segment->x += data->dx;
|
||||||
segment->y += data->dy;
|
segment->y += data->dy;
|
||||||
}
|
}
|
||||||
#warning Do a segment_update here!
|
/* XXX: Do a segment_update here! */
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -188,7 +188,7 @@ path_traverse_segment (Path *path, PathCurve *curve, PathSegment *segment, Segme
|
||||||
fprintf(stderr, "path_traverse_segment\n");
|
fprintf(stderr, "path_traverse_segment\n");
|
||||||
#endif PATH_TOOL_DEBUG
|
#endif PATH_TOOL_DEBUG
|
||||||
|
|
||||||
#warning here we need path_curve_get_point(s)
|
/* XXX: here we need path_curve_get_point(s) */
|
||||||
|
|
||||||
/* Something like:
|
/* Something like:
|
||||||
* for i = 1 to subsamples {
|
* for i = 1 to subsamples {
|
||||||
|
@ -267,7 +267,7 @@ PathSegment * path_append_segment (Path * cur_path, PathCurve * cur_curve, Segm
|
||||||
|
|
||||||
cur_curve->cur_segment = new_segment;
|
cur_curve->cur_segment = new_segment;
|
||||||
|
|
||||||
#warning we need initialisation of the segment here.
|
/* XXX: we need initialisation of the segment here. */
|
||||||
|
|
||||||
}
|
}
|
||||||
#ifdef PATH_TOOL_DEBUG
|
#ifdef PATH_TOOL_DEBUG
|
||||||
|
@ -313,7 +313,7 @@ PathSegment * path_prepend_segment (Path * cur_path, PathCurve * cur_curve, Seg
|
||||||
|
|
||||||
cur_curve->segments = new_segment;
|
cur_curve->segments = new_segment;
|
||||||
cur_curve->cur_segment = new_segment;
|
cur_curve->cur_segment = new_segment;
|
||||||
#warning we need initialisation of the segment here.
|
/* XXX: we need initialisation of the segment here. */
|
||||||
}
|
}
|
||||||
#ifdef PATH_TOOL_DEBUG
|
#ifdef PATH_TOOL_DEBUG
|
||||||
else
|
else
|
||||||
|
@ -339,7 +339,7 @@ PathSegment * path_split_segment (PathSegment *segment, gdouble position)
|
||||||
new_segment = g_new (PathSegment, 1);
|
new_segment = g_new (PathSegment, 1);
|
||||||
|
|
||||||
new_segment->type = segment->type;
|
new_segment->type = segment->type;
|
||||||
#warning Giving PathTool as NULL Pointer!
|
/* XXX: Giving PathTool as NULL Pointer! */
|
||||||
path_curve_get_point (NULL, segment, position, &(new_segment->x), &(new_segment->y));
|
path_curve_get_point (NULL, segment, position, &(new_segment->x), &(new_segment->y));
|
||||||
new_segment->flags = 0;
|
new_segment->flags = 0;
|
||||||
new_segment->parent = segment->parent;
|
new_segment->parent = segment->parent;
|
||||||
|
@ -347,7 +347,7 @@ PathSegment * path_split_segment (PathSegment *segment, gdouble position)
|
||||||
new_segment->prev = segment;
|
new_segment->prev = segment;
|
||||||
new_segment->data = NULL;
|
new_segment->data = NULL;
|
||||||
|
|
||||||
#warning we need initialisation of the segment here.
|
/* XXX: we need initialisation of the segment here. */
|
||||||
|
|
||||||
new_segment->next->prev = new_segment;
|
new_segment->next->prev = new_segment;
|
||||||
segment->next = new_segment;
|
segment->next = new_segment;
|
||||||
|
@ -390,7 +390,7 @@ path_join_curves (PathSegment *segment1, PathSegment *segment2) {
|
||||||
segment2->prev = segment1;
|
segment2->prev = segment1;
|
||||||
segment1->next = segment2;
|
segment1->next = segment2;
|
||||||
}
|
}
|
||||||
#warning Probably some segment-updates needed
|
/* XXX: Probably some segment-updates needed */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -442,7 +442,7 @@ path_join_curves (PathSegment *segment1, PathSegment *segment2) {
|
||||||
tmp->parent = curve1;
|
tmp->parent = curve1;
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
#warning Probably some segment-updates needed
|
/* XXX: Probably some segment-updates needed */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -473,7 +473,7 @@ path_join_curves (PathSegment *segment1, PathSegment *segment2) {
|
||||||
tmp = tmp->prev;
|
tmp = tmp->prev;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
#warning Probably some segment-updates needed
|
/* XXX: Probably some segment-updates needed */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PATH_TOOL_DEBUG
|
#ifdef PATH_TOOL_DEBUG
|
||||||
|
@ -495,7 +495,7 @@ path_flip_curve (PathCurve *curve)
|
||||||
|
|
||||||
PathSegment *tmp, *tmp2;
|
PathSegment *tmp, *tmp2;
|
||||||
|
|
||||||
#warning Please add path_curve_flip_segment here
|
/* XXX: Please add path_curve_flip_segment here */
|
||||||
|
|
||||||
if (!curve && !curve->segments) {
|
if (!curve && !curve->segments) {
|
||||||
#ifdef PATH_TOOL_DEBUG
|
#ifdef PATH_TOOL_DEBUG
|
||||||
|
@ -526,7 +526,7 @@ path_flip_curve (PathCurve *curve)
|
||||||
tmp->data = end_data;
|
tmp->data = end_data;
|
||||||
}
|
}
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
#warning Probably some segment-updates needed
|
/* XXX: Probably some segment-updates needed */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -582,7 +582,7 @@ path_free_segment (PathSegment *segment)
|
||||||
segment->parent, segment, 0, SEGMENT_ACTIVE);
|
segment->parent, segment, 0, SEGMENT_ACTIVE);
|
||||||
if (segment->data)
|
if (segment->data)
|
||||||
g_free(segment->data);
|
g_free(segment->data);
|
||||||
#warning Free Segment needs an own hook in the different curve-types!
|
/* XXX: Free Segment needs an own hook in the different curve-types! */
|
||||||
g_free (segment);
|
g_free (segment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -632,7 +632,7 @@ path_delete_segment (PathSegment *segment)
|
||||||
/*
|
/*
|
||||||
* here we have to update the surrounding segments
|
* here we have to update the surrounding segments
|
||||||
*/
|
*/
|
||||||
#warning Please add path_curve_update_segment here
|
/* XXX: Please add path_curve_update_segment here */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1398,7 +1398,7 @@ path_offset_active_helper (Path *path, PathCurve *curve, PathSegment *segment, g
|
||||||
segment->x += data->dx;
|
segment->x += data->dx;
|
||||||
segment->y += data->dy;
|
segment->y += data->dy;
|
||||||
}
|
}
|
||||||
#warning Do a segment_update here!
|
/* XXX: Do a segment_update here! */
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -43,7 +43,7 @@ struct _ColorDisplayDialog
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
};
|
};
|
||||||
|
|
||||||
static ColorDisplayDialog cdd = { NULL, NULL, NULL, 0, 0, FALSE, NULL, NULL };
|
static ColorDisplayDialog cdd = { NULL, NULL, NULL, -1, -1, FALSE, NULL, NULL };
|
||||||
|
|
||||||
typedef void (*ButtonCallback) (GtkWidget *, gpointer);
|
typedef void (*ButtonCallback) (GtkWidget *, gpointer);
|
||||||
|
|
||||||
|
@ -202,7 +202,8 @@ color_display_ok_callback (GtkWidget *widget,
|
||||||
g_list_free (cdd.old_nodes);
|
g_list_free (cdd.old_nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -227,7 +228,8 @@ color_display_cancel_callback (GtkWidget *widget,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -238,8 +240,14 @@ color_display_add_callback (GtkWidget *widget,
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
gint row;
|
gint row;
|
||||||
|
|
||||||
|
if (cdd.src_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
gtk_clist_get_text (GTK_CLIST (cdd.src), cdd.src_row, 0, &name);
|
gtk_clist_get_text (GTK_CLIST (cdd.src), cdd.src_row, 0, &name);
|
||||||
|
|
||||||
|
if (!name)
|
||||||
|
return;
|
||||||
|
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
node = gdisplay_color_attach (cdd.gdisp, name);
|
node = gdisplay_color_attach (cdd.gdisp, name);
|
||||||
|
@ -247,7 +255,8 @@ color_display_add_callback (GtkWidget *widget,
|
||||||
row = gtk_clist_append (GTK_CLIST (cdd.dest), &name);
|
row = gtk_clist_append (GTK_CLIST (cdd.dest), &name);
|
||||||
gtk_clist_set_row_data (GTK_CLIST (cdd.dest), row, node);
|
gtk_clist_set_row_data (GTK_CLIST (cdd.dest), row, node);
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -256,6 +265,9 @@ color_display_remove_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
|
@ -268,7 +280,8 @@ color_display_remove_callback (GtkWidget *widget,
|
||||||
else
|
else
|
||||||
gdisplay_color_detach_destroy (cdd.gdisp, node);
|
gdisplay_color_detach_destroy (cdd.gdisp, node);
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -277,6 +290,9 @@ color_display_up_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
|
@ -285,7 +301,8 @@ color_display_up_callback (GtkWidget *widget,
|
||||||
gdisplay_color_reorder_up (cdd.gdisp, node);
|
gdisplay_color_reorder_up (cdd.gdisp, node);
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -294,15 +311,18 @@ color_display_down_callback (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
ColorDisplayNode *node;
|
ColorDisplayNode *node;
|
||||||
|
|
||||||
|
if (cdd.dest_row < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
node = (ColorDisplayNode *) gtk_clist_get_row_data (GTK_CLIST (cdd.dest),
|
||||||
cdd.dest_row);
|
cdd.dest_row);
|
||||||
|
|
||||||
gtk_clist_row_move (GTK_CLIST (cdd.dest), cdd.dest_row, cdd.dest_row + 1);
|
gtk_clist_row_move (GTK_CLIST (cdd.dest), cdd.dest_row, cdd.dest_row + 1);
|
||||||
|
|
||||||
gdisplay_color_reorder_down (cdd.gdisp, node);
|
gdisplay_color_reorder_down (cdd.gdisp, node);
|
||||||
cdd.modified = TRUE;
|
cdd.modified = TRUE;
|
||||||
|
|
||||||
gdisplays_flush ();
|
gdisplay_expose_full (cdd.gdisp);
|
||||||
|
gdisplay_flush (cdd.gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -331,6 +351,12 @@ gdisplay_color_ui (GDisplay *gdisp)
|
||||||
|
|
||||||
cdd.gdisp = gdisp;
|
cdd.gdisp = gdisp;
|
||||||
|
|
||||||
|
cdd.src_row = -1;
|
||||||
|
cdd.dest_row = -1;
|
||||||
|
|
||||||
|
/* gtk_clist_set_selectable (GTK_CLIST (cdd.src), 0, TRUE);
|
||||||
|
gtk_clist_set_selectable (GTK_CLIST (cdd.dest), 0, TRUE); */
|
||||||
|
|
||||||
gtk_widget_show (cdd.shell);
|
gtk_widget_show (cdd.shell);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,8 @@ typedef void (*GimpColorDisplayConvert) (gpointer cd_ID,
|
||||||
guchar *buf,
|
guchar *buf,
|
||||||
int width,
|
int width,
|
||||||
int height,
|
int height,
|
||||||
int bpp);
|
int bpp,
|
||||||
|
int bpl);
|
||||||
typedef void (*GimpColorDisplayDestroy) (gpointer cd_ID);
|
typedef void (*GimpColorDisplayDestroy) (gpointer cd_ID);
|
||||||
typedef void (*GimpColorDisplayFinalize) (void);
|
typedef void (*GimpColorDisplayFinalize) (void);
|
||||||
typedef void (*GimpColorDisplayLoadState) (gpointer cd_ID,
|
typedef void (*GimpColorDisplayLoadState) (gpointer cd_ID,
|
||||||
|
|
|
@ -29,7 +29,8 @@ typedef void (*GimpColorDisplayConvert) (gpointer cd_ID,
|
||||||
guchar *buf,
|
guchar *buf,
|
||||||
int width,
|
int width,
|
||||||
int height,
|
int height,
|
||||||
int bpp);
|
int bpp,
|
||||||
|
int bpl);
|
||||||
typedef void (*GimpColorDisplayDestroy) (gpointer cd_ID);
|
typedef void (*GimpColorDisplayDestroy) (gpointer cd_ID);
|
||||||
typedef void (*GimpColorDisplayFinalize) (void);
|
typedef void (*GimpColorDisplayFinalize) (void);
|
||||||
typedef void (*GimpColorDisplayLoadState) (gpointer cd_ID,
|
typedef void (*GimpColorDisplayLoadState) (gpointer cd_ID,
|
||||||
|
|
|
@ -44,9 +44,10 @@ static void gamma_create_lookup_table (GammaContext *context);
|
||||||
static void gamma_destroy (gpointer cd_ID);
|
static void gamma_destroy (gpointer cd_ID);
|
||||||
static void gamma_convert (gpointer cd_ID,
|
static void gamma_convert (gpointer cd_ID,
|
||||||
guchar *buf,
|
guchar *buf,
|
||||||
int width,
|
int w,
|
||||||
int height,
|
int h,
|
||||||
int bpp);
|
int bpp,
|
||||||
|
int bpl);
|
||||||
static void gamma_load (gpointer cd_ID,
|
static void gamma_load (gpointer cd_ID,
|
||||||
Parasite *state);
|
Parasite *state);
|
||||||
static Parasite * gamma_save (gpointer cd_ID);
|
static Parasite * gamma_save (gpointer cd_ID);
|
||||||
|
@ -116,6 +117,7 @@ gamma_new (int type)
|
||||||
context->lookup[i] = i;
|
context->lookup[i] = i;
|
||||||
|
|
||||||
gamma_create_lookup_table (context);
|
gamma_create_lookup_table (context);
|
||||||
|
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,13 +157,36 @@ gamma_convert (gpointer cd_ID,
|
||||||
guchar *buf,
|
guchar *buf,
|
||||||
int width,
|
int width,
|
||||||
int height,
|
int height,
|
||||||
int bpp)
|
int bpp,
|
||||||
|
int bpl)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
guchar *lookup = ((GammaContext *) cd_ID)->lookup;
|
guchar *lookup = ((GammaContext *) cd_ID)->lookup;
|
||||||
|
int i, j = height;
|
||||||
|
|
||||||
for (i = 0; i < width * height * bpp; i++)
|
/* You will not be using the entire buffer most of the time.
|
||||||
*buf++ = lookup[*buf];
|
* Hence, the simplistic code for this is as follows:
|
||||||
|
*
|
||||||
|
* for (j = 0; j < height; j++)
|
||||||
|
* {
|
||||||
|
* for (i = 0; i < width * bpp; i++)
|
||||||
|
* buf[i] = lookup[buf[i]];
|
||||||
|
* buf += bpl;
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
|
||||||
|
width *= bpp;
|
||||||
|
bpl -= width;
|
||||||
|
|
||||||
|
while (j--)
|
||||||
|
{
|
||||||
|
i = width;
|
||||||
|
while (i--)
|
||||||
|
{
|
||||||
|
*buf = lookup[*buf];
|
||||||
|
buf++;
|
||||||
|
}
|
||||||
|
buf += bpl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue