2007-06-13 Sven Neumann <sven@gimp.org>
* app/app.c (app_exit_after_callback): if GIMP_UNSTABLE is
undefined before calling exit() call tile_swap_exit(), not
base_exit().
svn path=/trunk/; revision=22773
2007-06-13 Sven Neumann <sven@gimp.org>
* app/base/base.c (base_exit): call tile_cache_exit() before
tile_swap_exit(). tile_cache_exit() may use the tile swap in
pathological cases.
* app/base/tile-cache.c (tile_cache_exit): warn if the tile cache
is not empty.
svn path=/trunk/; revision=22772
2007-06-13 Mukund Sivaraman <muks@mukund.org>
* plug-ins/common/tiff-load.c: small fix to the previous commit
in how layers are skipped.
svn path=/trunk/; revision=22770
2007-06-13 Mukund Sivaraman <muks@mukund.org>
* plug-ins/common/tiff-load.c: don't load any layers from a TIFF
directory which don't match the mode of the first image in the TIFF
directory.
svn path=/trunk/; revision=22769
2007-06-13 Sven Neumann <sven@gimp.org>
* app/errors.[ch]: added errors_exit() and unset the Gimp
reference. Errors may occur after the Gimp object has been finalized.
* app/app.c (app_run): call errors_exit().
svn path=/trunk/; revision=22768
2007-06-12 Raphael Quinet <raphael@gimp.org>
* plug-ins/jpeg/jpeg-load.c (load_image): Instead of passing any
file to libexif blindly, check first that some JPEG APP1 marker
contains the EXIF header.
* plug-ins/jpeg/jpeg-exif.c (jpeg_apply_exif_data_to_image):
removed the tests that were checking for the presense of some EXIF
tags such as the EXIF version before deciding if the data should
be processed or not (bug #446809).
svn path=/trunk/; revision=22766
2007-06-12 Sven Neumann <sven@gimp.org>
* plug-ins/common/curve_bend.c: initialize the GtkAdjustment used
for the rotation angle; fixes bug #446681.
svn path=/trunk/; revision=22765
2007-06-12 Sven Neumann <sven@gimp.org>
* plug-ins/common/psd-load.c: applied slightly modified patch
from
Eric Ross that adds support for loading long layer names from
the
extra layer data section (bug #445316).
svn path=/trunk/; revision=22763
2007-06-11 Sven Neumann <sven@gimp.org>
Applied patch from Zbigniew Chyla that further improves the
boundary_sort() performance (bug #388538):
* base/boundary.c (cmp_xy): use "y" coordinate as more
significant
one, i.e. compare (ay, ax) to (by, bx), not (ax, ay) to (bx,
by).
* configure.in: bumped version to 2.3.19.
svn path=/trunk/; revision=22762
2007-06-11 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-preview.c: don't disable image previews
when
layer previews are disabled. We do not any longer create the
image
preview from the layer previews.
* app/core/gimpimagefile.c
* app/widgets/gimpthumbbox.c
* tools/pdbgen/pdb/image.pdb: thumbnail rendering is not any
longer disabled if layer previews are turned off.
* app/config/gimprc-blurbs.h (THUMBNAIL_SIZE_BLURB): removed
note
that has become invalid by the change above.
* app/core/gimpitem-preview.c: cosmetics.
* app/pdb/image_cmds.c: regenerated.
svn path=/trunk/; revision=22756
2007-06-11 Mukund Sivaraman <muks@mukund.org>
* configure.in: bumped required libexif version to 0.6.15. This
seems to fix#358117 for the various test images that were reported
in it, and its duplicates. This version is in Debian unstable and
Fedora 7.
svn path=/trunk/; revision=22752
2007-06-11 Sven Neumann <sven@gimp.org>
Applied the second patch from Zbigniew Chyla. Improves
boundary_sort() performance by reducing its time complexity from
O(n*n) to ~O(n*log n) (bug #388538).
* app/base/boundary.c (boundary_sort): prepare two arrays of
pointers to segments, each sorted by different pair of
coordinates ((x1,y1) and (x2,y2)); use new find_segment(),
passing both arrays to it.
(find_segment): new implementation that employs binary search to
find matching segment, using sorted arrays prepared by
boundary_sort().
svn path=/trunk/; revision=22750
2007-06-09 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-resize.[ch]: added
gimp_image_resize_to_selection().
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: added an action and a menu item for
it.
Fixes bug #335672.
* plug-ins/common/align_layers.c: resolved a conflicting
mnemonic.
svn path=/trunk/; revision=22749
2007-06-08 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/tinyscheme/scheme.h: Applied patch from Daniel
Richard G. that defines SCHEME_EXPORT as extern for non-Windows
systems. Fixes bug #444964.
svn path=/trunk/; revision=22747
2007-06-08 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection.c (gimp_projection_alloc_levels): use
a bit shift instead of a shift and a division.
svn path=/trunk/; revision=22745
2007-06-08 Sven Neumann <sven@gimp.org>
Applied parts of a patch from Daniel Richard G. (bug #445374):
* themes/Default/images/Makefile.am
* data/tips/Makefile.am
* menus/Makefile.am: more srcdir/builddir tweaks.
svn path=/trunk/; revision=22744
2007-06-08 Sven Neumann <sven@gimp.org>
* app/core/gimpviewable.h: #define GIMP_VIEWABLE_PRIORITY_IDLE,
which is even lower than G_PRIORITY_LOW.
* app/core/gimpundo.c
* app/widgets/gimpviewrenderer.c: create previews with
GIMP_VIEWABLE_PRIORITY_IDLE so that they are run after the
projection has been invalidated.
svn path=/trunk/; revision=22743
2007-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection.c (gimp_projection_validate_pyramid_tile):
folded into a single loop.
svn path=/trunk/; revision=22740
2007-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection.c (gimp_projection_write_quarter):
weight the pixels by their alpha value.
svn path=/trunk/; revision=22738
2007-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: removed the boolean from the GimpImage
struct that used to track whether the preview was valid.
(gimp_image_invalidate_preview): just set the preview to NULL.
* app/core/gimpimage-preview.c (gimp_image_get_new_preview):
construct the preview from the projection instead of compositing
the drawable previews.
svn path=/trunk/; revision=22737
2007-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection.c: lazily allocate the tile managers of
the image pyramid.
(gimp_projection_write_quarter): minor optimization.
svn path=/trunk/; revision=22736
2007-06-07 Sven Neumann <sven@gimp.org>
* app/text/Makefile.am
* app/core/Makefile.am
* app/tools/Makefile.am
* app/display/Makefile.am
* app/widgets/Makefile.am
* app/base/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* libgimp/Makefile.am
* libgimpthumb/Makefile.am
* tools/pdbgen/Makefile.am
* libgimpwidgets/Makefile.am: applied the remaining parts of the
patch from Daniel Richard G. to fix out-of-source-tree builds
(bug #444960).
svn path=/trunk/; revision=22735
2007-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection.c (gimp_projection_get_level):
reimplemented without using a logarithm.
svn path=/trunk/; revision=22734
2007-06-07 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am
* menus/Makefile.am: when calling xsltproc, use the stylesheet from
$(srcdir). From the patch attached to bug #444960.
svn path=/trunk/; revision=22733
2007-06-07 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am: bail out with an error if xsltproc is
missing and authors.h needs to be regenerated.
* libgimpwidgets/Makefile.am: let gimpwidgets-private.lo, not the
C file, depend on gimp-wilber-pixbufs.h. From the patch attached to
bug #444960.
svn path=/trunk/; revision=22732
2007-06-06 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection.[ch]: minor API cleanup. Use
horizontal
and vertical scale to determine the pyramid level to use.
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell-render.c: follow the API change.
svn path=/trunk/; revision=22730
2007-06-06 Martin Nordholts <martinn@svn.gnome.org>
Implemented an image pyramid for the GimpProjection. An image pyramid
caches a projection at several sizes, causing the rendering code not to
have to swap in all tiles of a (potentially) large image; it can use
small versions of the projection if the user is zoomed out.
The image pyramid also imroves visual quality, especially at zoom levels
where there is a pyramid level that matches perfectly (i.e. at e.g. 50%,
25%, and 12.5% zoom). A step on the right track for bug #76096.
* app/core/gimpprojection.[ch]: Adjusted to make use of an image
pyramid. GimpProjection now keeps an array of TileManager:s, one per
pyramid level. Renamed _alloc_tiles to _alloc_levels.
* app/display/gimpdisplayshell-draw.c: (gimp_display_shell_draw_area):
Use the right GimpProjection level when drawing
* app/display/gimpdisplayshell-render.c: (render_image_init_info_full):
Setup RenderInfo with level in mind
* app/base/tile-manager.[ch]: Extended API a bit, nothing complicated.
* app/base/tile-manager-private.h (struct _TileManager): Keep a pointer
to the level below for use in an image pyramid.
svn path=/trunk/; revision=22727
2007-06-06 Sven Neumann <sven@gimp.org>
* app/core/gimpprojection.c (gimp_projection_estimate_memsize):
the projection is 2 bytes per pixel for grayscale images.
svn path=/trunk/; revision=22723