app/base/curves.[ch] defined CURVES_NUM_POINTS and use it.
2004-09-24 Sven Neumann <sven@gimp.org> * app/base/curves.[ch] * app/tools/gimpcurvestool.c: defined CURVES_NUM_POINTS and use it. * tools/pdbgen/pdb/color.pdb (curves_spline_invoker): unset the last control point which got initialized to (255,255) by curves_init(). Fixes bug #153635. * app/pdb/color_cmds.c: regenerated.
This commit is contained in:

committed by
Sven Neumann

parent
9e7ebaf573
commit
53ff497a93
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
2004-09-24 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
|
* app/base/curves.[ch]
|
||||||
|
* app/tools/gimpcurvestool.c: defined CURVES_NUM_POINTS and use it.
|
||||||
|
|
||||||
|
* tools/pdbgen/pdb/color.pdb (curves_spline_invoker): unset the
|
||||||
|
last control point which got initialized to (255,255) by
|
||||||
|
curves_init(). Fixes bug #153635.
|
||||||
|
|
||||||
|
* app/pdb/color_cmds.c: regenerated.
|
||||||
|
|
||||||
2004-09-24 Sven Neumann <sven@gimp.org>
|
2004-09-24 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* app/plug-in/plug-in-message.c: removed a linebreak from a
|
* app/plug-in/plug-in-message.c: removed a linebreak from a
|
||||||
|
@ -86,7 +86,7 @@ curves_channel_reset (Curves *curves,
|
|||||||
for (j = 0; j < 256; j++)
|
for (j = 0; j < 256; j++)
|
||||||
curves->curve[channel][j] = j;
|
curves->curve[channel][j] = j;
|
||||||
|
|
||||||
for (j = 0; j < 17; j++)
|
for (j = 0; j < CURVES_NUM_POINTS; j++)
|
||||||
{
|
{
|
||||||
curves->points[channel][j][0] = -1;
|
curves->points[channel][j][0] = -1;
|
||||||
curves->points[channel][j][1] = -1;
|
curves->points[channel][j][1] = -1;
|
||||||
@ -94,8 +94,8 @@ curves_channel_reset (Curves *curves,
|
|||||||
|
|
||||||
curves->points[channel][0][0] = 0;
|
curves->points[channel][0][0] = 0;
|
||||||
curves->points[channel][0][1] = 0;
|
curves->points[channel][0][1] = 0;
|
||||||
curves->points[channel][16][0] = 255;
|
curves->points[channel][CURVES_NUM_POINTS - 1][0] = 255;
|
||||||
curves->points[channel][16][1] = 255;
|
curves->points[channel][CURVES_NUM_POINTS - 1][1] = 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -103,7 +103,7 @@ curves_calculate_curve (Curves *curves,
|
|||||||
GimpHistogramChannel channel)
|
GimpHistogramChannel channel)
|
||||||
{
|
{
|
||||||
gint i;
|
gint i;
|
||||||
gint points[17];
|
gint points[CURVES_NUM_POINTS];
|
||||||
gint num_pts;
|
gint num_pts;
|
||||||
gint p1, p2, p3, p4;
|
gint p1, p2, p3, p4;
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ curves_calculate_curve (Curves *curves,
|
|||||||
case GIMP_CURVE_SMOOTH:
|
case GIMP_CURVE_SMOOTH:
|
||||||
/* cycle through the curves */
|
/* cycle through the curves */
|
||||||
num_pts = 0;
|
num_pts = 0;
|
||||||
for (i = 0; i < 17; i++)
|
for (i = 0; i < CURVES_NUM_POINTS; i++)
|
||||||
if (curves->points[channel][i][0] != -1)
|
if (curves->points[channel][i][0] != -1)
|
||||||
points[num_pts++] = i;
|
points[num_pts++] = i;
|
||||||
|
|
||||||
|
@ -19,11 +19,12 @@
|
|||||||
#ifndef __CURVES_H__
|
#ifndef __CURVES_H__
|
||||||
#define __CURVES_H__
|
#define __CURVES_H__
|
||||||
|
|
||||||
|
#define CURVES_NUM_POINTS 17
|
||||||
|
|
||||||
struct _Curves
|
struct _Curves
|
||||||
{
|
{
|
||||||
GimpCurveType curve_type[5];
|
GimpCurveType curve_type[5];
|
||||||
gint points[5][17][2];
|
gint points[5][CURVES_NUM_POINTS][2];
|
||||||
guchar curve[5][256];
|
guchar curve[5][256];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -707,6 +707,10 @@ curves_spline_invoker (Gimp *gimp,
|
|||||||
|
|
||||||
curves_init (&c);
|
curves_init (&c);
|
||||||
|
|
||||||
|
/* unset the last point */
|
||||||
|
c.points[channel][CURVES_NUM_POINTS - 1][0] = -1;
|
||||||
|
c.points[channel][CURVES_NUM_POINTS - 1][1] = -1;
|
||||||
|
|
||||||
for (j = 0; j < num_points / 2; j++)
|
for (j = 0; j < num_points / 2; j++)
|
||||||
{
|
{
|
||||||
c.points[channel][j][0] = control_pts[j * 2];
|
c.points[channel][j][0] = control_pts[j * 2];
|
||||||
|
@ -406,7 +406,7 @@ curves_add_point (GimpCurvesTool *tool,
|
|||||||
curvex = tool->col_value[cchan];
|
curvex = tool->col_value[cchan];
|
||||||
distance = G_MAXINT;
|
distance = G_MAXINT;
|
||||||
|
|
||||||
for (i = 0; i < 17; i++)
|
for (i = 0; i < CURVES_NUM_POINTS; i++)
|
||||||
{
|
{
|
||||||
if (tool->curves->points[cchan][i][0] != -1)
|
if (tool->curves->points[cchan][i][0] != -1)
|
||||||
if (abs (curvex - tool->curves->points[cchan][i][0]) < distance)
|
if (abs (curvex - tool->curves->points[cchan][i][0]) < distance)
|
||||||
@ -663,8 +663,8 @@ gimp_curves_tool_settings_load (GimpImageMapTool *image_map_tool,
|
|||||||
gint i, j;
|
gint i, j;
|
||||||
gint fields;
|
gint fields;
|
||||||
gchar buf[50];
|
gchar buf[50];
|
||||||
gint index[5][17];
|
gint index[5][CURVES_NUM_POINTS];
|
||||||
gint value[5][17];
|
gint value[5][CURVES_NUM_POINTS];
|
||||||
|
|
||||||
if (! fgets (buf, sizeof (buf), file))
|
if (! fgets (buf, sizeof (buf), file))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -674,7 +674,7 @@ gimp_curves_tool_settings_load (GimpImageMapTool *image_map_tool,
|
|||||||
|
|
||||||
for (i = 0; i < 5; i++)
|
for (i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
for (j = 0; j < 17; j++)
|
for (j = 0; j < CURVES_NUM_POINTS; j++)
|
||||||
{
|
{
|
||||||
fields = fscanf (file, "%d %d ", &index[i][j], &value[i][j]);
|
fields = fscanf (file, "%d %d ", &index[i][j], &value[i][j]);
|
||||||
if (fields != 2)
|
if (fields != 2)
|
||||||
@ -690,7 +690,7 @@ gimp_curves_tool_settings_load (GimpImageMapTool *image_map_tool,
|
|||||||
{
|
{
|
||||||
tool->curves->curve_type[i] = GIMP_CURVE_SMOOTH;
|
tool->curves->curve_type[i] = GIMP_CURVE_SMOOTH;
|
||||||
|
|
||||||
for (j = 0; j < 17; j++)
|
for (j = 0; j < CURVES_NUM_POINTS; j++)
|
||||||
{
|
{
|
||||||
tool->curves->points[i][j][0] = index[i][j];
|
tool->curves->points[i][j][0] = index[i][j];
|
||||||
tool->curves->points[i][j][1] = value[i][j];
|
tool->curves->points[i][j][1] = value[i][j];
|
||||||
@ -734,7 +734,7 @@ gimp_curves_tool_settings_save (GimpImageMapTool *image_map_tool,
|
|||||||
|
|
||||||
for (i = 0; i < 5; i++)
|
for (i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
for (j = 0; j < 17; j++)
|
for (j = 0; j < CURVES_NUM_POINTS; j++)
|
||||||
fprintf (file, "%d %d ",
|
fprintf (file, "%d %d ",
|
||||||
tool->curves->points[i][j][0],
|
tool->curves->points[i][j][0],
|
||||||
tool->curves->points[i][j][1]);
|
tool->curves->points[i][j][1]);
|
||||||
@ -929,7 +929,7 @@ curves_graph_events (GtkWidget *widget,
|
|||||||
y = CLAMP0255 (y);
|
y = CLAMP0255 (y);
|
||||||
|
|
||||||
distance = G_MAXINT;
|
distance = G_MAXINT;
|
||||||
for (i = 0, closest_point = 0; i < 17; i++)
|
for (i = 0, closest_point = 0; i < CURVES_NUM_POINTS; i++)
|
||||||
{
|
{
|
||||||
if (tool->curves->points[tool->channel][i][0] != -1)
|
if (tool->curves->points[tool->channel][i][0] != -1)
|
||||||
if (abs (x - tool->curves->points[tool->channel][i][0]) < distance)
|
if (abs (x - tool->curves->points[tool->channel][i][0]) < distance)
|
||||||
@ -964,7 +964,7 @@ curves_graph_events (GtkWidget *widget,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
tool->rightmost = 256;
|
tool->rightmost = 256;
|
||||||
for (i = closest_point + 1; i < 17; i++)
|
for (i = closest_point + 1; i < CURVES_NUM_POINTS; i++)
|
||||||
if (tool->curves->points[tool->channel][i][0] != -1)
|
if (tool->curves->points[tool->channel][i][0] != -1)
|
||||||
{
|
{
|
||||||
tool->rightmost = tool->curves->points[tool->channel][i][0];
|
tool->rightmost = tool->curves->points[tool->channel][i][0];
|
||||||
@ -1211,7 +1211,7 @@ curves_graph_expose (GtkWidget *widget,
|
|||||||
if (tool->curves->curve_type[tool->channel] == GIMP_CURVE_SMOOTH)
|
if (tool->curves->curve_type[tool->channel] == GIMP_CURVE_SMOOTH)
|
||||||
{
|
{
|
||||||
/* Draw the points */
|
/* Draw the points */
|
||||||
for (i = 0; i < 17; i++)
|
for (i = 0; i < CURVES_NUM_POINTS; i++)
|
||||||
{
|
{
|
||||||
x = tool->curves->points[tool->channel][i][0];
|
x = tool->curves->points[tool->channel][i][0];
|
||||||
if (x < 0)
|
if (x < 0)
|
||||||
|
@ -432,6 +432,10 @@ HELP
|
|||||||
|
|
||||||
curves_init (&c);
|
curves_init (&c);
|
||||||
|
|
||||||
|
/* unset the last point */
|
||||||
|
c.points[channel][CURVES_NUM_POINTS - 1][0] = -1;
|
||||||
|
c.points[channel][CURVES_NUM_POINTS - 1][1] = -1;
|
||||||
|
|
||||||
for (j = 0; j < num_points / 2; j++)
|
for (j = 0; j < num_points / 2; j++)
|
||||||
{
|
{
|
||||||
c.points[channel][j][0] = control_pts[j * 2];
|
c.points[channel][j][0] = control_pts[j * 2];
|
||||||
|
Reference in New Issue
Block a user