mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-22 12:32:37 +00:00
707e597665
2003-05-26 Michael Natterer <mitch@gimp.org> * app/base/tile-manager-private.h: added "gint ref_count" to the TileManager struct. * app/base/tile-manager.[ch]: replaced tile_manager_destroy() by tile_manager_ref() and tile_manager_unref(). * app/core/gimpimage-undo-push.c: ref the tile managers stored in the undo system and DON'T destroy them if no undo could be pushed. Should fix the remaining crashes with undo disabled like in bug #9350. (!!!) Note that the tiles passed to gimp_image_undo_push_image() and gimp_drawable_push_undo() as well as the tile managers of drawables passed to gimp_image_undo_push_[layer|channel]_mod() must be unref'ed by the caller now. * app/core/gimpdrawable-transform.c (gimp_drawable_transform_paste): don't take ownership of the passed tiles but ref them if needed. (!!!) Callers must unref the passed tiles themselves now. * app/core/gimpbuffer.c * app/core/gimpdrawable-blend.c * app/core/gimpdrawable-bucket-fill.c * app/core/gimpdrawable-offset.c * app/core/gimpdrawable.c * app/core/gimpedit.c * app/core/gimpimage-convert.c * app/core/gimpimage-mask.c * app/core/gimpimage-projection.c * app/core/gimpimage.c * app/core/gimpimagemap.c * app/core/gimplayer-floating-sel.c * app/core/gimplayer.c * app/paint/gimppaintcore.c * app/text/gimptextlayer.c * app/tools/gimpinktool.c * app/tools/gimpiscissorstool.c * app/tools/gimptransformtool-undo.c * app/tools/gimptransformtool.c: changed accordingly.
61 lines
2.2 KiB
C
61 lines
2.2 KiB
C
/* The GIMP -- an image manipulation program
|
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program 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 General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef __TILE_MANAGER_PVT_H__
|
|
#define __TILE_MANAGER_PVT_H__
|
|
|
|
|
|
struct _TileManager
|
|
{
|
|
gint ref_count; /* reference counter */
|
|
|
|
gint x, y; /* tile manager offsets */
|
|
|
|
gint width; /* the width of the tiled area */
|
|
gint height; /* the height of the tiled area */
|
|
gint bpp; /* the bpp of each tile */
|
|
|
|
gint ntile_rows; /* the number of tiles in each row */
|
|
gint ntile_cols; /* the number of tiles in each columns */
|
|
|
|
Tile **tiles; /* the tiles for this level */
|
|
TileValidateProc validate_proc; /* this proc is called when an attempt
|
|
* to get an invalid tile is made.
|
|
*/
|
|
gint cached_num; /* number of cached tile */
|
|
Tile *cached_tile; /* the actual cached tile */
|
|
|
|
gpointer user_data; /* hook for hanging data off of */
|
|
};
|
|
|
|
typedef struct _PixelDataHandlePrivate PixelDataHandlePrivate;
|
|
|
|
struct _PixelDataHandlePrivate
|
|
{
|
|
PixelDataHandle public;
|
|
TileManager *tm;
|
|
gint x1, x2, y1, y2;
|
|
gboolean readable;
|
|
gboolean writeable;
|
|
gboolean local_buffer;
|
|
Tile *tile;
|
|
};
|
|
|
|
|
|
#endif /* __TILE_MANAGER_PVT_H__ */
|