Michael Natterer
9504e85a7e
app: set an icon on the floating selection filter
2013-04-16 20:30:13 +02:00
Michael Natterer
972b6ef78f
app: add a list of filters to the layer options dialog (for debug purposes)
2013-04-16 20:29:18 +02:00
Michael Natterer
2538d6fea7
app: add gimp_drawable_get_filters() which returns the filter stack
2013-04-16 20:20:00 +02:00
Nils Philippsen
b109e05806
app: let the tag popup own its tag objects
...
This should fix crashes in which tag objects got accessed after they
were disposed, because they still were stored with the popup object.
2013-04-16 11:16:41 +02:00
Michael Natterer
8bfb1769b7
app: use a GimpApplicator for floating selection compositing
2013-04-15 01:44:18 +02:00
Michael Natterer
07a220ee9e
app: port GimpImageMap to GimpApplicator
2013-04-14 22:46:52 +02:00
Michael Natterer
69a321ac29
app: turn GimpApplicator into a general-purpose "input + aux -> output" thing
...
which means adding a lot of proper API. Input, output and aux can be
pads or buffers. Make sure it uses the minimum possible graph in all
cases and doesn't reconfigure nodes unless needed. Port GimpPaintCore
to the new API.
2013-04-14 22:44:21 +02:00
Michael Natterer
1235013177
app: add local "private" variables to make drawable's FS code more readable
2013-04-12 21:07:56 +02:00
Michael Natterer
d1ab98e1c6
app: make GimpImageMap work again when there is no selection
2013-04-12 18:47:12 +02:00
Michael Natterer
38e983c724
app: fix regression: make the selection clip the FS again
2013-04-12 18:26:34 +02:00
Michael Natterer
05e6f6d848
app: simply merge the FS filter with the drawable to anchor the FS
2013-04-12 16:58:18 +02:00
Michael Natterer
39ab59e032
app: add gimp_drawable_get_floating_sel_filter()
2013-04-12 16:57:39 +02:00
Michael Natterer
b16f75b8af
app: make the FS' drawable update itself when the active components change
...
which removes more FS knowledge from the image.
2013-04-12 15:58:42 +02:00
Michael Natterer
538e3813be
app: make floating selection compositing honor the image's active components
...
This was a regression from 2.8
2013-04-12 15:54:05 +02:00
Michael Natterer
1e17f0aed1
app: port GimpImageMap to use the new drawable filters
...
which makes live update more responsive and removes tons of code, but
adds a delay with progress when finally committing the effect.
2013-04-12 14:35:27 +02:00
Michael Natterer
670fa2d670
app: add gimp_gegl_create_apply_node()
...
which is simply a more general version of
gimp_gegl_create_apply_buffer_node()
2013-04-12 14:34:20 +02:00
Michael Natterer
dc964956e7
app: add gimp_drawable_merge_filter() which applies a filter to a drawable
...
permanently, with undo and progress.
2013-04-12 14:31:50 +02:00
Michael Natterer
a1ddd7dfda
app: use the newly added drawable filter api to add/remove the fs filter
2013-04-12 12:56:01 +02:00
Michael Natterer
85fef12865
app: add gimpdrawable-filter.[ch] to access the filters
2013-04-12 12:55:15 +02:00
Michael Natterer
f3308e6ba3
app: add a GimpFilterStack to each GimpDrawable
...
which is part of the drawable's source_node, so we can generically
filter a drawable's pixels. Reading from the source_node will
transparently give the filtered results.
Turn floating selection compositing into a GimpFilter and add it to
the filter stack while we have a floating selection on the drawable.
2013-04-11 19:06:23 +02:00
Michael Natterer
7c96952bd4
app: add gimp_filter_stack_new(filter_type)
2013-04-11 19:04:51 +02:00
Michael Natterer
a203a270df
app: add gimp_filter_new(name)
2013-04-11 19:03:10 +02:00
Michael Natterer
fc2ec83723
app: simply put GimpImage's layer and channel stacks on top of each other
...
which gets rid of the gegl:over we used to combine them.
2013-04-11 14:40:41 +02:00
Michael Natterer
e7babfed2e
app: make sure GimpFilterStack's initial empty graph passes through
2013-04-11 14:37:43 +02:00
Michael Natterer
51d28340f3
app: always connect GimpFilterStack's input too
...
so it is actually a "filter" stack and not only an "output" stack :)
2013-04-11 13:03:37 +02:00
Michael Natterer
aa56bcd284
app: add new class GimpFilterStack factored out of GimpDrawableStack
...
and make it the parent class of GimpItemStack. Which means we now have
a generic stack of filters independent of any image items.
2013-04-11 12:25:11 +02:00
Michael Natterer
d4c3d35bd8
app: use "filter" not "drawable" in GimpDrawableStack's graph code
2013-04-11 12:25:11 +02:00
Michael Natterer
4ca746eab7
app: move the "is-last-node" property and API from drawable to filter
2013-04-11 12:25:11 +02:00
Michael Natterer
45a6ea432c
app: add new class GimpFilter as parent class of GimpItem
...
and move the item's GeglNode API there. The purpose of this is to
factor out "gimp object that manages a node".
2013-04-11 12:25:10 +02:00
Michael Natterer
f84ed04ee5
app: actually remove the node in gimp_item_remove_offset_node()
...
The function is currently unused, so nobody noticed.
2013-04-11 12:25:10 +02:00
Michael Natterer
754e4eb919
app: allow to pass NULL to gimp_window_set_primary_focus_widget()
2013-04-10 19:28:49 +02:00
Michael Natterer
5880685472
Bug 675549 - image region does not have focus unless clicked on
...
We cannot simply randomy move the focus from e.g. a text entry back to
the canvas. Instead introduce global handling of "Escape" and a
"primary_focus_widget" that is always set the the image window's
active canvas. When Escape is pressed, move the focus to that primary
focus widget, or beep if it is already there. Text widgets still get
the key events before that logic and can consume the Escape.
2013-04-09 15:41:20 +02:00
Michael Natterer
46f74d9f46
app: return GeglBuffer from gimp_image_contiguous_region_foo()
...
now all intermediate masks should be in "Y float" and avoid all
conversions.
2013-04-09 01:38:24 +02:00
Michael Natterer
ddc4a057e4
app: factor our more lowlevel GimpChannel code to GeglBuffer utils
2013-04-09 00:38:46 +02:00
Michael Natterer
75c9a0dc27
app: factor out gimp_channel_select_buffer() from select_channel()
2013-04-08 23:31:26 +02:00
Michael Natterer
3cb2756133
app: use float GeglBuffers directly where possible in gimpchannel-select.c
...
Saving tons of conversions between the selection's actual format and
"Y float", including saving tons of temporary buffers while
processing.
2013-04-08 22:52:26 +02:00
Michael Natterer
5cd8b98efb
app: factor out the core mask combine functions to gegl-only functions
...
so we can use them on plain GeglBuffers. Use them in
gimpchannel-combine.c for now.
2013-04-08 21:54:46 +02:00
Michael Henning
e839ae0955
app: speed up gimp_image_contiguous_region_by_seed using a temporary GeglBuffer
...
This is identical to c204b0ac41 , except
it avoids setting the buffer type of the drawable using a buffer copy.
(that issue is explained in d53deda61b )
2013-04-08 15:02:23 -04:00
Michael Natterer
586bb73293
app: add gimp_gegl_apply_feather()
...
and use it in gimp_channel_real_feather() so the magic factor of 3.5
to turn feather radius into gegl:gaussian-blur's std_dev is hidden
behind an API.
2013-04-08 14:16:33 +02:00
Michael Natterer
d49e33da4a
app: fix the last commit: it's n_components not 4, sigh
2013-04-08 03:33:39 +02:00
Michael Natterer
dd1f731cc9
app: fix format selection in gimpimage-contiguous-region
...
and also re-enable selecting by H, S, V. Doing that sometimes runs
into an infinite loop though, which I don't think is this code's
fault...
2013-04-08 03:14:06 +02:00
Michael Natterer
d53deda61b
Revert "core: speed up gimp_image_contiguous_region_by_seed using a temporary GeglBuffer"
...
This reverts commit c204b0ac41 , it's
a nice speedup we should keep, but we can't return a GimpChannel
of != image precision from that function. Needs more thinking.
2013-04-08 02:34:56 +02:00
Michael Henning
c204b0ac41
core: speed up gimp_image_contiguous_region_by_seed using a temporary GeglBuffer
...
By creating a temporary GeglBuffer of the correct format, we avoid a lot of
babl conversions. This is about four times faster than the previous code.
2013-04-07 14:31:51 -04:00
Michael Henning
229ab7caf1
core: remove unneeded call to gegl_buffer_sample_cleanup
2013-04-07 12:30:29 -04:00
Michael Natterer
236f9f91f9
Fix two warnings about possibly missing printf format attributes
2013-04-07 16:47:26 +02:00
Pedro Gimeno Fortea
faf2217811
Bug 696958 - In-image preview in Transform tools is off by one screen pixel
...
Simplify the loops without any significant loss in performance, separating
the positive and negative X directions to treat each correctly. Fixes this
bug.
2013-04-02 17:23:40 +02:00
Pedro Gimeno Fortea
c83e7790bf
app: Two mostly cosmetic changes
...
Use a temporary that is less expensive to refer to. Don't loop more
than necessary when comparing pairs.
2013-04-02 17:05:52 +02:00
Michael Natterer
1a23ceaa21
app: update GimpTileHandlerProjection's max_z when a propertiy changes
...
not for each gimp_tile_handler_projection_invalidate() call.
2013-04-01 01:26:43 +02:00
Michael Natterer
06968d9bf9
Bug 690325 - Image Display broken: a rectangle undrawn to the top left
...
Let GimpTileHandlerProjection know how large the projection is so it
can calculate the number of levels in the pyramid, and always
invalidate all levels.
2013-03-30 17:44:59 +01:00
Petr Kubiznak
194ef70d74
Bug 593167 - Support Windows in gimp_get_default_unit()
...
Function gimp_get_default_unit ported for Windows using standard GetLocaleInfo() function (from windows.h).
2013-03-30 10:19:57 -04:00