paint_core_interpolate now takes care of setting core->last_coords. Don't
* app/paint/gimppaintcore.c: paint_core_interpolate now takes care of setting core->last_coords. Don't reset core->distance in paint_core_start (fixes problem with shift-click brush strokes). Improved brush placement for stroked selections in paint_core_interpolate. * app/paint/gimppaintcore-stroke.c: dont need to set core->last_coords anymore. * app/tools/gimppainttool.c: dont need to set core->last_coords anymore. Set core->distance in gimp_paint_tool_button_press.
This commit is contained in:
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2003-08-21 Jay Cox <jaycox@gimp.org>
|
||||||
|
|
||||||
|
* app/paint/gimppaintcore.c: paint_core_interpolate now takes care
|
||||||
|
of setting core->last_coords. Don't reset core->distance in
|
||||||
|
paint_core_start (fixes problem with shift-click brush strokes).
|
||||||
|
Improved brush placement for stroked selections in
|
||||||
|
paint_core_interpolate.
|
||||||
|
* app/paint/gimppaintcore-stroke.c: dont need to set
|
||||||
|
core->last_coords anymore.
|
||||||
|
* app/tools/gimppainttool.c: dont need to set core->last_coords
|
||||||
|
anymore. Set core->distance in gimp_paint_tool_button_press.
|
||||||
|
|
||||||
2003-08-21 Sven Neumann <sven@gimp.org>
|
2003-08-21 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* m4macros/gimp-2.0.m4: set the default minimum version to 1.3.18.
|
* m4macros/gimp-2.0.m4: set the default minimum version to 1.3.18.
|
||||||
|
@ -64,9 +64,7 @@ gimp_paint_core_stroke (GimpPaintCore *core,
|
|||||||
core->cur_coords = strokes[i];
|
core->cur_coords = strokes[i];
|
||||||
|
|
||||||
gimp_paint_core_interpolate (core, drawable, paint_options);
|
gimp_paint_core_interpolate (core, drawable, paint_options);
|
||||||
|
}
|
||||||
core->last_coords = core->cur_coords;
|
|
||||||
}
|
|
||||||
|
|
||||||
gimp_paint_core_paint (core, drawable, paint_options, FINISH_PAINT);
|
gimp_paint_core_paint (core, drawable, paint_options, FINISH_PAINT);
|
||||||
|
|
||||||
@ -153,8 +151,6 @@ gimp_paint_core_stroke_vectors (GimpPaintCore *core,
|
|||||||
core->cur_coords = g_array_index (coords, GimpCoords, i);
|
core->cur_coords = g_array_index (coords, GimpCoords, i);
|
||||||
|
|
||||||
gimp_paint_core_interpolate (core, drawable, paint_options);
|
gimp_paint_core_interpolate (core, drawable, paint_options);
|
||||||
|
|
||||||
core->last_coords = core->cur_coords;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (closed)
|
if (closed)
|
||||||
@ -162,8 +158,6 @@ gimp_paint_core_stroke_vectors (GimpPaintCore *core,
|
|||||||
core->cur_coords = g_array_index (coords, GimpCoords, 0);
|
core->cur_coords = g_array_index (coords, GimpCoords, 0);
|
||||||
|
|
||||||
gimp_paint_core_interpolate (core, drawable, paint_options);
|
gimp_paint_core_interpolate (core, drawable, paint_options);
|
||||||
|
|
||||||
core->last_coords = core->cur_coords;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_array_free (coords, TRUE);
|
g_array_free (coords, TRUE);
|
||||||
|
@ -444,8 +444,6 @@ gimp_paint_core_start (GimpPaintCore *core,
|
|||||||
|
|
||||||
core->x1 = core->x2 = core->cur_coords.x;
|
core->x1 = core->x2 = core->cur_coords.x;
|
||||||
core->y1 = core->y2 = core->cur_coords.y;
|
core->y1 = core->y2 = core->cur_coords.y;
|
||||||
core->distance = 0.0;
|
|
||||||
core->pixel_dist = 0.0;
|
|
||||||
|
|
||||||
core->last_paint.x = -1e6;
|
core->last_paint.x = -1e6;
|
||||||
core->last_paint.y = -1e6;
|
core->last_paint.y = -1e6;
|
||||||
@ -711,10 +709,21 @@ gimp_paint_core_interpolate (GimpPaintCore *core,
|
|||||||
* make thin lines (say, with a 1x1 brush) prettier while leaving
|
* make thin lines (say, with a 1x1 brush) prettier while leaving
|
||||||
* lines with larger brush spacing as they used to look in 1.2.x.
|
* lines with larger brush spacing as they used to look in 1.2.x.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
dt = core->spacing / dist;
|
dt = core->spacing / dist;
|
||||||
n = (gint) (initial / core->spacing + 1.0 + EPSILON);
|
n = (gint) (initial / core->spacing + 1.0 + EPSILON);
|
||||||
t0 = (n * core->spacing - initial) / dist;
|
t0 = (n * core->spacing - initial) / dist;
|
||||||
num_points = 1 + (gint) floor ((1 + EPSILON - t0) / dt);
|
num_points = 1 + (gint) floor ((1 + EPSILON - t0) / dt);
|
||||||
|
|
||||||
|
/* if we arnt going to paint anything this time and the brush
|
||||||
|
* has only moved on one axis return without updating the brush
|
||||||
|
* position, distance etc. so that we can more accurately space
|
||||||
|
* brush strokes when curves are supplied to us in single pixel
|
||||||
|
* chunks.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (num_points == 0 && (delta.x == 0 || delta.y == 0))
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else if (fabs (st_factor) < EPSILON)
|
else if (fabs (st_factor) < EPSILON)
|
||||||
{
|
{
|
||||||
@ -843,6 +852,9 @@ gimp_paint_core_interpolate (GimpPaintCore *core,
|
|||||||
|
|
||||||
core->distance = total;
|
core->distance = total;
|
||||||
core->pixel_dist = pixel_initial + pixel_dist;
|
core->pixel_dist = pixel_initial + pixel_dist;
|
||||||
|
|
||||||
|
core->last_coords = core->cur_coords;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -347,6 +347,11 @@ gimp_paint_tool_button_press (GimpTool *tool,
|
|||||||
|
|
||||||
core->start_coords = core->cur_coords;
|
core->start_coords = core->cur_coords;
|
||||||
core->last_coords = core->cur_coords;
|
core->last_coords = core->cur_coords;
|
||||||
|
|
||||||
|
core->distance = 0.0;
|
||||||
|
core->pixel_dist = 0.0;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (paint_tool->draw_line)
|
else if (paint_tool->draw_line)
|
||||||
{
|
{
|
||||||
@ -381,8 +386,6 @@ gimp_paint_tool_button_press (GimpTool *tool,
|
|||||||
if (paint_tool->draw_line)
|
if (paint_tool->draw_line)
|
||||||
{
|
{
|
||||||
gimp_paint_core_interpolate (core, drawable, paint_options);
|
gimp_paint_core_interpolate (core, drawable, paint_options);
|
||||||
|
|
||||||
core->last_coords = core->cur_coords;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -473,8 +476,6 @@ gimp_paint_tool_motion (GimpTool *tool,
|
|||||||
|
|
||||||
if (core->flags & CORE_TRACES_ON_WINDOW)
|
if (core->flags & CORE_TRACES_ON_WINDOW)
|
||||||
gimp_paint_core_paint (core, drawable, paint_options, POSTTRACE_PAINT);
|
gimp_paint_core_paint (core, drawable, paint_options, POSTTRACE_PAINT);
|
||||||
|
|
||||||
core->last_coords = core->cur_coords;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -347,6 +347,11 @@ gimp_paint_tool_button_press (GimpTool *tool,
|
|||||||
|
|
||||||
core->start_coords = core->cur_coords;
|
core->start_coords = core->cur_coords;
|
||||||
core->last_coords = core->cur_coords;
|
core->last_coords = core->cur_coords;
|
||||||
|
|
||||||
|
core->distance = 0.0;
|
||||||
|
core->pixel_dist = 0.0;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (paint_tool->draw_line)
|
else if (paint_tool->draw_line)
|
||||||
{
|
{
|
||||||
@ -381,8 +386,6 @@ gimp_paint_tool_button_press (GimpTool *tool,
|
|||||||
if (paint_tool->draw_line)
|
if (paint_tool->draw_line)
|
||||||
{
|
{
|
||||||
gimp_paint_core_interpolate (core, drawable, paint_options);
|
gimp_paint_core_interpolate (core, drawable, paint_options);
|
||||||
|
|
||||||
core->last_coords = core->cur_coords;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -473,8 +476,6 @@ gimp_paint_tool_motion (GimpTool *tool,
|
|||||||
|
|
||||||
if (core->flags & CORE_TRACES_ON_WINDOW)
|
if (core->flags & CORE_TRACES_ON_WINDOW)
|
||||||
gimp_paint_core_paint (core, drawable, paint_options, POSTTRACE_PAINT);
|
gimp_paint_core_paint (core, drawable, paint_options, POSTTRACE_PAINT);
|
||||||
|
|
||||||
core->last_coords = core->cur_coords;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user