gimp/libgimp/gimpdrawable_pdb.c

431 lines
9.9 KiB
C
Raw Normal View History

Sven Neumann <sven@gimp.org> 2000-05-31 Michael Natterer <mitch@gimp.org> Sven Neumann <sven@gimp.org> * libgimp/Makefile.am * libgimp/gimpchannel_pdb.h * libgimp/gimpdisplay_pdb.h * libgimp/gimpdrawable_pdb.h * libgimp/gimpgradient_pdb.h * libgimp/gimphelp_pdb.h * libgimp/gimpimage_pdb.h * libgimp/gimplayer_pdb.h * libgimp/gimpparasite_pdb.h * libgimp/gimpselection_pdb.h * libgimp/gimpunit_pdb.h * libgimp/gimpdrawable.[ch] * libgimp/gimphelp.c * libgimp/gimppixelrgn.h * libgimp/gimptile.h: new files * libgimp/gimp.[ch] * libgimp/gimpchannel_pdb.c * libgimp/gimpdrawable_pdb.c * libgimp/gimpgradient_pdb.c * libgimp/gimppalette_pdb.c * libgimp/gimpselection_pdb.c * libgimp/gimphelp_pdb.c * libgimp/gimpimage_pdb.c * libgimp/gimplayer_pdb.c * libgimp/gimpgradientmenu.c * libgimp/gimpbrushmenu.c * libgimp/gimpmenu.[ch] * libgimp/gimppatternmenu.c * libgimp/gimppixelrgn.c * libgimp/gimptile.c: part III of the (final) libgimp cleanup Split gimp.h into a bunch of headers. More or less finished the task of moving PDB wrappers into separate files in preparation of the upcoming autogen-it-all-attack. * libgimp/gimpcompat.h: declared the following functions obsolete: gimp_[channel|layer]_[width|height] gimp_layer_[bpp|type] gimp_channel_get_[image|layer]_ID * libgimp/gimptypes.h: new file: GPlugInInfo GTile GDrawable GPixelRgn GParamColor GParamRegion GParamData GParamDef GParam: s/G/Gimp/ * app/gimphelp_cmds.c * app/plug_in_cmds.c * tools/pdbgen/pdb/gimphelp.pdb * tools/pdbgen/pdb/plug_in.pdb: changed help texts.
2000-05-31 06:15:06 +00:00
/* LIBGIMP - The GIMP Library
* Copyright (C) 1995-2000 Peter Mattis and Spencer Kimball
Sven Neumann <sven@gimp.org> 2000-05-31 Michael Natterer <mitch@gimp.org> Sven Neumann <sven@gimp.org> * libgimp/Makefile.am * libgimp/gimpchannel_pdb.h * libgimp/gimpdisplay_pdb.h * libgimp/gimpdrawable_pdb.h * libgimp/gimpgradient_pdb.h * libgimp/gimphelp_pdb.h * libgimp/gimpimage_pdb.h * libgimp/gimplayer_pdb.h * libgimp/gimpparasite_pdb.h * libgimp/gimpselection_pdb.h * libgimp/gimpunit_pdb.h * libgimp/gimpdrawable.[ch] * libgimp/gimphelp.c * libgimp/gimppixelrgn.h * libgimp/gimptile.h: new files * libgimp/gimp.[ch] * libgimp/gimpchannel_pdb.c * libgimp/gimpdrawable_pdb.c * libgimp/gimpgradient_pdb.c * libgimp/gimppalette_pdb.c * libgimp/gimpselection_pdb.c * libgimp/gimphelp_pdb.c * libgimp/gimpimage_pdb.c * libgimp/gimplayer_pdb.c * libgimp/gimpgradientmenu.c * libgimp/gimpbrushmenu.c * libgimp/gimpmenu.[ch] * libgimp/gimppatternmenu.c * libgimp/gimppixelrgn.c * libgimp/gimptile.c: part III of the (final) libgimp cleanup Split gimp.h into a bunch of headers. More or less finished the task of moving PDB wrappers into separate files in preparation of the upcoming autogen-it-all-attack. * libgimp/gimpcompat.h: declared the following functions obsolete: gimp_[channel|layer]_[width|height] gimp_layer_[bpp|type] gimp_channel_get_[image|layer]_ID * libgimp/gimptypes.h: new file: GPlugInInfo GTile GDrawable GPixelRgn GParamColor GParamRegion GParamData GParamDef GParam: s/G/Gimp/ * app/gimphelp_cmds.c * app/plug_in_cmds.c * tools/pdbgen/pdb/gimphelp.pdb * tools/pdbgen/pdb/plug_in.pdb: changed help texts.
2000-05-31 06:15:06 +00:00
*
* gimpdrawable_pdb.c
1998-01-25 10:26:47 +00:00
*
* This library is free software; you can redistribute it and/or
1999-11-17 21:13:50 +00:00
* modify it under the terms of the GNU Lesser General Public
1998-01-25 10:26:47 +00:00
* License as published by the Free Software Foundation; either
Sven Neumann <sven@gimp.org> 2000-05-31 Michael Natterer <mitch@gimp.org> Sven Neumann <sven@gimp.org> * libgimp/Makefile.am * libgimp/gimpchannel_pdb.h * libgimp/gimpdisplay_pdb.h * libgimp/gimpdrawable_pdb.h * libgimp/gimpgradient_pdb.h * libgimp/gimphelp_pdb.h * libgimp/gimpimage_pdb.h * libgimp/gimplayer_pdb.h * libgimp/gimpparasite_pdb.h * libgimp/gimpselection_pdb.h * libgimp/gimpunit_pdb.h * libgimp/gimpdrawable.[ch] * libgimp/gimphelp.c * libgimp/gimppixelrgn.h * libgimp/gimptile.h: new files * libgimp/gimp.[ch] * libgimp/gimpchannel_pdb.c * libgimp/gimpdrawable_pdb.c * libgimp/gimpgradient_pdb.c * libgimp/gimppalette_pdb.c * libgimp/gimpselection_pdb.c * libgimp/gimphelp_pdb.c * libgimp/gimpimage_pdb.c * libgimp/gimplayer_pdb.c * libgimp/gimpgradientmenu.c * libgimp/gimpbrushmenu.c * libgimp/gimpmenu.[ch] * libgimp/gimppatternmenu.c * libgimp/gimppixelrgn.c * libgimp/gimptile.c: part III of the (final) libgimp cleanup Split gimp.h into a bunch of headers. More or less finished the task of moving PDB wrappers into separate files in preparation of the upcoming autogen-it-all-attack. * libgimp/gimpcompat.h: declared the following functions obsolete: gimp_[channel|layer]_[width|height] gimp_layer_[bpp|type] gimp_channel_get_[image|layer]_ID * libgimp/gimptypes.h: new file: GPlugInInfo GTile GDrawable GPixelRgn GParamColor GParamRegion GParamData GParamDef GParam: s/G/Gimp/ * app/gimphelp_cmds.c * app/plug_in_cmds.c * tools/pdbgen/pdb/gimphelp.pdb * tools/pdbgen/pdb/plug_in.pdb: changed help texts.
2000-05-31 06:15:06 +00:00
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
1998-01-25 10:26:47 +00:00
*
1999-11-17 21:13:50 +00:00
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
Sven Neumann <sven@gimp.org> 2000-05-31 Michael Natterer <mitch@gimp.org> Sven Neumann <sven@gimp.org> * libgimp/Makefile.am * libgimp/gimpchannel_pdb.h * libgimp/gimpdisplay_pdb.h * libgimp/gimpdrawable_pdb.h * libgimp/gimpgradient_pdb.h * libgimp/gimphelp_pdb.h * libgimp/gimpimage_pdb.h * libgimp/gimplayer_pdb.h * libgimp/gimpparasite_pdb.h * libgimp/gimpselection_pdb.h * libgimp/gimpunit_pdb.h * libgimp/gimpdrawable.[ch] * libgimp/gimphelp.c * libgimp/gimppixelrgn.h * libgimp/gimptile.h: new files * libgimp/gimp.[ch] * libgimp/gimpchannel_pdb.c * libgimp/gimpdrawable_pdb.c * libgimp/gimpgradient_pdb.c * libgimp/gimppalette_pdb.c * libgimp/gimpselection_pdb.c * libgimp/gimphelp_pdb.c * libgimp/gimpimage_pdb.c * libgimp/gimplayer_pdb.c * libgimp/gimpgradientmenu.c * libgimp/gimpbrushmenu.c * libgimp/gimpmenu.[ch] * libgimp/gimppatternmenu.c * libgimp/gimppixelrgn.c * libgimp/gimptile.c: part III of the (final) libgimp cleanup Split gimp.h into a bunch of headers. More or less finished the task of moving PDB wrappers into separate files in preparation of the upcoming autogen-it-all-attack. * libgimp/gimpcompat.h: declared the following functions obsolete: gimp_[channel|layer]_[width|height] gimp_layer_[bpp|type] gimp_channel_get_[image|layer]_ID * libgimp/gimptypes.h: new file: GPlugInInfo GTile GDrawable GPixelRgn GParamColor GParamRegion GParamData GParamDef GParam: s/G/Gimp/ * app/gimphelp_cmds.c * app/plug_in_cmds.c * tools/pdbgen/pdb/gimphelp.pdb * tools/pdbgen/pdb/plug_in.pdb: changed help texts.
2000-05-31 06:15:06 +00:00
*/
/* NOTE: This file is autogenerated by pdbgen.pl */
1997-11-24 22:05:25 +00:00
#include "gimp.h"
void
gimp_drawable_merge_shadow (gint32 drawable_ID,
gboolean undo)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_merge_shadow",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_INT32, undo,
1997-11-24 22:05:25 +00:00
PARAM_END);
gimp_destroy_params (return_vals, nreturn_vals);
}
void
gimp_drawable_fill (gint32 drawable_ID,
GimpFillType fill_type)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_fill",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_INT32, fill_type,
1997-11-24 22:05:25 +00:00
PARAM_END);
gimp_destroy_params (return_vals, nreturn_vals);
}
void
gimp_drawable_update (gint32 drawable_ID,
gint x,
gint y,
gint width,
gint height)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_update",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_INT32, x,
PARAM_INT32, y,
PARAM_INT32, width,
PARAM_INT32, height,
1997-11-24 22:05:25 +00:00
PARAM_END);
gimp_destroy_params (return_vals, nreturn_vals);
}
gboolean
gimp_drawable_mask_bounds (gint32 drawable_ID,
gint *x1,
gint *y1,
gint *x2,
gint *y2)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gboolean non_empty = FALSE;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_mask_bounds",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
*x1 = *y1 = *x2 = *y2 = 0;
if (return_vals[0].data.d_status == STATUS_SUCCESS)
{
non_empty = return_vals[1].data.d_int32;
*x1 = return_vals[2].data.d_int32;
*y1 = return_vals[3].data.d_int32;
*x2 = return_vals[4].data.d_int32;
*y2 = return_vals[5].data.d_int32;
}
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return non_empty;
1997-11-24 22:05:25 +00:00
}
gint32
gimp_drawable_image (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gint32 image_ID = -1;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_image",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
image_ID = return_vals[1].data.d_image;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return image_ID;
1997-11-24 22:05:25 +00:00
}
GimpImageType
gimp_drawable_type (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
GimpImageType type = 0;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_type",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
type = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return type;
1997-11-24 22:05:25 +00:00
}
gboolean
gimp_drawable_has_alpha (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gboolean has_alpha = TRUE;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_has_alpha",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
has_alpha = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return has_alpha;
1997-11-24 22:05:25 +00:00
}
GimpImageType
gimp_drawable_type_with_alpha (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
GimpImageType type_with_alpha = 0;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_type_with_alpha",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
type_with_alpha = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return type_with_alpha;
1997-11-24 22:05:25 +00:00
}
gboolean
1999-10-24 20:49:09 +00:00
gimp_drawable_is_rgb (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gboolean color = FALSE;
1997-11-24 22:05:25 +00:00
1999-10-24 20:49:09 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_is_rgb",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
color = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return color;
1997-11-24 22:05:25 +00:00
}
gboolean
1999-10-17 00:07:55 +00:00
gimp_drawable_is_gray (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gboolean gray = FALSE;
1997-11-24 22:05:25 +00:00
1999-10-17 00:07:55 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_is_gray",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
gray = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return gray;
1997-11-24 22:05:25 +00:00
}
gboolean
gimp_drawable_is_indexed (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gboolean indexed = FALSE;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_is_indexed",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
indexed = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return indexed;
1997-11-24 22:05:25 +00:00
}
gint
gimp_drawable_bytes (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gint bytes = 0;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_bytes",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
bytes = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return bytes;
1997-11-24 22:05:25 +00:00
}
gint
gimp_drawable_width (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gint width = 0;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_width",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
width = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return width;
1997-11-24 22:05:25 +00:00
}
gint
gimp_drawable_height (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gint height = 0;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_height",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
height = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return height;
1997-11-24 22:05:25 +00:00
}
void
gimp_drawable_offsets (gint32 drawable_ID,
gint *offset_x,
gint *offset_y)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_offsets",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
*offset_x = *offset_y = 0;
1997-11-24 22:05:25 +00:00
if (return_vals[0].data.d_status == STATUS_SUCCESS)
{
*offset_x = return_vals[1].data.d_int32;
*offset_y = return_vals[2].data.d_int32;
1997-11-24 22:05:25 +00:00
}
gimp_destroy_params (return_vals, nreturn_vals);
}
gboolean
gimp_drawable_is_layer (gint32 drawable_ID)
{
GParam *return_vals;
gint nreturn_vals;
gboolean layer = FALSE;
return_vals = gimp_run_procedure ("gimp_drawable_is_layer",
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
layer = return_vals[1].data.d_int32;
gimp_destroy_params (return_vals, nreturn_vals);
1997-11-24 22:05:25 +00:00
return layer;
1997-11-24 22:05:25 +00:00
}
gboolean
gimp_drawable_is_layer_mask (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gboolean layer_mask = FALSE;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_is_layer_mask",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
layer_mask = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return layer_mask;
1997-11-24 22:05:25 +00:00
}
gboolean
gimp_drawable_is_channel (gint32 drawable_ID)
1997-11-24 22:05:25 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gboolean channel = FALSE;
1997-11-24 22:05:25 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_is_channel",
1997-11-24 22:05:25 +00:00
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_END);
if (return_vals[0].data.d_status == STATUS_SUCCESS)
channel = return_vals[1].data.d_int32;
1997-11-24 22:05:25 +00:00
gimp_destroy_params (return_vals, nreturn_vals);
return channel;
1997-11-24 22:05:25 +00:00
}
void
_gimp_drawable_thumbnail (gint32 drawable_ID,
gint width,
gint height,
gint *ret_width,
gint *ret_height,
gint *bpp,
gint *thumbnail_data_count,
guint8 **thumbnail_data)
gimp/app/gimppreviewcache.c gimp/app/gimppreviewcache.h Wed Jun 23 23:52:54 BST 1999 Andy Thomas <alt@gimp.org> * gimp/app/gimppreviewcache.c * gimp/app/gimppreviewcache.h * gimp/app/drawable_cmds.c * gimp/app/gdisplay.c * gimp/app/gimpdrawableP.h * gimp/app/gimage_cmds.c * gimp/app/Makefile.am * gimp/app/layers_dialog.c * gimp/app/channel.c * gimp/app/lc_dialog.c * gimp/app/lc_dialog.h * gimp/app/lc_dialogP.h * gimp/app/layer.c * gimp/app/gimpdrawable.c * gimp/app/internal_procs.c * gimp/libgimp/gimp.h * gimp/libgimp/gimpimage.c * gimp/libgimp/gimpdrawable.c * gimp/libgimp/gimpmenu.c * gimp/tools/pdbgen/pdb/drawable.pdb * gimp/tools/pdbgen/pdb/gimage.pdb Added thumbnail image preview functions. Previews are visible on the L&C&P dialogs as well as in the drawables/channels/ menus generated for plugins (see the bumpmap & Mapobject plugins). PDB interface exists to simply extract a thumbnail preview of a given size. This is much quicker & more efficient than getting the image data tile-by-tile if you only need a small image since a "preview cache" has been implemented. This cache also reduces the number of times the tiles cached is scanned since smaller previews are always generated from large ones if they exists and are valid. Some possible usages (I don't intend to implement these ideas. Just suggestions). More plugins using the thumbnail preview (ie any that use multiple images). Indication of "active image" somewhere..... Actually almost anywhere a drawable/image name appears.
1999-06-23 23:01:14 +00:00
{
GParam *return_vals;
gint nreturn_vals;
gimp/app/gimppreviewcache.c gimp/app/gimppreviewcache.h Wed Jun 23 23:52:54 BST 1999 Andy Thomas <alt@gimp.org> * gimp/app/gimppreviewcache.c * gimp/app/gimppreviewcache.h * gimp/app/drawable_cmds.c * gimp/app/gdisplay.c * gimp/app/gimpdrawableP.h * gimp/app/gimage_cmds.c * gimp/app/Makefile.am * gimp/app/layers_dialog.c * gimp/app/channel.c * gimp/app/lc_dialog.c * gimp/app/lc_dialog.h * gimp/app/lc_dialogP.h * gimp/app/layer.c * gimp/app/gimpdrawable.c * gimp/app/internal_procs.c * gimp/libgimp/gimp.h * gimp/libgimp/gimpimage.c * gimp/libgimp/gimpdrawable.c * gimp/libgimp/gimpmenu.c * gimp/tools/pdbgen/pdb/drawable.pdb * gimp/tools/pdbgen/pdb/gimage.pdb Added thumbnail image preview functions. Previews are visible on the L&C&P dialogs as well as in the drawables/channels/ menus generated for plugins (see the bumpmap & Mapobject plugins). PDB interface exists to simply extract a thumbnail preview of a given size. This is much quicker & more efficient than getting the image data tile-by-tile if you only need a small image since a "preview cache" has been implemented. This cache also reduces the number of times the tiles cached is scanned since smaller previews are always generated from large ones if they exists and are valid. Some possible usages (I don't intend to implement these ideas. Just suggestions). More plugins using the thumbnail preview (ie any that use multiple images). Indication of "active image" somewhere..... Actually almost anywhere a drawable/image name appears.
1999-06-23 23:01:14 +00:00
return_vals = gimp_run_procedure ("gimp_drawable_thumbnail",
&nreturn_vals,
PARAM_DRAWABLE, drawable_ID,
PARAM_INT32, width,
PARAM_INT32, height,
gimp/app/gimppreviewcache.c gimp/app/gimppreviewcache.h Wed Jun 23 23:52:54 BST 1999 Andy Thomas <alt@gimp.org> * gimp/app/gimppreviewcache.c * gimp/app/gimppreviewcache.h * gimp/app/drawable_cmds.c * gimp/app/gdisplay.c * gimp/app/gimpdrawableP.h * gimp/app/gimage_cmds.c * gimp/app/Makefile.am * gimp/app/layers_dialog.c * gimp/app/channel.c * gimp/app/lc_dialog.c * gimp/app/lc_dialog.h * gimp/app/lc_dialogP.h * gimp/app/layer.c * gimp/app/gimpdrawable.c * gimp/app/internal_procs.c * gimp/libgimp/gimp.h * gimp/libgimp/gimpimage.c * gimp/libgimp/gimpdrawable.c * gimp/libgimp/gimpmenu.c * gimp/tools/pdbgen/pdb/drawable.pdb * gimp/tools/pdbgen/pdb/gimage.pdb Added thumbnail image preview functions. Previews are visible on the L&C&P dialogs as well as in the drawables/channels/ menus generated for plugins (see the bumpmap & Mapobject plugins). PDB interface exists to simply extract a thumbnail preview of a given size. This is much quicker & more efficient than getting the image data tile-by-tile if you only need a small image since a "preview cache" has been implemented. This cache also reduces the number of times the tiles cached is scanned since smaller previews are always generated from large ones if they exists and are valid. Some possible usages (I don't intend to implement these ideas. Just suggestions). More plugins using the thumbnail preview (ie any that use multiple images). Indication of "active image" somewhere..... Actually almost anywhere a drawable/image name appears.
1999-06-23 23:01:14 +00:00
PARAM_END);
*ret_width = 0;
*ret_height = 0;
*thumbnail_data_count = 0;
*thumbnail_data = NULL;
gimp/app/gimppreviewcache.c gimp/app/gimppreviewcache.h Wed Jun 23 23:52:54 BST 1999 Andy Thomas <alt@gimp.org> * gimp/app/gimppreviewcache.c * gimp/app/gimppreviewcache.h * gimp/app/drawable_cmds.c * gimp/app/gdisplay.c * gimp/app/gimpdrawableP.h * gimp/app/gimage_cmds.c * gimp/app/Makefile.am * gimp/app/layers_dialog.c * gimp/app/channel.c * gimp/app/lc_dialog.c * gimp/app/lc_dialog.h * gimp/app/lc_dialogP.h * gimp/app/layer.c * gimp/app/gimpdrawable.c * gimp/app/internal_procs.c * gimp/libgimp/gimp.h * gimp/libgimp/gimpimage.c * gimp/libgimp/gimpdrawable.c * gimp/libgimp/gimpmenu.c * gimp/tools/pdbgen/pdb/drawable.pdb * gimp/tools/pdbgen/pdb/gimage.pdb Added thumbnail image preview functions. Previews are visible on the L&C&P dialogs as well as in the drawables/channels/ menus generated for plugins (see the bumpmap & Mapobject plugins). PDB interface exists to simply extract a thumbnail preview of a given size. This is much quicker & more efficient than getting the image data tile-by-tile if you only need a small image since a "preview cache" has been implemented. This cache also reduces the number of times the tiles cached is scanned since smaller previews are always generated from large ones if they exists and are valid. Some possible usages (I don't intend to implement these ideas. Just suggestions). More plugins using the thumbnail preview (ie any that use multiple images). Indication of "active image" somewhere..... Actually almost anywhere a drawable/image name appears.
1999-06-23 23:01:14 +00:00
if (return_vals[0].data.d_status == STATUS_SUCCESS)
{
*ret_width = return_vals[1].data.d_int32;
*ret_height = return_vals[2].data.d_int32;
*bpp = return_vals[3].data.d_int32;
*thumbnail_data_count = return_vals[4].data.d_int32;
*thumbnail_data = g_new (guint8, *thumbnail_data_count);
memcpy (*thumbnail_data, return_vals[5].data.d_int8array,
*thumbnail_data_count * sizeof (guint8));
gimp/app/gimppreviewcache.c gimp/app/gimppreviewcache.h Wed Jun 23 23:52:54 BST 1999 Andy Thomas <alt@gimp.org> * gimp/app/gimppreviewcache.c * gimp/app/gimppreviewcache.h * gimp/app/drawable_cmds.c * gimp/app/gdisplay.c * gimp/app/gimpdrawableP.h * gimp/app/gimage_cmds.c * gimp/app/Makefile.am * gimp/app/layers_dialog.c * gimp/app/channel.c * gimp/app/lc_dialog.c * gimp/app/lc_dialog.h * gimp/app/lc_dialogP.h * gimp/app/layer.c * gimp/app/gimpdrawable.c * gimp/app/internal_procs.c * gimp/libgimp/gimp.h * gimp/libgimp/gimpimage.c * gimp/libgimp/gimpdrawable.c * gimp/libgimp/gimpmenu.c * gimp/tools/pdbgen/pdb/drawable.pdb * gimp/tools/pdbgen/pdb/gimage.pdb Added thumbnail image preview functions. Previews are visible on the L&C&P dialogs as well as in the drawables/channels/ menus generated for plugins (see the bumpmap & Mapobject plugins). PDB interface exists to simply extract a thumbnail preview of a given size. This is much quicker & more efficient than getting the image data tile-by-tile if you only need a small image since a "preview cache" has been implemented. This cache also reduces the number of times the tiles cached is scanned since smaller previews are always generated from large ones if they exists and are valid. Some possible usages (I don't intend to implement these ideas. Just suggestions). More plugins using the thumbnail preview (ie any that use multiple images). Indication of "active image" somewhere..... Actually almost anywhere a drawable/image name appears.
1999-06-23 23:01:14 +00:00
}
gimp_destroy_params (return_vals, nreturn_vals);
}