Commit 954151d6 authored by BST 1999 Andy Thomas's avatar BST 1999 Andy Thomas Committed by Andy Thomas

./app/clone.c ./app/airbrush.c ./app/bezier_select.c ./app/paintbrush.c


Fri Jul 23 00:01:05 BST 1999 Andy Thomas <alt@gimp.org>

	* ./app/clone.c
	* ./app/airbrush.c
	* ./app/bezier_select.c
	* ./app/paintbrush.c
	* ./app/eraser.c
	* ./app/convolve.c
	* ./app/smudge.c
	* ./app/dodgeburn.c
	* ./app/pencil.c
	* ./app/paint_core.c

	Better stroking of paths.
	First point in stroke path is now correctly painted (try stroking
	with a brush spacing of > 100.0 in gimp 1.0.x).
	Fixed problem in paint_core_interpolate() where points were
	missed in some cases.
	(BTW for those who do not know the brush spacing means as follows:-
	A spacing of 100.0 means brush strokes are placed next to each other
	exactly with no gaps or overlaps. A spacing of 200.0 means only
	alternate spaces are filled with the brush paint. A setting of 50.0
	means the brush paints positions overlap by 50% of the brush width.
	So 100.0 corresponds to exactly the brush width! It took me
	ages to figure this simple thing out!)
parent 88648f40
Fri Jul 23 00:01:05 BST 1999 Andy Thomas <alt@gimp.org>
* ./app/clone.c
* ./app/airbrush.c
* ./app/bezier_select.c
* ./app/paintbrush.c
* ./app/eraser.c
* ./app/convolve.c
* ./app/smudge.c
* ./app/dodgeburn.c
* ./app/pencil.c
* ./app/paint_core.c
Better stroking of paths.
First point in stroke path is now correctly painted (try stroking
with a brush spacing of > 100.0 in gimp 1.0.x).
Fixed problem in paint_core_interpolate() where points were
missed in some cases.
(BTW for those who do not know the brush spacing means as follows:-
A spacing of 100.0 means brush strokes are placed next to each other
exactly with no gaps or overlaps. A spacing of 200.0 means only
alternate spaces are filled with the brush paint. A setting of 50.0
means the brush paints positions overlap by 50% of the brush width.
So 100.0 corresponds to exactly the brush width! It took me
ages to figure this simple thing out!)
1999-07-22 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/brightness_contrast.c: same cleanups as in my previous
......
......@@ -352,8 +352,7 @@ airbrush_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
airbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
airbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -3057,7 +3057,7 @@ bezier_gen_points(BezierSelect *bezier_sel,
return(TRUE);
do {
bezier_draw_segment (bezier_sel, points,
SUBDIVIDE, IMAGE_COORDS,
SUBDIVIDE, AA_IMAGE_COORDS,
bezier_stack_points,
(gpointer)next_rpnts);
......@@ -3137,21 +3137,19 @@ bezier_stroke (BezierSelect *bezier_sel,
{
GimpDrawable *drawable;
int offset_x, offset_y;
gdouble *ptr;
drawable = gimage_active_drawable (gdisp->gimage);
gimp_drawable_offsets (drawable, &offset_x, &offset_y);
if ((offset_x != 0) || (offset_y != 0))
{
gdouble *ptr;
ptr = rpnts->stroke_points;
while (ptr < rpnts->stroke_points + (rpnts->num_stroke_points * 2))
{
*ptr++ -= offset_x;
*ptr++ -= offset_y;
}
}
ptr = rpnts->stroke_points;
while (ptr < rpnts->stroke_points + (rpnts->num_stroke_points * 2))
{
*ptr /= SUPERSAMPLE;
*ptr++ -= offset_x;
*ptr /= SUPERSAMPLE;
*ptr++ -= offset_y;
}
/* Stroke with the correct tool */
return_vals = procedural_db_run_proc (active_tool_PDB_string(),
......
......@@ -744,8 +744,7 @@ clone_non_gui (GimpDrawable *drawable,
non_gui_offset_x = (int) (src_x - non_gui_paint_core.startx);
non_gui_offset_y = (int) (src_y - non_gui_paint_core.starty);
if (num_strokes == 1)
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -485,8 +485,7 @@ convolve_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
convolve_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
convolve_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -482,8 +482,7 @@ dodgeburn_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
dodgeburn_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
dodgeburn_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -262,8 +262,7 @@ eraser_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
eraser_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
eraser_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -352,8 +352,7 @@ airbrush_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
airbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
airbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -744,8 +744,7 @@ clone_non_gui (GimpDrawable *drawable,
non_gui_offset_x = (int) (src_x - non_gui_paint_core.startx);
non_gui_offset_y = (int) (src_y - non_gui_paint_core.starty);
if (num_strokes == 1)
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -485,8 +485,7 @@ convolve_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
convolve_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
convolve_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -482,8 +482,7 @@ dodgeburn_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
dodgeburn_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
dodgeburn_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -262,8 +262,7 @@ eraser_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
eraser_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
eraser_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -167,8 +167,7 @@ pencil_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
pencil_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
pencil_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -425,11 +425,10 @@ smudge_non_gui (GimpDrawable *drawable,
non_gui_pressure = pressure;
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
non_gui_paint_core.curx = non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.cury = non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
smudge_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
smudge_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -744,8 +744,7 @@ clone_non_gui (GimpDrawable *drawable,
non_gui_offset_x = (int) (src_x - non_gui_paint_core.startx);
non_gui_offset_y = (int) (src_y - non_gui_paint_core.starty);
if (num_strokes == 1)
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -702,7 +702,7 @@ void
paint_core_interpolate (PaintCore *paint_core,
GimpDrawable *drawable)
{
int n;
double n;
vector2d delta;
double dpressure, dxtilt, dytilt;
double left;
......@@ -720,6 +720,7 @@ paint_core_interpolate (PaintCore *paint_core,
if (!delta.x && !delta.y && !dpressure && !dxtilt && !dytilt)
return;
mag = vector2d_magnitude (&(paint_core->brush->x_axis));
xd = vector2d_dot_product(&delta, &(paint_core->brush->x_axis)) / (mag*mag);
......@@ -727,7 +728,7 @@ paint_core_interpolate (PaintCore *paint_core,
yd = vector2d_dot_product(&delta, &(paint_core->brush->y_axis)) /
SQR(vector2d_magnitude(&(paint_core->brush->y_axis)));
dist = .5 * sqrt (xd*xd + yd*yd);
dist = .5 * sqrt (xd*xd + yd*yd);
total = dist + paint_core->distance;
initial = paint_core->distance;
......@@ -736,9 +737,10 @@ paint_core_interpolate (PaintCore *paint_core,
{
n = (int) (paint_core->distance / paint_core->spacing + 1.0 + EPSILON);
left = n * paint_core->spacing - paint_core->distance;
paint_core->distance += left;
if (paint_core->distance <= total)
if (paint_core->distance <= (total+EPSILON))
{
t = (paint_core->distance - initial) / dist;
......
......@@ -510,8 +510,7 @@ paintbrush_non_gui_default (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
paintbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
paintbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -167,8 +167,7 @@ pencil_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
pencil_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
pencil_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -425,11 +425,10 @@ smudge_non_gui (GimpDrawable *drawable,
non_gui_pressure = pressure;
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
non_gui_paint_core.curx = non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.cury = non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
smudge_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
smudge_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -352,8 +352,7 @@ airbrush_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
airbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
airbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -3057,7 +3057,7 @@ bezier_gen_points(BezierSelect *bezier_sel,
return(TRUE);
do {
bezier_draw_segment (bezier_sel, points,
SUBDIVIDE, IMAGE_COORDS,
SUBDIVIDE, AA_IMAGE_COORDS,
bezier_stack_points,
(gpointer)next_rpnts);
......@@ -3137,21 +3137,19 @@ bezier_stroke (BezierSelect *bezier_sel,
{
GimpDrawable *drawable;
int offset_x, offset_y;
gdouble *ptr;
drawable = gimage_active_drawable (gdisp->gimage);
gimp_drawable_offsets (drawable, &offset_x, &offset_y);
if ((offset_x != 0) || (offset_y != 0))
{
gdouble *ptr;
ptr = rpnts->stroke_points;
while (ptr < rpnts->stroke_points + (rpnts->num_stroke_points * 2))
{
*ptr++ -= offset_x;
*ptr++ -= offset_y;
}
}
ptr = rpnts->stroke_points;
while (ptr < rpnts->stroke_points + (rpnts->num_stroke_points * 2))
{
*ptr /= SUPERSAMPLE;
*ptr++ -= offset_x;
*ptr /= SUPERSAMPLE;
*ptr++ -= offset_y;
}
/* Stroke with the correct tool */
return_vals = procedural_db_run_proc (active_tool_PDB_string(),
......
......@@ -744,8 +744,7 @@ clone_non_gui (GimpDrawable *drawable,
non_gui_offset_x = (int) (src_x - non_gui_paint_core.startx);
non_gui_offset_y = (int) (src_y - non_gui_paint_core.starty);
if (num_strokes == 1)
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -485,8 +485,7 @@ convolve_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
convolve_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
convolve_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -482,8 +482,7 @@ dodgeburn_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
dodgeburn_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
dodgeburn_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -262,8 +262,7 @@ eraser_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
eraser_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
eraser_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -352,8 +352,7 @@ airbrush_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
airbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
airbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -744,8 +744,7 @@ clone_non_gui (GimpDrawable *drawable,
non_gui_offset_x = (int) (src_x - non_gui_paint_core.startx);
non_gui_offset_y = (int) (src_y - non_gui_paint_core.starty);
if (num_strokes == 1)
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -485,8 +485,7 @@ convolve_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
convolve_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
convolve_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -482,8 +482,7 @@ dodgeburn_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
dodgeburn_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
dodgeburn_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -262,8 +262,7 @@ eraser_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
eraser_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
eraser_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -167,8 +167,7 @@ pencil_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
pencil_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
pencil_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -425,11 +425,10 @@ smudge_non_gui (GimpDrawable *drawable,
non_gui_pressure = pressure;
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
non_gui_paint_core.curx = non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.cury = non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
smudge_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
smudge_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -744,8 +744,7 @@ clone_non_gui (GimpDrawable *drawable,
non_gui_offset_x = (int) (src_x - non_gui_paint_core.startx);
non_gui_offset_y = (int) (src_y - non_gui_paint_core.starty);
if (num_strokes == 1)
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
clone_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -702,7 +702,7 @@ void
paint_core_interpolate (PaintCore *paint_core,
GimpDrawable *drawable)
{
int n;
double n;
vector2d delta;
double dpressure, dxtilt, dytilt;
double left;
......@@ -720,6 +720,7 @@ paint_core_interpolate (PaintCore *paint_core,
if (!delta.x && !delta.y && !dpressure && !dxtilt && !dytilt)
return;
mag = vector2d_magnitude (&(paint_core->brush->x_axis));
xd = vector2d_dot_product(&delta, &(paint_core->brush->x_axis)) / (mag*mag);
......@@ -727,7 +728,7 @@ paint_core_interpolate (PaintCore *paint_core,
yd = vector2d_dot_product(&delta, &(paint_core->brush->y_axis)) /
SQR(vector2d_magnitude(&(paint_core->brush->y_axis)));
dist = .5 * sqrt (xd*xd + yd*yd);
dist = .5 * sqrt (xd*xd + yd*yd);
total = dist + paint_core->distance;
initial = paint_core->distance;
......@@ -736,9 +737,10 @@ paint_core_interpolate (PaintCore *paint_core,
{
n = (int) (paint_core->distance / paint_core->spacing + 1.0 + EPSILON);
left = n * paint_core->spacing - paint_core->distance;
paint_core->distance += left;
if (paint_core->distance <= total)
if (paint_core->distance <= (total+EPSILON))
{
t = (paint_core->distance - initial) / dist;
......
......@@ -510,8 +510,7 @@ paintbrush_non_gui_default (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
paintbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
paintbrush_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -167,8 +167,7 @@ pencil_non_gui (GimpDrawable *drawable,
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
pencil_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
pencil_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
......@@ -425,11 +425,10 @@ smudge_non_gui (GimpDrawable *drawable,
non_gui_pressure = pressure;
non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
non_gui_paint_core.curx = non_gui_paint_core.startx = non_gui_paint_core.lastx = stroke_array[0];
non_gui_paint_core.cury = non_gui_paint_core.starty = non_gui_paint_core.lasty = stroke_array[1];
if (num_strokes == 1)
smudge_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
smudge_non_gui_paint_func (&non_gui_paint_core, drawable, 0);
for (i = 1; i < num_strokes; i++)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment