Commit Graph

59 Commits

Author SHA1 Message Date
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Sven Neumann 26ecfe60b7 use the same code on all platforms. The optimization for bytes == 4 was
2006-09-21  Sven Neumann  <neumann@jpk.com>

	* app/base/tile-manager.c (read_pixel_data_1) (write_pixel_data_1):
	use the same code on all platforms. The optimization for bytes == 4
	was pointless anyway.
2006-09-21 09:45:07 +00:00
Michael Natterer a9c03ad6b6 fix build on big endian.
2006-09-21  Michael Natterer  <mitch@gimp.org>

	* app/base/tile-manager.c (read_pixel_data_1): fix build on
	big endian.
2006-09-21 01:16:09 +00:00
Sven Neumann d3904c6d85 fixed endian issues (bug #340965).
2006-09-20  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c (read_pixel_data_1) (write_pixel_data_1):
	fixed endian issues (bug #340965).
2006-09-20 10:38:42 +00:00
Sven Neumann 6d0e04ae6e app/base/pixel-region.[ch] app/base/tile-manager.[ch] removed code that
2006-09-07  Sven Neumann  <sven@gimp.org>

	* app/base/pixel-region.[ch]
	* app/base/tile-manager.[ch]
	* app/base/tile-swap.[ch]: removed code that tried to swap in
	tiles asynchronously (but ended up calling up nothing).
2006-09-07 09:58:17 +00:00
Sven Neumann 79931072c8 app/base/tile-cache.c app/base/tile-manager.c app/base/tile-private.h
2006-09-07  Sven Neumann  <sven@gimp.org>

	* app/base/tile-cache.c
	* app/base/tile-manager.c
	* app/base/tile-private.h
	* app/base/tile.c: removed tile locking macros that were only used
	for the threaded tile swapper.
2006-09-07 09:41:23 +00:00
Sven Neumann dbeb1bcbae more code cleanup 2006-07-06 12:27:32 +00:00
Sven Neumann 049872b361 app/*.[ch] converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* app/*.[ch]
	* app/*/*.[ch]: converted tabs to spaces.
2006-04-12 12:49:29 +00:00
Sven Neumann c995db3ce0 app/base/tile-cache.c app/base/tile-manager.c app/base/tile-private.h
2005-09-29  Sven Neumann  <sven@gimp.org>

	* app/base/tile-cache.c
	* app/base/tile-manager.c
	* app/base/tile-private.h
	* app/base/tile-swap.c
	* app/base/tile.c: keep the data size of a tile in the Tile struct
	instead of recalculating it over and over again. Adds an overhead
	of 4 bytes per tile but speeds up the tile cache significantly.
2005-09-29 22:24:57 +00:00
Sven Neumann 3bb2f79984 inline tile_manager_get_tile_num().
2005-05-09  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c: inline tile_manager_get_tile_num().

	* app/display/gimpdisplayshell-render.c (render_image_tile_fault):
	reverted one of the changes I did here earlier.
2005-05-08 23:30:54 +00:00
Sven Neumann 001bd33231 some code cleanup.
2005-05-08  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.[ch]: some code cleanup.
2005-05-08 20:24:54 +00:00
Sven Neumann 928b4f23a6 removed redundant check.
2005-04-27  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c (tile_manager_get_tile): removed
	redundant check.

	* app/display/gimpdisplayshell-render.c: don't access the next
	tile if we are at the end of the render loop anyway.
2005-04-27 17:53:10 +00:00
Michael Natterer 53c3ff1821 added new function copy_region_nocow() as a workaround for the fact that
2004-12-12  Michael Natterer  <mitch@gimp.org>

	* app/paint-funcs/paint-funcs.[ch]: added new function
	copy_region_nocow() as a workaround for the fact that sharing
	tiles with the projection is heavily broken.

	* app/base/tile-manager.c (tile_invalidate): added a warning when
	entering the code path that breaks badly.

	* app/core/gimp-edit.[ch]: added gimp_edit_copy_visible(), using
	the non-COW copying function above.

	* app/widgets/gimphelp-ids.h: added GIMP_HELP_COPY_VISIBLE.

	* app/actions/edit-actions.c
	* app/actions/edit-commands.[ch]: added action & callback for
	"edit-copy-visible".

	* menus/image-menu.xml.in: added "edit-copy-visible" to the image
	menu.

	* tools/pdbgen/pdb/edit.pdb: added gimp_edit_copy_visible()
	PDB wrapper.

	* app/pdb/edit_cmds.c
	* app/pdb/internal_procs.c
	* libgimp/gimpedit_pdb.[ch]: regenerated.

	* plug-ins/script-fu/scripts/copy-visible.scm: removed all code
	and made it a backward compat wrapper around gimp-edit-copy-visible.
	Fixes bug #138662.
2004-12-12 14:01:08 +00:00
Sven Neumann 811ca2dc1e count valid tiles, not dirty ones.
2004-09-19  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c (tile_manager_get_memsize): count valid
	tiles, not dirty ones.
2004-09-19 21:54:26 +00:00
Sven Neumann 23690346af Improved undo memory calculation for paint operations (bug #153035):
2004-09-19  Sven Neumann  <sven@gimp.org>

	Improved undo memory calculation for paint operations (bug #153035):

	* app/base/tile-manager.[ch] (tile_manager_get_memsize): added a
	"gboolean sparse" parameter to get more accurate results for
	sparse tile-managers.

	* app/core/gimpbuffer.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpimage.c
	* app/core/gimplayer.c
	* app/core/gimpprojection.c: changed accordingly.
2004-09-19 19:47:26 +00:00
Sven Neumann 847e41fa24 don't call tile_ewidth() three times from the inner loop.
2004-06-13  Sven Neumann  <sven@gimp.org>

	* app/paint-funcs/paint-funcs.c (shapeburst_region): don't call
	tile_ewidth() three times from the inner loop.

	* app/base/tile-manager.c (tile_manager_get): don't call
	tile_size() twice on the same tile.

	* app/base/tile-private.h: added tile_size_inline(), an inline
	version of the tile_size() function.

	* app/base/tile-cache.c
	* app/base/tile-manager.c
	* app/base/tile-swap.c
	* app/base/tile.c: use tile_size_inline() from inside the tile
	subsystem.
2004-06-13 13:19:19 +00:00
Michael Natterer d23e1ffe3b g_return_if_fail() on width, height or bpp <= 0. Doesn't fix anything but
2004-03-25  Michael Natterer  <mitch@gimp.org>

	* app/base/tile-manager.c (tile_manager_new): g_return_if_fail()
	on width, height or bpp <= 0. Doesn't fix anything but badly
	warns (and helps debugging) on bug #138117.
2004-03-25 17:58:26 +00:00
Sven Neumann 89cec0820d use g_printerr() for debug output.
22004-03-13  Sven Neumann  <sven@gimp.org>

	* app/paint-funcs/paint-funcs.c: use g_printerr() for debug output.

	* app/base/tile-manager.c: cleaned up stone-old debug output.
2004-03-13 11:34:45 +00:00
Sven Neumann 98878725cd exchanged TILEROWHINT_UNKNOWN and TILEROWHINT_BROKEN so that
2004-02-18  Sven Neumann  <sven@gimp.org>

	* app/base/tile.h: exchanged TILEROWHINT_UNKNOWN and
	TILEROWHINT_BROKEN so that TILEROWHINT_UNKNOWN becomes 0. This
	allows to use calloc() to allocate and initialize the rowhint
	array.

	* app/base/tile.c (tile_sanitize_rowhints): reimplemented with by
	a call to g_new0().

	* app/base/tile-manager.c (tile_manager_get): use g_memdup() to
	duplicate the rowhints when creating a tile copy.
2004-02-18 13:53:19 +00:00
Manish Singh 46aa40e25b app/base/temp-buf.c (temp_buf_get_memsize) Add some casts to gsize for
2004-02-13  Manish Singh  <yosh@gimp.org>

        * app/base/temp-buf.c (temp_buf_get_memsize)
        * core/gimpviewable.c (gimp_viewable_get_memsize): Add some casts
        to gsize for ints to prevent overflows.

        * app/base/tile-manager.c (tile_manager_get_memsize): Same as above,
        except cast to gint64.
2004-02-14 01:12:19 +00:00
Michael Natterer 68fd1809bd return a more exact result.
2003-12-09  Michael Natterer  <mitch@gimp.org>

	* app/base/tile-manager.c (tile_manager_get_memsize): return a
	more exact result.

	* app/core/gimpimage-scale.[ch] (gimp_image_scale_check): estimate
	the new memsize by separating parts of the image that are constant
	from parts that will scale. Also take undo logic into account.
	Return the estimated new memsize since it's not trivial to
	calculate.

	* app/gui/image-commands.c (image_scale_callback): use the memsize
	returned by gimp_image_scale_check() for the warning message. Free
	allocated strings.
2003-12-09 12:56:22 +00:00
Sven Neumann fd30d5c976 app/config/gimpbaseconfig.h use gint64 for all memsize properties.
2003-11-16  Sven Neumann  <sven@gimp.org>

	* app/config/gimpbaseconfig.h
	* app/config/gimpcoreconfig.h: use gint64 for all memsize properties.

	* app/base/tile-manager.[ch] (tile_manager_get_memsize): since
	tiles can be swapped out, a tilemanager can be larger than gsize
	(on 32bit platforms). Use a gint64 to avoid an overflow.

	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpbuffer.c
	* app/core/gimpchannel.c
	* app/core/gimpcontainer.c
	* app/core/gimpcontext.c
	* app/core/gimpdata.c
	* app/core/gimpdatafactory.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpimage-undo.[ch]
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/core/gimpitemundo.[ch]
	* app/core/gimplayer.c
	* app/core/gimplist.c
	* app/core/gimpobject.[ch]
	* app/core/gimppalette.c
	* app/core/gimpparasitelist.c
	* app/core/gimppattern.c
	* app/core/gimpundo.[ch]
	* app/core/gimpundostack.c
	* app/core/gimpviewable.c
	* app/text/gimptext.c
	* app/text/gimptextlayer.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c: use gint64 for gimp_object_get_memsize()
	and all its implementations.

	* app/display/gimpdisplayshell-title.c
	* app/gui/info-window.c: changed accordingly.
2003-11-16 17:51:36 +00:00
Michael Natterer 707e597665 added "gint ref_count" to the TileManager struct.
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.
2003-05-26 17:02:06 +00:00
Sven Neumann a11fd46183 Applied a patch from yvind Kols that adds supersampling to the transform
2003-04-04  Sven Neumann  <sven@gimp.org>

	Applied a patch from yvind Kols that adds supersampling to the
	transform operations (bug #109817):

	* app/base/tile-manager-private.h
	* app/base/tile-manager.[ch]: cache the last accessed tile and use
	it to optimize read_pixel_data_1().

	* app/core/gimpdrawable-transform-utils.c
	* app/core/gimpdrawable-transform.c: changed the resampling
	behavior when scaling down.
2003-04-04 11:19:57 +00:00
Michael Natterer be87dfb5fb pass a GdkGC to gdk_draw_rgb_image(), fixed dither offsets.
2002-01-30  Michael Natterer  <mitch@gimp.org>

	* libgimpwidgets/gimpcolorarea.c: pass a GdkGC to
	gdk_draw_rgb_image(), fixed dither offsets.

	* app/core/gimpobject.[ch]: new virtual function
	gimp_object_get_memsize().

	* app/base/temp-buf.[ch]
	* app/base/tile-manager.[ch]: added *_get_memsize() methods.

	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpbuffer.c
	* app/core/gimpchannel.c
	* app/core/gimpcontainer.c
	* app/core/gimpcontext.c
	* app/core/gimpdata.c
	* app/core/gimpdatafactory.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage.c
	* app/core/gimplayer.c
	* app/core/gimplist.c
	* app/core/gimpmoduleinfo.c
	* app/core/gimppalette.c
	* app/core/gimpparasitelist.c
	* app/core/gimppattern.c
	* app/core/gimppreviewcache.[ch]
	* app/core/gimpundo.[ch]
	* app/core/gimpundostack.c
	* app/core/gimpviewable.c: added get_memsize() implementations.

	* app/widgets/gimppreview.c
	* app/core/gimpobject.[ch]: some #ifdef DEBUG_MEMSIZE code to
	test the new memsize stuff (middle click any preview to get
	it's viewable's memory footprint).
2002-01-30 16:14:26 +00:00
Sven Neumann d4829df4d3 removed from CVS, they are generated.
2001-12-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimpmarshal.[ch]: removed from CVS, they are generated.

	* app/base/Makefile.am
	* app/base/base-enums.h: new file defining enums that are to be
	registered. Used to build app/base/base-enums.c.

	* app/base/base-types.h: include base-enums.h.

	* tools/pdbgen/Makefile.am
	* tools/pdbgen/enumcode.pl
	* tools/pdbgen/enums.pl: parse the new base-enums.h file and modified
	the perl voodoo so it doesn't prefix enums with GIMP_ that are already
	properly namespaced.

	* app/core/core-types.h: don't need to chop GIMP from enum.

	* app/pdb/color_cmds.c
	* app/pdb/tools_cmds.c
	* libgimp/gimpenums.h
	* plug-ins/script-fu/script-fu-constants.c: regenerated.

	* app/config/gimpconfig-deserialize.[ch]
	* app/config/gimpconfig-serialize.[ch]
	* app/config/gimpconfig.[ch]: made GimpConfig an interface including
	a reasonable default implementation that works on object properties.

	* app/config/Makefile.am
	* app/config/gimpbaseconfig.[ch]: new GimpBaseConfig using the
	GimpConfig interface. Yet only used for testing from app/main.c.

	* app/main.c: test the new GimpBaseConfig object.

	* app/gimprc.c
	* app/base/base-config.h
	* app/base/*.c
	* app/core/gimpdatafiles.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimppreviewcache.c
	* app/gui/preferences-dialog.c
	* app/paint-funcs/paint-funcs.c
	* app/xcf/xcf-seek.c: need to include glib-object.h since base-config
	contains registered enums now. Follow name change of InterpolationType
	to GimpInterpolationType.
2001-12-07 16:10:53 +00:00
Sven Neumann 4ba6db4e94 Michael Natterer <mitch@gimp.org>
2001-12-03  Sven Neumann  <sven@gimp.org>
	    Michael Natterer <mitch@gimp.org>

	* app/paint-funcs/paint-funcs-mmx.h: removed redefiniton of HAS_ALPHA
	macro.

	* app/core/gimp.c: reverted Daniel's change; it doesn't make the code
	simpler, only more error-prone.

	* app/gui/info-dialog.h
	* app/gui/resize-dialog.h
	* app/core/gimp.h
	* app/core/gimpbrushgenerated.h
	* app/core/gimpbrushpipe.h
	* app/core/gimpchannel.[ch]
	* app/core/gimpcontainer.h
	* app/core/gimpcoreconfig.h
	* app/core/gimpdata.h
	* app/core/gimpdatafactory.[ch]
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable.[ch]
	* app/core/gimpimage.h
	* app/core/gimpimagefile.h
	* app/core/gimplayer.h
	* app/core/gimplayermask.h
	* app/core/gimpmoduleinfo.h
	* app/core/gimppalette.h
	* app/core/gimpundo.h
	* app/widgets/gimpbrushfactoryview.h
	* app/widgets/gimpconstrainedhwrapbox.h
	* app/widgets/gimpcontainermenu.h
	* app/widgets/gimpcontainerview.h
	* app/widgets/gimpdialogfactory.h
	* app/widgets/gimpimagedock.h
	* app/widgets/gimplistitem.h
	* app/widgets/gimpmenuitem.h
	* app/widgets/gimpnavigationpreview.h
	* app/widgets/gimppreview.h
	* app/gimprc.h
	* app/pathP.h
	* app/tools/gimpbezierselecttool.h
	* app/tools/gimpcolorbalancetool.h
	* app/tools/gimpcurvestool.h
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpfreeselecttool.h
	* app/tools/gimphuesaturationtool.h
	* app/tools/gimpinktool-blob.h
	* app/tools/gimpinktool.h
	* app/tools/gimpiscissorstool.h
	* app/tools/gimpmagnifytool.h
	* app/tools/gimpmeasuretool.h
	* app/tools/gimppainttool.h
	* app/tools/gimppathtool.h
	* app/tools/gimprectselecttool.h
	* app/tools/gimpthresholdtool.h
	* app/tools/gimptool.h
	* app/tools/gimptransformtool.h
	* app/base/base-config.h
	* app/base/gimplut.[ch]
	* app/base/pixel-region.h
	* app/base/pixel-surround.[ch]
	* app/base/temp-buf.[ch]
	* app/base/tile-manager-private.h
	* app/base/tile-manager.[ch]
	* app/base/tile-private.h
	* app/base/tile.[ch]
	* app/display/gimpdisplay.h
	* app/display/gimpdisplayshell-selection.h
	* app/display/gimpdisplayshell.h
	* app/gui/brush-select.h
	* app/gui/gradient-editor.h
	* app/gui/gradient-select.h: reverted most of Daniel's changes.

	There's no reason to use unsigned integers here and in lots of places
	it is even wrong.

	Then it's way too early to convert gbooleans into bitfields. This
	change may make sense in a few places but can happen later when the
	API has settled and the code is more stable.

	* app/gimprc.c: reverted Daniel's change. This is a GCC-ism and this
	code is about to die soon anyway.
2001-12-03 13:44:59 +00:00
Daniel Egger 1ed9180112 Convert ugly comments into named structure fields. Much cleaner and less
2001-12-02  Daniel Egger  <degger@fhm.edu>

	* app/gimprc.c: Convert ugly comments into named structure fields.
	Much cleaner and less errorprone though may cause troubles on
	older compilers and then needs to be reverted. Please report!

	* app/base/base-types.h: Add FIXME reminder.

	* app/base/gimplut.c: Use CLAMP macro instead of if-cascade.

	* app/base/temp-buf.c: Remove duplicated calculations and simplify
	checks.

	* app/base/tile-manager.c:
	- (tile_manager_get_tile_num): Return success and take an additional
	  pointer for the tilenumber.
	- Simplify logic in the rest of the file as a result.
	- Remove rotten debugging cruft.

	* app/core/gimpbrushgenerated.c: Fix two stylistic nits.

	* app/app_procs.c: Include <stdlib.h> for exit () prototype.

	* app/core/gimpdrawable-blend.c: Include <stdlib.h> for abs ()
	prototype.

	* app/display/gimpdisplay.c: Include <string.h> for memcpy ()
	prototype.

	* app/core/gimpimage-convert.c: (HIST_RGB): First parameter is
	not const. Fixes a gcc warning for a wrong return value.

	* libgimpwidgets/gimpunitmenu.c
	* app/core/gimpunit.c: Add suggested (by gcc 3.1 cvs) parentheses
	to group correct logic tests together.

	* app/paint-funcs/paint-funcs-generic.h: Fix my HAS_ALPHA macro
	to avoid gcc 3.1 cvs warning.

	* app/gimprc.h
	* pathP.h
	* base-config.h
	* app/base/boundary.h
	* app/base/gimplut.[ch]
	* app/base/pixel-region.h
	* app/base/pixel-surround.[ch]
	* app/base/temp-buf.[ch]
	* app/base/tile-manager-private.h
	* app/base/tile-manager.c
	* app/base/tile-private.h
	* app/base/tile.[ch]
	* app/core/gimp.h
	* app/core/gimpbrushgenerated.h
	* app/core/gimpbrushpipe.h
	* app/core/gimpchannel.[ch]
	* app/core/gimpcontainer.h
	* app/core/gimpcoreconfig.h
	* app/core/gimpdata.h
	* app/core/gimpdatafactory.[ch]
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable.[ch]
	* app/core/gimpimage.h
	* app/core/gimpimagefile.h
	* app/core/gimplayer.h
	* app/core/gimplayermask.h
	* app/core/gimpmoduleinfo.h
	* app/core/gimppalette.h
	* app/core/gimpundo.h
	* app/display/gimpdisplay.h
	* app/display/gimpdisplayshell-selection.h
	* app/display/gimpdisplayshell.h
	* app/gui/brush-select.h
	* app/gui/gradient-editor.h
	* app/gui/gradient-select.h
	* app/gui/info-dialog.h
	* app/gui/resize-dialog.h
	* app/tools/gimpbezierselecttool.h
	* app/tools/gimpcolorbalancetool.h
	* app/tools/gimpcolorpickertool.h
	* app/tools/gimpcurvestool.h
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpfreeselecttool.h
	* app/tools/gimpfuzzyselecttool.h
	* app/tools/gimphuesaturationtool.h
	* app/tools/gimpinktool-blob.h
	* app/tools/gimpinktool.h
	* app/tools/gimpiscissorstool.h
	* app/tools/gimpmagnifytool.h
	* app/tools/gimpmeasuretool.h
	* app/tools/gimppainttool.h
	* app/tools/gimppathtool.h
	* app/tools/gimprectselecttool.h
	* app/tools/gimpthresholdtool.h
	* app/tools/gimptool.h
	* app/tools/gimptransformtool.h
	* app/tools/path_toolP.h
	* app/widgets/gimpbrushfactoryview.h
	* app/widgets/gimpconstrainedhwrapbox.h
	* app/widgets/gimpcontainermenu.h
	* app/widgets/gimpcontainerview.h
	* app/widgets/gimpdialogfactory.h
	* app/widgets/gimpimagedock.h
	* app/widgets/gimplistitem.h
	* app/widgets/gimpmenuitem.h
	* app/widgets/gimpnavigationpreview.h
	* app/widgets/gimppreview.h: Unsignify lots of variables and
	parameters and use bitfields in structs where possible. First
	part of a huge cleanup all over the code...
2001-12-02 14:59:30 +00:00
Kelly Martin 536747c2cb a couple more interesting off-by-one errors. it appears to work now,
* base/pixel-region.c base/tile-manager.c: a couple more
	interesting off-by-one errors.  it appears to work now, though.
2001-11-29 03:31:00 +00:00
Kelly Martin 56f849d9fc Fixed another use of array of gpointer in place of a proper struct, this
* app/undo.c: Fixed another use of array of gpointer in place of a
	proper struct, this time in undo_(push|pop)_channel_mod.

	* base/base-types.h
	* base/tile-manager.h
	* base/tile-manager-private.h
	* base/tile-manager.c: added PixelDataHandle as an abstraction
	on top of tiles.  PixelDataHandles either return a pointer into
	the tile data, or create a temporary buffer so the calling
	function can access data from disparate tiles using a single
	buffer.  This is a step in reducing the dependence of core
	image functions being aware of tiles as well as a step toward
	having a single abstraction for pixel data.

	* app/image_map.c: changed to use read_pixel_data_1
	* app/pixel-region.c: changed to use the read_pixel_data and
	write_pixel_data where practical.
2001-11-29 01:06:44 +00:00
Michael Natterer d240f623f1 new directory app/base/
2001-05-15  Michael Natterer  <mitch@gimp.org>

	* configure.in: new directory app/base/

	* app/Makefile.am
	* app/boundary.[ch]
	* app/brush_scale.[ch]
	* app/gimpchecks.h
	* app/gimplut.[ch]
	* app/pixel_processor.[ch]
	* app/pixel_region.[ch]
	* app/pixel_surround.[ch]
	* app/temp_buf.[ch]
	* app/tile.[ch]
	* app/tile_cache.[ch]
	* app/tile_manager.[ch]
	* app/tile_manager_pvt.h
	* app/tile_pvt.h
	* app/tile_swap.[ch]: moved to base/

	* app/base/Makefile.am
	* app/base/base-types.h
	* app/base/*: new directory for the sub-object pixel maniplation
	and storage stuff. Does not include Gtk+ or anything outside
	base/. Did some cleanup in all files.

	* app/appenums.h
	* app/apptypes.h
	* app/core/gimpimage.h: removed types which are now in
	base/base-types.h.

	* app/base/base-config.[ch]
	* app/gimprc.[ch]: put the config variables for base/ to their own
	file so base/ doesn not have to include gimprc.h (does not yet
	work, i.e. the variables are un-configurable right now)

	* app/main.c: set a log handler for "Gimp-Base".

	* app/paint-funcs/Makefile.am
	* app/paint-funcs/paint-funcs.[ch]: removed the color hash which
	maps RGB to color indices because it's a totally standalone system
	which has nothing to do with the paint-funcs and introduced a
	GimpImage dependency.

	paint-funcs/ should be considered on the same sub-object
	(glib-only) level as base/, only in a different directory.

	* app/core/Makefile.am
	* app/core/gimpimage-colorhash.[ch]: put the color hash here.

	* app/gimage.c: don't invalidate the color hash here...

	* app/core/gimpimage.c: ... but in the colormap_changed() default
	inplementation. Initialize the hash in class_init().

	* tools/pdbgen/Makefile.am: scan app/base/base-types.h for enums.

	* tools/pdbgen/enums.pl: regenerated.

	* app/[lots]
	* app/core/[of]
	* app/gui/[files]
	* app/pdb/[all]
	* app/tools/[over]
	* app/widgets/[the]
	* tools/pdbgen/pdb/[place]: changed #includes accordingly. And use
	base_config->value instead of the stuff from gimprc.h.
2001-05-15 11:25:25 +00:00
Nick Lamb /GIMP 4f89fddec0 add <stdlib.h> and/or <string.h> headers where needed 2001-02-04 04:51:17 +00:00
Sven Neumann 6c3ef74547 app/paint_funcs.c app/pixel_processor.c app/tile.c app/tile_cache.c
2001-01-23  Sven Neumann  <sven@gimp.org>

	* app/paint_funcs.c
	* app/pixel_processor.c
	* app/tile.c
	* app/tile_cache.c
	* app/tile_manager.c
	* app/tile_pvt.h
	* app/tile_swap.[ch]: cleanups, indentation
2001-01-23 14:21:37 +00:00
Sven Neumann b102101e94 app/convert.c app/floating_sel.c app/gimage_mask.c app/gimpimage.c
2001-01-23  Sven Neumann  <sven@gimp.org>

	* app/convert.c
	* app/floating_sel.c
	* app/gimage_mask.c
	* app/gimpimage.c
	* app/global_edit.c
	* app/image_map.c
	* app/image_new.c
	* app/layer.c
	* app/paint_funcs.c
	* app/pixel_region.c
	* app/tile_manager.c
	* app/tile_manager.h
	* app/tile_manager_pvt.h
	* app/undo.c
	* app/xcf.c
	* app/pdb/tools_cmds.c
	* app/tools/flip_tool.c
	* app/tools/perspective_tool.c
	* app/tools/rotate_tool.c
	* app/tools/scale_tool.c
	* app/tools/shear_tool.c
	* app/tools/text_tool.c
	* app/tools/transform_core.c
	* tools/pdbgen/pdb/tools.pdb: made all files execpt xcf.c use the
	TileManager accessor functions instead of accessing the TileManager
	struct directly.
2001-01-23 13:01:48 +00:00
Michael Natterer 8d6c335f8f app/Makefile.am app/channel_pvt.h app/drawable_pvt.h app/gdisplayF.h
2000-12-29  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/channel_pvt.h
	* app/drawable_pvt.h
	* app/gdisplayF.h
	* app/gimpdrawableP.h
	* app/gimpimageP.h
	* app/layer_pvt.h
	* app/toolsF.h: removed these files.

	* app/apptypes.h
	* tools/pdbgen/enums.pl: added tons of opaque typedefs and enums.

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/brushes.pdb
	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/convert.pdb
	* tools/pdbgen/pdb/display.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/help.pdb
	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/patterns.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/tools.pdb
	* app/*: chainsaw #include cleanup:

	- Never (never!!) include stuff in header files except where we
	  need access to structures' contents (like derived objects).
	- Added prototypes and proper formating in many files.
	- The #include order in *all* *.c files is as follows:

	#include "config.h"

	#include <system stuff>

	#include <gtk/gtk.h>

	#include "apptypes.h"

	#include "gimp stuff"

	#include "libgimp stuff"

	#include "libgimp/gimpintl.h"

	By following this scheme we can easily see a file's dependencies
	from it's #include's and can grep for the inclusion to find out
	where a file is used.

	* tools/pdbgen/app.pl: changed to follow the include scheme above.

	* libgimp/Makefile.am
	* libgimp/gimpuitypes.h: new file, included from libgimp/gimpui.h
	and from app/apptypes.h.

	* libgimp/gimpcolorbutton.[ch]
	* libgimp/gimpdialog.[ch]
	* libgimp/gimphelpui.[ch]
	* libgimp/gimpparasite.[ch]
	* libgimp/gimppatheditor.[ch]
	* libgimp/gimpprotocol.c
	* libgimp/gimpquerybox.[ch]
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimptypes.h
	* libgimp/gimpui.h
	* libgimp/gimpunit.h
	* libgimp/gimpunitmenu.[ch]
	* libgimp/gimpwidgets.[ch]: changed accordingly.

	* plug-ins/FractalExplorer/Dialogs.c
	* plug-ins/gdyntext/message_window.c
	* plug-ins/imagemap/imap_default_dialog.c
	* plug-ins/imagemap/imap_file.c: these files used to include
	"libgimp/gimpui.h" without including "libgimp/gimp.h". This is
	no longer possible because the libgimpui headers don't inlcude
	"libgimp/gimpunit.h" any more.
2000-12-29 15:22:01 +00:00
Daniel Egger e13fcd8b1f Turned C++ style comments into C style ones.
Turned C++ style comments into C style ones.
2000-09-26 22:54:33 +00:00
Sven Neumann c9482821ab mostly header cleanup and i18n
--Sven
2000-01-31 23:59:05 +00:00
Adam D. Moss 22b8c94feb Mon Dec 13 19:25:39 GMT 1999 Adam D. Moss <adam@gimp.org
* app/tile.c
	* app/tile.h
	* app/tile_manager.c
	* app/tile_swap.c:

	Allocate Tile's array of TileRowHints dynamically.  Make type
	of TileRowHint explicit since it's fairly space-critical.
	Can save several hundred K of memory with this and struct
	changes.

	Added warnings for old basically-untested-or-insane
	paths through the tile referencing code.

	* app/tile_pvt.h: Shrink down and rearrange fields of Tile
	struct to save some space with gcc's padding for most people.

	* app/paint_funcs.c: Use tile_sanitize_rowhints() to ensure
          that rowhints have been allocated before use.

	* app/channel_ops.c
	* app/gdisplay.c
	* app/pixel_region.c: Cosmetic, sanity or unfinished debug
          changes (the latter commented out) for fun and reference.
1999-12-13 19:48:24 +00:00
Manish Singh dfd9d1cc70 i18n patch from gimp-monniaux-050699-1
-Yosh
1999-06-05 23:41:45 +00:00
BST 1999 Adam D. Moss 928dd48af7 app/tile.c app/tile.h app/tile_manager.c app/tile_pvt.h
Sun May  9 16:23:47 BST 1999  Adam D. Moss  <adam@gimp.org>

	* app/tile.c
	* app/tile.h
	* app/tile_manager.c
	* app/tile_pvt.h
	* app/paint_funcs.c:

	Added Tile Row Hinting to the GIMP tile structure.  Tiles
	now have cheap per-row hints indicating whether each row is
	all-transparent, all-opaque, a mixture, or other properties.

	These hints are automatically invalidated when the tile is checked
	in as dirty, and are re-evaluated on demand.

	Currently only the layer compositing routines take advantage
	of these hints, though there is opportunity to use them to
	advantage in numerous other places.

	The whole layer compositing process is typically 2x-4x faster
	now, especially on subsequent renders of data which has already
	had its hints calculated.

	See tile.h for the explicit TileRowHint query/set interface.
	The procedure to re-evaluate tile hints currently resides in
	paint_funcs.c but may be exposed to other parts of the core
	if necessary.

	This is experimental.  Please report mis-rendering problems.
1999-05-09 15:45:37 +00:00
Tor Lillqvist a27cedc001 First batch of changes to merge the Win32 version. This will be
done in pieces, don't expect to be able to compile on Win32 from
these sources yet.  Ans of course, the official version of GTk+
doesn't include the Win32 stuff yet.
1999-02-20 23:20:54 +00:00
GMT 1999 Adam D. Moss 32675c4408 More robust and kickin' thumbnail support.
Sun Feb  7 15:04:23 GMT 1999 Adam D. Moss <adam@gimp.org>

        * app/fileops.c: More robust and kickin' thumbnail support.

        * app/edit_selection.c app/layer.c app/layer.h: Working
        on lazy opaque layer moves.  Disabled for now.

        * app/gdisplay.c
        * app/gimage.h
        * app/gimpimage.c
        * app/gimpimage.h
        * app/image_render.c
        * app/tile_manager.c: Errr, I don't remember.  No, seriously.
        Nothing of consequence.
1999-02-07 15:16:45 +00:00
GMT 1999 Adam D. Moss 4afd1e88a9 Fixed the tile-corruption bug which has been around since early GIMP-1.1.
Sun Jan 31 19:42:26 GMT 1999 Adam D. Moss <adam@gimp.org>

	* app/tile.c app/tile_manager.c:

	Fixed the tile-corruption bug which has been around
	since early GIMP-1.1.  When dirtying a copy-on-write
	tile, a pointer to nonsense data was being returned
	when the c-o-w'd tile source was swapped out to disk.
	Now the c-o-w'ing routine ensures that the tile data
	is correctly locked into memory before duplicating it
	for dirtying.
1999-01-31 20:52:15 +00:00
GMT 1999 Adam D. Moss 434870dd73 Enabled the gimage->projection copy-on-write hack for RGBA/GRAYA
Wed Jan 20 22:37:13 GMT 1999  Adam D. Moss  <adam@gimp.org>

        * app/gimpimage.c: Enabled the gimage->projection copy-on-write
        hack for RGBA/GRAYA single-layer images.  Masks/channels
        probably don't show yet when this is active.  Report strangeness.
        Thanks.
1999-01-20 22:41:38 +00:00
EDT 1998 Adrian Likins 25721826d0 Lots of ii8n stuff here and some additions to the de.po. Applied
Wed Oct 14 17:46:15 EDT 1998 Adrian Likins <adrian@gimp.org>

        * app/*, po/de.po, de/POTFILES.in, libgimp/gimpintl.h:
        Lots of ii8n stuff here and some additions to the de.po.
        Applied gimp-egger-981005-1 ,gimp-egger-981006-1,
        gimp-egger-981007-1, gimp-egger-981008-1,
        gimp-egger-981009-1.patch, gimp-egger-981010-1.patch

        * plug-in/guillotine/guillotine.c: added the coordinates
        of the split images from the original image to the title.
        ie foo.jpg (0,0) for the image in the topleft.

        * plug-in/script-fu/scripts/neon-logo.scm,
        perspective-shadow.scm, predator.scm,rendermap.scm,
        ripply-anim.scm, select_to_image.scm,swirltile.scm,
        xach-effect.scm: updated scripts to use new script-fu stuff

wooo boy! a big un!

	in testing this, it looks like some of the po files are busted.
but the code stuff seems okay.

-adrian
1998-10-14 23:23:52 +00:00
scott 85393964a0 Another tile tweak. This one eliminates tile levels (which add
bookkeeping without being used).  Made copy_region more intelligent on
when to use tile sharing; some changes made to pixel_regions to
facilitate this.  Fixed a refcount problem with xcf load and probably
a few other bugs that I've forgotten about.  Added a sanity check in
set_undo_tiles to help with a problem larry is reporting with airbrush
and xinput.  --sg
1998-08-15 19:17:36 +00:00
scott 0ffabfe95b Bunch of tile-related stuff. 1998-08-11 17:35:34 +00:00
scott 3de98de2c4 I am an idiot. Always balance your brackets. --sg 1998-08-02 11:03:36 +00:00
scott 42185929c3 Added an assertion check in tile_manager.c to catch inappropriate sharing
attempts.  --sg
1998-08-02 01:52:43 +00:00
scott 7bcac06c7e Some data encapsulation stuff for tile managers. This one will
probably make everyone recompile AGAIN.  Ha ha ha.
1998-07-28 23:13:36 +00:00