"Tiles" and "Pattern" tools, based on Kaleidoscope.
This commit is contained in:
parent
28e62c4bde
commit
3f46a4321f
9 changed files with 53 additions and 7 deletions
|
|
@ -7,7 +7,7 @@ bill@newbreedsoftware.com
|
||||||
http://www.tuxpaint.org/
|
http://www.tuxpaint.org/
|
||||||
|
|
||||||
|
|
||||||
June 17, 2002 - June 30, 2011
|
June 17, 2002 - July 2, 2011
|
||||||
|
|
||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
|
|
@ -106,6 +106,9 @@ $Id$
|
||||||
Ankit Choudary <ankit.goaldecided@gmail.com>, as part of GSOC 2010,
|
Ankit Choudary <ankit.goaldecided@gmail.com>, as part of GSOC 2010,
|
||||||
with integration and fixes by Pere Pujal i Carabantes <pere@fornol.no-ip.org>
|
with integration and fixes by Pere Pujal i Carabantes <pere@fornol.no-ip.org>
|
||||||
|
|
||||||
|
Various other improvements and clean-ups by
|
||||||
|
Pere Pujal i Carabantes <pere@fornol.no-ip.org>
|
||||||
|
|
||||||
|
|
||||||
* Graphics
|
* Graphics
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ http://www.tuxpaint.org/
|
||||||
|
|
||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
2011.June.30 (0.9.22)
|
2011.July.2 (0.9.22)
|
||||||
|
|
||||||
* New Tools:
|
* New Tools:
|
||||||
----------
|
----------
|
||||||
|
|
@ -21,8 +21,10 @@ $Id$
|
||||||
* New Magic Tools:
|
* New Magic Tools:
|
||||||
----------------
|
----------------
|
||||||
* Blinds - Close window blinds over your picture.
|
* Blinds - Close window blinds over your picture.
|
||||||
|
Pattern - Draws a tiled pattern around the picture.
|
||||||
Perspective - Change the image's perspective.
|
Perspective - Change the image's perspective.
|
||||||
Moasic Hexagon, Mosaic irregular, Mosaic square - Glass mosaic effects.
|
Mosaic Hexagon, Mosaic irregular, Mosaic square - Glass mosaic effects.
|
||||||
|
Tiles - Draws a symettric pattern around the picture.
|
||||||
Zoom - Zoom the image in or out.
|
Zoom - Zoom the image in or out.
|
||||||
By Pere Pujal i Carabantes <pere@fornol.no-ip.org>
|
By Pere Pujal i Carabantes <pere@fornol.no-ip.org>
|
||||||
|
|
||||||
|
|
|
||||||
BIN
magic/icons/kal_pattern.png
Normal file
BIN
magic/icons/kal_pattern.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 580 B |
BIN
magic/icons/kal_tiles.png
Normal file
BIN
magic/icons/kal_tiles.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 921 B |
10
magic/magic-docs/html/kal_pattern.html
Normal file
10
magic/magic-docs/html/kal_pattern.html
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<body><html><head><title>Tux Paint "Magic" Tool: Pattern</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
|
||||||
|
<h1 align="center">Tux Paint "Magic" Tool: Pattern</h1>
|
||||||
|
<h2 align="center">By Pere Pujal i Carabantes <<a href="mailto:pere@fornol.no-ip.org">pere@fornol.no-ip.org</a>></h2>
|
||||||
|
<p>This paint brush draws a repeating tile around the image.</p>
|
||||||
|
<p>See also: <a href="kal_pattern.html">Pattern</a> <a href="kal_pattern.html">Pattern</a></p>
|
||||||
|
</body></html>
|
||||||
10
magic/magic-docs/html/kal_tiles.html
Normal file
10
magic/magic-docs/html/kal_tiles.html
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<body><html><head><title>Tux Paint "Magic" Tool: Tiles</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#FF0000" alink="#FF00FF">
|
||||||
|
<h1 align="center">Tux Paint "Magic" Tool: Tiles</h1>
|
||||||
|
<h2 align="center">By Pere Pujal i Carabantes <<a href="mailto:pere@fornol.no-ip.org">pere@fornol.no-ip.org</a>></h2>
|
||||||
|
<p>This paint brush draws symmetrically, tiled around the image.</p>
|
||||||
|
<p>See also: <a href="kaleidoscope.html">Kaleidoscope</a> <a href="kal_pattern.html">Pattern</a></p>
|
||||||
|
</body></html>
|
||||||
|
|
@ -6,5 +6,5 @@
|
||||||
<h1 align="center">Tux Paint "Magic" Tool: Kaleidoscope</h1>
|
<h1 align="center">Tux Paint "Magic" Tool: Kaleidoscope</h1>
|
||||||
<h2 align="center">By Bill Kendrick <<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>></h2>
|
<h2 align="center">By Bill Kendrick <<a href="mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>></h2>
|
||||||
<p>This paint brush draws in four places at the same time, mirroring symmetrically, both horizontally and vertically. It uses the currently selected color.</p>
|
<p>This paint brush draws in four places at the same time, mirroring symmetrically, both horizontally and vertically. It uses the currently selected color.</p>
|
||||||
<p>See also: <a href="picasso.html">Picasso</a></p>
|
<p>See also: <a href="picasso.html">Picasso</a> <a href="kal_pattern.html">Pattern</a> <a href="kal_tiles.html">Tiles</a></p>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|
@ -6,4 +6,4 @@
|
||||||
symmetrically, both horizontally and vertically. It uses the currently
|
symmetrically, both horizontally and vertically. It uses the currently
|
||||||
selected color.
|
selected color.
|
||||||
|
|
||||||
See also: Picasso
|
See also: Picasso Pattern Tiles
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
static Mix_Chunk * kalidescope_snd;
|
static Mix_Chunk * kalidescope_snd;
|
||||||
static Uint8 kalidescope_r, kalidescope_g, kalidescope_b;
|
static Uint8 kalidescope_r, kalidescope_g, kalidescope_b;
|
||||||
|
static int square_size = 128;
|
||||||
|
|
||||||
Uint32 kalidescope_api_version(void) { return(TP_MAGIC_API_VERSION); }
|
Uint32 kalidescope_api_version(void) { return(TP_MAGIC_API_VERSION); }
|
||||||
|
|
||||||
|
|
@ -45,6 +45,8 @@ enum {
|
||||||
KAL_UD,
|
KAL_UD,
|
||||||
KAL_LR,
|
KAL_LR,
|
||||||
KAL_BOTH,
|
KAL_BOTH,
|
||||||
|
KAL_PATTERN,
|
||||||
|
KAL_TILES,
|
||||||
KAL_COUNT
|
KAL_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -52,6 +54,8 @@ char * kal_icon_names[KAL_COUNT] = {
|
||||||
"symmetric_updown.png",
|
"symmetric_updown.png",
|
||||||
"symmetric_leftright.png",
|
"symmetric_leftright.png",
|
||||||
"kalidescope.png",
|
"kalidescope.png",
|
||||||
|
"kal_pattern.png",
|
||||||
|
"kal_tiles.png"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -90,6 +94,10 @@ char * kalidescope_get_name(magic_api * api, int which)
|
||||||
return(strdup(gettext_noop("Symmetric Left/Right")));
|
return(strdup(gettext_noop("Symmetric Left/Right")));
|
||||||
} else if (which == KAL_UD) {
|
} else if (which == KAL_UD) {
|
||||||
return(strdup(gettext_noop("Symmetric Up/Down")));
|
return(strdup(gettext_noop("Symmetric Up/Down")));
|
||||||
|
} else if (which == KAL_PATTERN) {
|
||||||
|
return(strdup(gettext_noop("Pattern")));
|
||||||
|
} else if (which == KAL_TILES) {
|
||||||
|
return(strdup(gettext_noop("Tiles")));
|
||||||
} else { /* KAL_BOTH */
|
} else { /* KAL_BOTH */
|
||||||
return(strdup(gettext_noop("Kaleidoscope")));
|
return(strdup(gettext_noop("Kaleidoscope")));
|
||||||
}
|
}
|
||||||
|
|
@ -102,6 +110,10 @@ char * kalidescope_get_description(magic_api * api, int which, int mode)
|
||||||
return(strdup(gettext_noop("Click and drag the mouse to draw with two brushes that are symmetric across the left and right of your picture.")));
|
return(strdup(gettext_noop("Click and drag the mouse to draw with two brushes that are symmetric across the left and right of your picture.")));
|
||||||
} else if (which == KAL_UD) {
|
} else if (which == KAL_UD) {
|
||||||
return(strdup(gettext_noop("Click and drag the mouse to draw with two brushes that are symmetric across the top and bottom of your picture.")));
|
return(strdup(gettext_noop("Click and drag the mouse to draw with two brushes that are symmetric across the top and bottom of your picture.")));
|
||||||
|
} else if (which == KAL_PATTERN) {
|
||||||
|
return(strdup(gettext_noop("Click and drag the mouse to draw a pattern across the picture.")));
|
||||||
|
} else if (which == KAL_TILES) {
|
||||||
|
return(strdup(gettext_noop("Click and drag the mouse to draw a pattern plus its symmetric across the picture.")));
|
||||||
} else { /* KAL_BOTH */
|
} else { /* KAL_BOTH */
|
||||||
return(strdup(gettext_noop("Click and drag the mouse to draw with symmetric brushes (a kaleidoscope).")));
|
return(strdup(gettext_noop("Click and drag the mouse to draw with symmetric brushes (a kaleidoscope).")));
|
||||||
}
|
}
|
||||||
|
|
@ -114,6 +126,7 @@ static void do_kalidescope(void * ptr, int which, SDL_Surface * canvas, SDL_Surf
|
||||||
{
|
{
|
||||||
magic_api * api = (magic_api *) ptr;
|
magic_api * api = (magic_api *) ptr;
|
||||||
int xx, yy;
|
int xx, yy;
|
||||||
|
int i, j;
|
||||||
Uint32 colr;
|
Uint32 colr;
|
||||||
|
|
||||||
colr = SDL_MapRGB(canvas->format,
|
colr = SDL_MapRGB(canvas->format,
|
||||||
|
|
@ -139,6 +152,14 @@ static void do_kalidescope(void * ptr, int which, SDL_Surface * canvas, SDL_Surf
|
||||||
if (which == KAL_UD || which == KAL_BOTH) {
|
if (which == KAL_UD || which == KAL_BOTH) {
|
||||||
api->putpixel(canvas, x + xx, canvas->h - 1 - y + yy, colr);
|
api->putpixel(canvas, x + xx, canvas->h - 1 - y + yy, colr);
|
||||||
}
|
}
|
||||||
|
if (which == KAL_PATTERN || which == KAL_TILES) {
|
||||||
|
for (i = 0; i <= canvas->w; i += square_size)
|
||||||
|
for (j = 0; j <= canvas->h; j += square_size){
|
||||||
|
api->putpixel(canvas, i + xx + x % square_size, j + yy + y % square_size, colr);
|
||||||
|
if (which == KAL_TILES)
|
||||||
|
api->putpixel(canvas, i + yy + y % square_size, j + xx + x % square_size, colr);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue