Simply check the transfomred coords against the canvas extents and the
untransformed against the image contents instead of using
untransform_viewport(). The code is easier to read now, and
untransform_viewport() is still broken and can't really be implemented
properly when the canvas is rotated.
Without the dependencies of file-compressor (currently zlib, libbzip2
and liblzma), configure fails now. file-compressor is referenced in too
many places for its functionality to be optional.
Added complete API for zoom/unzoom (scale and scroll) and
rotate/unrotate, with the same set of functions as the existing
transform/untransform. Moved some special case functions to the
namespaces they belong.
This patch adds a Dynamic for the 'Color From Gradient' option
and three Paint tool presets (Airbrush, Paintbrush, Pencil), which
use this preset.
new file: data/dynamics/Color-From-Gradient.gdyn
new file: data/tool-presets/Paint/Airbrush-Color-From-Gradient.gtp
new file: data/tool-presets/Paint/Paintbrush-Color-From-Gradient.gtp
new file: data/tool-presets/Paint/Pencil-Color-From-Gradient.gtp
modified: data/dynamics/Makefile.am
modified: data/tool-presets/Paint/Makefile.am
modified: AUTHORS
modified: authors.xml
(cherry picked from commit 54b28a5b60)
Switch heal tool back to sRGB, which produces better quality than
linear-light. It is, after all, trying to correct for differences in
perceived brightness.
...one image onto another
gimp_dock_window_display_changed(): make sure the "auto-follow-active"
logic works both ways: when the active image or display is changed in
a dockable, update the global context. Fixes multi-window mode.
gimp_context_real_set_display(): make sure a context's display and
image are always in a consistent state and never have a display that
is not display->image: when display is the same as context->display,
check that the context's image matches display->image, so that after a
gimp_context_set_display(), the context is consistent in all
cases. Fixes single-window mode.
The filter does absolutely nothing with the applicator, this API is
just for associating an applicator with a filter so it can be found by
other parts of the code.
in which case the function just does nothing on the passed operation's
input and expects it to be already conntected to something. Also allow
to pass an operation that is already part of another graph.
Fix heal tool's convergence threshold.
When we switched from [0,255] to [0,1] pixel range, the amount of numerical
error to tolerate should have been reduced proportionally.
Don't pass a NULL pointer to gimp_text_buffer_get_font_tag() because
it is dereferenced in a call to strcmp().
gimp_context_get_font_name() returns NULL when the selected text
includes spans with different fonts. Add the same special handling for
spans with inconsistent sizes too, and add comments that we should
have the same for the color.
Original patch from Massimo Valentini.
- stroke around the drawn area to work around the impossibility of
tiling antialiased stuff.
- don't use the display xfer stuff because if we overdraw we must
not have anything in the source pattern outside the drawn region
This includes a much better code organization where initialization part can be reused
to free up memory and refresh the display on the fly.
This refresh feature has a UI button and a shortcut (ctrl-r) associated.
It implies any kind of change, additional or removed layers, new image size, etc.
- reorder enum GimpCursorType to be in angular order
- add gimp_cursor_rotate(cursor_type, angle)
- rotate the shell's cursors automatically in the setter