Commit a4e97e61 authored by Manish Singh's avatar Manish Singh

Lots o' changes for 0.99.17. See ChangeLog for details.

-Yosh
parent cce695a6
Sat Jan 3 16:48:02 PST 1998 Manish Singh <yosh@gimp.org>
* app/colormaps.c: check for NULL pointer access when not enough
colormaps for standard colormaps (gimp-joke-971219-0)
* app/fileops.c: fix for saving files in the wrong place
* app/fuzzy_select.c: now less aggressive (doesn't grab the whole
image with diagonal 1-pixel wide line) Too conservative now?
* app/text_tool.c: negative border-value disables autocropping
of text
* libgimp/gimplayer.c: gimp_layer_copy pdb called with correct args
* docs/Wilber.xcf.gz: added logo to docs dir :)
* Added DigitalSignature, FractalExplorer (not made by default),
facesaver (not made by default), and Stegano plugins
* Updated Encrypt_Decrypt, changing the dir name (no more
Encript_Decript)
* Updated plugins with their new registry versions
Thu Dec 25 23:04:00 PST 1997 Manish Singh <yosh@gimp.org>
* Updates from the plugin registry: Compose, Film, FITS, ps,
......
Some notes on GIMP-0.99.16:
Some notes on GIMP-0.99.17:
* The AA, MathMap, GimpTcl, GAG, user_filter, rcm, and Gfig plugins are
included but not yet integrated into the build cause of instability or
other unresolved issues.
* The AA, MathMap, GimpTcl, GAG, user_filter, rcm, FractalExplorer, and Gfig
plugins are included but not yet integrated into the build cause of instability
or other unresolved issues.
Please read the file TODO-DIST to find more information about things
that were not included or that are (possibly) broken in this distribution.
......@@ -11,3 +11,4 @@ that were not included or that are (possibly) broken in this distribution.
-- Federico Mena <federico@nuclecu.unam.mx>
-- Christoph Hoegl <darkwing@bsddmail.franken.de>
-- Manish Singh <yosh@gimp.org>
The GIMP: the GNU Image Manipulation Program
--------------------------------------------
This is version 0.99.16 of the GIMP. For the most part it contains all
This is version 0.99.17 of the GIMP. For the most part it contains all
of the features that will be in version 1.0 of the GIMP. It does,
however, lack a) documentation, b) robustness and c) some of the
plug-ins found in the 0.54 version.
The main difference between v0.99.16 and much earlier versions is the
The main difference between v0.99.17 and much earlier versions is the
use of a tile based memory management for images. This allows the GIMP
to work with images much larger than physical memory in a usable
fashion. Before such memory management, the GIMP was nearly unusable
......
......@@ -3,9 +3,6 @@ discovered.
* Fix srand/srandom and rand/random confusion in plugins
* Fix megawidget link ordering in deinterlace, emboss, hot, nlfilt,
sinus, and waves plugins
* configure: SunOS 4 SEEK_* and RAND_MAX defines
* configure: check for regex library presence
......
......@@ -19,11 +19,17 @@
#include <math.h>
#include "appenv.h"
#include "app_procs.h"
#include "brushes.h"
#include "colormaps.h"
#include "errors.h"
#include "general.h"
#include "gimprc.h"
#include "colormaps.h"
#include "gradient.h"
#include "palette.h"
#include "patterns.h"
#include "plug_in.h"
#include "temp_buf.h"
#include "tile_swap.h"
GdkVisual *g_visual = NULL;
......@@ -194,8 +200,23 @@ get_standard_colormaps ()
gtk_widget_set_default_colormap (gtk_preview_get_cmap ());
info = gtk_preview_get_info ();
g_visual = info->visual;
if (g_visual->depth == 8 && info->reserved_pixels == NULL) {
g_print("GIMP cannot get enough colormaps to boot.\n");
g_print("Try exiting other color intensive applications.\n");
swapping_free ();
brushes_free ();
patterns_free ();
palettes_free ();
gradients_free ();
palette_free ();
procedural_db_free ();
plug_in_kill ();
tile_swap_exit ();
gtk_exit(0);
}
g_cmap = info->cmap;
color_pixel_vals = info->color_pixels;
gray_pixel_vals = info->gray_pixels;
......
......@@ -543,7 +543,8 @@ file_save_callback (GtkWidget *w,
file_save_as_callback (w, client_data);
}
else
file_save (gdisplay->gimage->ID, gimage_filename (gdisplay->gimage), gimage_filename(gdisplay->gimage));
file_save (gdisplay->gimage->ID, gimage_filename (gdisplay->gimage),
prune_filename (gimage_filename(gdisplay->gimage)));
}
}
......@@ -788,7 +789,7 @@ file_save (int image_ID,
gimage_clean_all (gimage);
/* set the image title */
gimage_set_filename (gimage, prune_filename (filename));
gimage_set_filename (gimage, filename);
}
g_free (return_vals);
......
......@@ -227,7 +227,7 @@ find_contiguous_region_helper (PixelRegion *mask, PixelRegion *src,
antialias, threshold, x, &start, &end))
return;
for (i = start; i < end; i++)
for (i = start + 1; i < end; i++)
{
find_contiguous_region_helper (mask, src, has_alpha, antialias, threshold, i, y - 1, col);
find_contiguous_region_helper (mask, src, has_alpha, antialias, threshold, i, y + 1, col);
......
......@@ -1511,6 +1511,7 @@ text_render (GImage *gimage,
unsigned char color[MAX_CHANNELS];
char *str;
int nstrs;
int crop;
int line_width, line_height;
int pixmap_width, pixmap_height;
int text_width, text_height;
......@@ -1530,6 +1531,10 @@ text_render (GImage *gimage,
else
antialias = 1;
/* Dont crop the text if border is negative */
crop = (border >= 0);
if (!crop) border = 0;
/* load the font in */
font = gdk_font_load (fontname);
if (!font)
......@@ -1627,7 +1632,7 @@ text_render (GImage *gimage,
}
/* Crop the mask buffer */
newmask = crop_buffer (mask, border);
newmask = crop ? crop_buffer (mask, border) : mask;
if (newmask != mask)
tile_manager_destroy (mask);
......@@ -2000,7 +2005,7 @@ text_tool_invoker (Argument *args)
if (success)
{
int_value = args[5].value.pdb_int;
if (int_value >= 0)
if (int_value >= -1)
border = int_value;
else
success = FALSE;
......
......@@ -227,7 +227,7 @@ find_contiguous_region_helper (PixelRegion *mask, PixelRegion *src,
antialias, threshold, x, &start, &end))
return;
for (i = start; i < end; i++)
for (i = start + 1; i < end; i++)
{
find_contiguous_region_helper (mask, src, has_alpha, antialias, threshold, i, y - 1, col);
find_contiguous_region_helper (mask, src, has_alpha, antialias, threshold, i, y + 1, col);
......
......@@ -227,7 +227,7 @@ find_contiguous_region_helper (PixelRegion *mask, PixelRegion *src,
antialias, threshold, x, &start, &end))
return;
for (i = start; i < end; i++)
for (i = start + 1; i < end; i++)
{
find_contiguous_region_helper (mask, src, has_alpha, antialias, threshold, i, y - 1, col);
find_contiguous_region_helper (mask, src, has_alpha, antialias, threshold, i, y + 1, col);
......
......@@ -227,7 +227,7 @@ find_contiguous_region_helper (PixelRegion *mask, PixelRegion *src,
antialias, threshold, x, &start, &end))
return;
for (i = start; i < end; i++)
for (i = start + 1; i < end; i++)
{
find_contiguous_region_helper (mask, src, has_alpha, antialias, threshold, i, y - 1, col);
find_contiguous_region_helper (mask, src, has_alpha, antialias, threshold, i, y + 1, col);
......
......@@ -1511,6 +1511,7 @@ text_render (GImage *gimage,
unsigned char color[MAX_CHANNELS];
char *str;
int nstrs;
int crop;
int line_width, line_height;
int pixmap_width, pixmap_height;
int text_width, text_height;
......@@ -1530,6 +1531,10 @@ text_render (GImage *gimage,
else
antialias = 1;
/* Dont crop the text if border is negative */
crop = (border >= 0);
if (!crop) border = 0;
/* load the font in */
font = gdk_font_load (fontname);
if (!font)
......@@ -1627,7 +1632,7 @@ text_render (GImage *gimage,
}
/* Crop the mask buffer */
newmask = crop_buffer (mask, border);
newmask = crop ? crop_buffer (mask, border) : mask;
if (newmask != mask)
tile_manager_destroy (mask);
......@@ -2000,7 +2005,7 @@ text_tool_invoker (Argument *args)
if (success)
{
int_value = args[5].value.pdb_int;
if (int_value >= 0)
if (int_value >= -1)
border = int_value;
else
success = FALSE;
......
......@@ -1511,6 +1511,7 @@ text_render (GImage *gimage,
unsigned char color[MAX_CHANNELS];
char *str;
int nstrs;
int crop;
int line_width, line_height;
int pixmap_width, pixmap_height;
int text_width, text_height;
......@@ -1530,6 +1531,10 @@ text_render (GImage *gimage,
else
antialias = 1;
/* Dont crop the text if border is negative */
crop = (border >= 0);
if (!crop) border = 0;
/* load the font in */
font = gdk_font_load (fontname);
if (!font)
......@@ -1627,7 +1632,7 @@ text_render (GImage *gimage,
}
/* Crop the mask buffer */
newmask = crop_buffer (mask, border);
newmask = crop ? crop_buffer (mask, border) : mask;
if (newmask != mask)
tile_manager_destroy (mask);
......@@ -2000,7 +2005,7 @@ text_tool_invoker (Argument *args)
if (success)
{
int_value = args[5].value.pdb_int;
if (int_value >= 0)
if (int_value >= -1)
border = int_value;
else
success = FALSE;
......
......@@ -7,10 +7,10 @@ GIMP_MAJOR_VERSION_NUMBER=0
dnl $Format: "GIMP_MINOR_VERSION_NUMBER=$ReleaseMinorVersion$" $
GIMP_MINOR_VERSION_NUMBER=99
dnl $Format: "GIMP_MICRO_VERSION_NUMBER=$ReleaseMicroVersion$" $
GIMP_MICRO_VERSION_NUMBER=16
GIMP_MICRO_VERSION_NUMBER=17
dnl $Format: "AM_INIT_AUTOMAKE(gimp, $ReleaseVersion$)" $
AM_INIT_AUTOMAKE(gimp, 0.99.16)
AM_INIT_AUTOMAKE(gimp, 0.99.17)
dnl Specify a header configuration file
AM_CONFIG_HEADER(config.h)
......@@ -68,10 +68,10 @@ AC_DEFUN(AC_GIMP_CHECK,
LDFLAGS="$saved_ldflags $X_LDFLAGS $X_LIBS"
dnl Dont cache this as it depends on CFLAGS, LDFLAGS, etc
AC_MSG_CHECKING([for glib and gtk])
AC_MSG_CHECKING([for glib and gtk >= 0.99.1])
AC_TRY_COMPILE(
[#include <gtk/gtk.h>],
[gtk_button_new ();],
[gtk_pixmap_unref ();],
gtk_found=yes,
gtk_found=no)
AC_MSG_RESULT($gtk_found)
......@@ -344,7 +344,7 @@ plug-ins/gag-0.3/Makefile
plug-ins/Anamorphose/Makefile
plug-ins/CentralReflection/Makefile
plug-ins/Curtain/Makefile
plug-ins/Encript_Decript/Makefile
plug-ins/Encrypt_Decrypt/Makefile
plug-ins/Julia/Makefile
plug-ins/Mandelbrot/Makefile
plug-ins/MapObject/Makefile
......@@ -353,11 +353,8 @@ plug-ins/libgck/Makefile
plug-ins/libgck/gck/Makefile
plug-ins/blur/Makefile
plug-ins/gfig/Makefile
plug-ins/gfig/gfig-examples/Makefile
plug-ins/flame/Makefile
plug-ins/gimptcl/Makefile
plug-ins/gimptcl/frags/Makefile
plug-ins/gimptcl/misc/Makefile
plug-ins/gimptcl/scripts/Makefile
plug-ins/fuse/Makefile
plug-ins/mathmap/Makefile
......@@ -366,7 +363,6 @@ plug-ins/refract/Makefile
plug-ins/struc/Makefile
plug-ins/twist/Makefile
plug-ins/user_filter/Makefile
plug-ins/user_filter/doc/Makefile
plug-ins/warp/Makefile
plug-ins/zealouscrop/Makefile
plug-ins/xwd/Makefile
......@@ -421,6 +417,10 @@ plug-ins/colorify/Makefile
plug-ins/papertile/Makefile
plug-ins/illusion/Makefile
plug-ins/fractaltrace/Makefile
plug-ins/DigitalSignature/Makefile
plug-ins/FractalExplorer/Makefile
plug-ins/stegano/Makefile
plug-ins/fs/Makefile
app/Makefile
docs/Makefile
)
Wilber.xcf.gz.README
-----------------------------------------------------------------------------
This is Wilber, the Gimp Mascot.
Gimp is a image manipulation program for unix computers, see
http://www.gimp.org for more detais.
The use of Wilber.xcf.gz is free, though it would be kind of you to mention
the original author (Tuomas Kuosmanen <tigert@gimp.org>) somewhere.
Enjoy.
Tuomas / tigert
This diff is collapsed.
......@@ -43,6 +43,7 @@ gimp_layer_copy (gint32 layer_ID)
return_vals = gimp_run_procedure ("gimp_layer_copy",
&nreturn_vals,
PARAM_LAYER, layer_ID,
PARAM_INT32, 0,
PARAM_END);
layer_ID = -1;
......
......@@ -43,6 +43,7 @@ gimp_layer_copy (gint32 layer_ID)
return_vals = gimp_run_procedure ("gimp_layer_copy",
&nreturn_vals,
PARAM_LAYER, layer_ID,
PARAM_INT32, 0,
PARAM_END);
layer_ID = -1;
......
......@@ -1156,8 +1156,8 @@ alienmap_logo_dialog()
GtkWidget *xvbox;
GtkWidget *xhbox;
char *text;
gchar *temp,*temp2;
char *datapointer;
guchar *temp,*temp2;
guchar *datapointer;
gint y,x;
xdlg = logodlg = gtk_dialog_new();
gtk_window_set_title(GTK_WINDOW(xdlg), "About");
......@@ -1199,7 +1199,7 @@ alienmap_logo_dialog()
xpreview = gtk_preview_new (GTK_PREVIEW_COLOR);
gtk_preview_size (GTK_PREVIEW (xpreview), logo_width, logo_height);
temp = g_malloc((logo_width+10)*3);
datapointer=header_data;
datapointer=header_data+logo_width*logo_height-1;
for (y = 0; y < logo_height; y++){
temp2=temp;
for (x = 0; x< logo_width; x++) {
......
......@@ -16,25 +16,44 @@
-------------------------------------------
INSTALLATION
-------------------------------------------
To install it, you have to edit the
Makefile (change install-path).
Afterwards run make. This will compile
and install the plug-in in the right
directory. Once the new code is installed,
you can run the GIMP and enjoy the new
functions and effects it provides.
To install it, you have to edit the Make-
file (change install-path). Afterwards run
'make'. This will compile and install the
plug-in in the right directory. Once the
new code is installed, you can run the GIMP
and enjoy the new functions and effects it
provides.
-------------------------------------------
-------------------------------------------
COLOR-CYCLING SCRIPT
-------------------------------------------
This version of the alienmap plug-in inclu-
des a script for color cycling animations.
It is recommended to start the alienmap
plug-in, to fiddle about with the parame-
ters until you have found optimal start va-
lues. Then put these values in the appro-
priate edit fields in the animation dialog.
Now you can change the values in the alien-
map plug-in to find interesting end values.
After you have inserted these new values in
the corresponding fields of the animation
script, you can start the calculation of
the animation. The script will create a new
picture with a layer for each animation
frame. With each new frame the start values
will gradually turn into the specified end
values, creating an amazing effect of color
cycling.
-------------------------------------------
-------------------------------------------
REDUCE CODE SIZE
-------------------------------------------
With this new release 1.01 the size of
the logo in the about box has been reduced
in order to make smaller binaries. In
general the compiled plug-in will be
about 25-30% of the size of version 1.00.
If you find that the plug-in is still
If you find that the plug-in binary is
too big, you can compress the executables
with the gzexe program (if it is avaiable
on your system). To do so, change to the
......@@ -53,7 +72,7 @@
rm PLUGIN_NAME~
This will result in a code size of about
35 to 40 kB, which isn't too much IMHO.
20 kB, which isn't too much IMHO.
------------------------------------------
......@@ -61,9 +80,9 @@
FEEDBACK
------------------------------------------
I'm interested in any feedback, comments,
bug-reports, suggestions etc. If you
have anything you would like to tell
me, you can write to cotting@mygale.org.
bug-reports, suggestions etc. If you have
anything you would like to tell me, you
can write to cotting@mygale.org.
Also have a look at the GIMP-section of
my homepage at www.mygale.org/~cotting.
------------------------------------------
......
......@@ -16,25 +16,44 @@
-------------------------------------------
INSTALLATION
-------------------------------------------
To install it, you have to edit the
Makefile (change install-path).
Afterwards run make. This will compile
and install the plug-in in the right
directory. Once the new code is installed,
you can run the GIMP and enjoy the new
functions and effects it provides.
To install it, you have to edit the Make-
file (change install-path). Afterwards run
'make'. This will compile and install the
plug-in in the right directory. Once the
new code is installed, you can run the GIMP
and enjoy the new functions and effects it
provides.
-------------------------------------------
-------------------------------------------
COLOR-CYCLING SCRIPT
-------------------------------------------
This version of the alienmap plug-in inclu-
des a script for color cycling animations.
It is recommended to start the alienmap
plug-in, to fiddle about with the parame-
ters until you have found optimal start va-
lues. Then put these values in the appro-
priate edit fields in the animation dialog.
Now you can change the values in the alien-
map plug-in to find interesting end values.
After you have inserted these new values in
the corresponding fields of the animation
script, you can start the calculation of
the animation. The script will create a new
picture with a layer for each animation
frame. With each new frame the start values
will gradually turn into the specified end
values, creating an amazing effect of color
cycling.
-------------------------------------------
-------------------------------------------
REDUCE CODE SIZE
-------------------------------------------
With this new release 1.01 the size of
the logo in the about box has been reduced
in order to make smaller binaries. In
general the compiled plug-in will be
about 25-30% of the size of version 1.00.
If you find that the plug-in is still
If you find that the plug-in binary is
too big, you can compress the executables
with the gzexe program (if it is avaiable
on your system). To do so, change to the
......@@ -53,7 +72,7 @@
rm PLUGIN_NAME~
This will result in a code size of about
35 to 40 kB, which isn't too much IMHO.
20 kB, which isn't too much IMHO.
------------------------------------------
......@@ -61,9 +80,9 @@
FEEDBACK
------------------------------------------
I'm interested in any feedback, comments,
bug-reports, suggestions etc. If you
have anything you would like to tell
me, you can write to cotting@mygale.org.
bug-reports, suggestions etc. If you have
anything you would like to tell me, you
can write to cotting@mygale.org.
Also have a look at the GIMP-section of
my homepage at www.mygale.org/~cotting.
------------------------------------------
......
This diff is collapsed.
This diff is collapsed.
/**********************************************************************
* Conical Anamorphose Distortion Plug-In (Version 1.02)
* Conical Anamorphose Distortion Plug-In (Version 1.03)
* Daniel Cotting (cotting@mygale.org)
**********************************************************************
* Official homepages: http://www.mygale.org/~cotting
* http://cotting.citeweb.net
* http://village.cyberbrain.com/cotting
**********************************************************************
*/
......@@ -641,8 +642,8 @@ anamorphose_logo_dialog()
GtkWidget *xvbox;
GtkWidget *xhbox;
char *text;
gchar *temp,*temp2;
char *datapointer;
guchar *temp,*temp2;
guchar *datapointer;
gint y,x;
xdlg = logodlg = gtk_dialog_new();
gtk_window_set_title(GTK_WINDOW(xdlg), "About");
......@@ -684,7 +685,7 @@ anamorphose_logo_dialog()
xpreview = gtk_preview_new (GTK_PREVIEW_COLOR);
gtk_preview_size (GTK_PREVIEW (xpreview), logo_width, logo_height);
temp = g_malloc((logo_width+10)*3);
datapointer=header_data;
datapointer=header_data+logo_width*logo_height-1;
for (y = 0; y < logo_height; y++){
temp2=temp;
for (x = 0; x< logo_width; x++) {
......@@ -708,7 +709,7 @@ anamorphose_logo_dialog()
"cotting@mygale.org\n"
"http://www.mygale.org/~cotting\n\n"
"Conical Anamorphose\nPlug-In for the GIMP\n"
"Version 1.02\n";
"Version 1.03\n";
xlabel = gtk_label_new(text);
gtk_box_pack_start(GTK_BOX(xhbox), xlabel, TRUE, FALSE, 0);
gtk_widget_show(xlabel);
......
......@@ -29,11 +29,9 @@
-------------------------------------------
REDUCE CODE SIZE
-------------------------------------------
With this new release 1.01 the size of
With this new release 1.03 the size of
the logo in the about box has been reduced
in order to make smaller binaries. In
general the compiled plug-in will be
about 25-30% of the size of version 1.00.
in order to make smaller binaries.
If you find that the plug-in is still
too big, you can compress the executables
with the gzexe program (if it is avaiable
......@@ -53,7 +51,7 @@
rm PLUGIN_NAME~
This will result in a code size of about
35 to 40 kB, which isn't too much IMHO.
20 kB, which isn't too much IMHO.
------------------------------------------
......
......@@ -29,11 +29,9 @@
-------------------------------------------
REDUCE CODE SIZE
-------------------------------------------
With this new release 1.01 the size of
With this new release 1.03 the size of
the logo in the about box has been reduced
in order to make smaller binaries. In
general the compiled plug-in will be
about 25-30% of the size of version 1.00.
in order to make smaller binaries.
If you find that the plug-in is still
too big, you can compress the executables
with the gzexe program (if it is avaiable
......@@ -53,7 +51,7 @@
rm PLUGIN_NAME~
This will result in a code size of about
35 to 40 kB, which isn't too much IMHO.
20 kB, which isn't too much IMHO.
------------------------------------------
......
This diff is collapsed.
/**********************************************************************
* CentralReflection Distortion Plug-In (Version 1.02)
* CentralReflection Distortion Plug-In (Version 1.04)
* Daniel Cotting (cotting@mygale.org)
**********************************************************************
* Official homepages: http://www.mygale.org/~cotting
* http://cotting.citeweb.net
* http://village.cyberbrain.com/cotting
**********************************************************************
*/
......@@ -237,7 +238,7 @@ drawCentralReflection(GDrawable *drawable)
dx = (gfloat)col - a;
for(row = 0; row < regionheight; row++) {
pixelpos = (col+row*regionwidth)*bytes;
dy = -((gfloat)row - b);
dy = -((gfloat)row - b);
abstand=(sqrt(dx*dx+dy*dy));
succeeded=1;
verhaltniss=radius/abstand;
......@@ -587,8 +588,8 @@ CentralReflection_logo_dialog()
GtkWidget *xvbox;
GtkWidget *xhbox;
char *text;
gchar *temp,*temp2;
char *datapointer;
guchar *temp,*temp2;
guchar *datapointer;
gint y,x;
xdlg = logodlg = gtk_dialog_new();
gtk_window_set_title(GTK_WINDOW(xdlg), "About");
......@@ -630,7 +631,7 @@ CentralReflection_logo_dialog()
xpreview = gtk_preview_new (GTK_PREVIEW_COLOR);
gtk_preview_size (GTK_PREVIEW (xpreview), logo_width, logo_height);
temp = g_malloc((logo_width+10)*3);
datapointer=header_data;
datapointer=header_data+logo_width*logo_height-1;
for (y = 0; y < logo_height; y++){
temp2=temp;
for (x = 0; x< logo_width; x++) {
......@@ -654,7 +655,7 @@ CentralReflection_logo_dialog()