And along with it a lot of stuff like the drawable preview cache, the
gegl tile manager backend, temporary gimp_gegl_buffer_foo() stuff, and
the remaining bits of performance.
The projection is in an evil semi-ported state which makes it work
ok-ish for stuff like layer moving, but absolutely unbearable for
painting, there is also an off-by-one rendering glitch at some zoom
levels.
It made the transform code hard to read and never belonged into the
tile manager anyway. It's a simple pixel buffer that should not know
about any position in an image. Instead, pass around the offsets of
tile managers explicitly, so everything is less obscure for the price
of having more parameters. This will also help replacing TileManagers
with GeglBuffers.
This was actually documented to be the return value of all transform
procedures since 1.2, but it was always broken and returned the
passed-in drawable. Therefore it's only fixed for the new item API,
the old procedures keep their semantics (and will all be deprecated
anyway).
Instead, add utility functions that calculate the centers for rotate
and flip and use them where we used to pass "auto_center". This looks
pretty much poinless, but a commit will follow that makes it look
better...
There is nothing drawable-specific in there, and having them on
GimpItem enables some simplifications, esp. in upcoming PDB
wrappers. None of these refactorings is in this commit though.
Description of undo actions should be marked as action descriptions,
and not as commands. This is required for translation for some
language (like Hebrew) that require a different grammatical tense for
describing actions
(gimp_drawable_transform_affine)
(gimp_drawable_transform_flip)
(gimp_drawable_transform_rotate): also transform the layer mask if we
are transforming a layer and there is no selection (which causes the
entire layer to be transformed).
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2008-11-22 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch]: make the entire selection
API take GimpSelection arguments, not GimpChannel.
Clean up gimp_selection_load() a bit.
* app/actions/select-commands.c
* app/core/gimp-edit.c
* app/core/gimpdrawable-transform.c
* app/core/gimpimage-quick-mask.c
* app/tools/gimpeditselectiontool.c
* tools/pdbgen/pdb/selection.pdb: add the needed casts.
* app/pdb/selection-cmds.c: regenerated.
svn path=/trunk/; revision=27711
2008-10-09 Michael Natterer <mitch@gimp.org>
Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
had a GEGL dependency (they will have in the next commit, but I
wanted to keep the commit separate).
* app/dialogs/Makefile.am
* app/file/Makefile.am
* app/gui/Makefile.am
* app/menus/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* app/text/Makefile.am
* app/vectors/Makefile.am
* app/widgets/Makefile.am
* app/xcf/Makefile.am: add GEGL_CFLAGS.
* app/actions/*.c
* app/core/*.c
* app/dialogs/*.c
* app/display/*.c
* app/file/*.c
* app/gui/*.c
* app/menus/*.c
* app/paint/*.c
* app/pdb/gimppdb-utils.c
* app/pdb/gimpprocedure.c
* app/plug-in/*.c
* app/text/*.c
* app/tools/*.c
* app/vectors/*.c
* app/widgets/*.c
* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
to all files which include a drawable subclass or gimpimage.h
* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
in all generated files.
* app/pdb/*-cmds.c: regenerated.
* data/images/gimp-splash.png: the goat is still sleeping.
By Aurore Derriennic.
svn path=/trunk/; revision=27202
2008-03-04 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform.c
(gimp_drawable_transform_cut):
clear the selection after cutting it as gimp_selection_extract()
doesn't do this for us any longer. See bug #510534.
svn path=/trunk/; revision=25034
2008-02-27 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform.c (gimp_drawable_transform_affine):
pass the direction parameter down to
gimp_drawable_transform_tiles_affine() instead of hardcoding it to
GIMP_TRANSFORM_FORWARD. Fixes bug #518910.
svn path=/trunk/; revision=24990
2007-12-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch]: added GErrors to
gimp_selection_extract() and gimp_selection_float().
* app/core/gimp-edit.c
* app/tools/gimpeditselectiontool.c
* app/actions/select-commands.c: handle the returned error.
* app/core/gimpdrawable-transform.c: pass NULL errors since this
file knows what it does and won't get errors.
* tools/pdbgen/pdb/selection.pdb: pass the error.
* app/pdb/selection_cmds.c: regenerated.
svn path=/trunk/; revision=24286
2007-11-28 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-transform.c
(gimp_drawable_transform_tiles_flip): fixed typo in if condition
and added more sanity checks.
svn path=/trunk/; revision=24237
2007-04-30 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch] (gimp_selection_extract): changed
"drawable" parameter to "pickable" and added some special casing
for the GIMP_IS_DRAWABLE(pickable) case in the implementation.
* app/core/gimpdrawable-transform.c: changed accordingly.
* app/core/gimp-edit.c: ditto. Removed utility function
gimp_edit_extract_visible() and simply use gimp_edit_extract() for
"copy visible", passing image->projection. Fixes bug #434102.
svn path=/trunk/; revision=22368
2006-10-26 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimp-transform-region.[ch]: new files containing
gimp_transform_region() and all its voodoo utility functions.
* app/core/gimpdrawable-transform.c: removed the stuff here.
2006-10-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-transform.c
(gimp_drawable_transform_tiles_affine): factored out new function
gimp_transform_region() that contains all the actual transform
magic, doesn't use a GimpDrawable, and transforms into a passed
PixelRegion. Will be used for perspective clone after some more
changes.