02f76b4c7b
app: rename GimpImage.selected_symmetry to .active_symmetry
...
because that's the usual naming. Also change the set/get API accordingly.
2016-02-03 21:25:17 +01:00
76f573c981
Bug 648776 - mirror symmetries.
...
You can now set any paint tool to mirror painting relatively
horizontal/vertical axis or a central point (any combination of these 3
symmetries).
This has been implemented as a new multi-stroke core, where every stroke
is actually handled as a multi-stroke (default of size 1).
This is also the first usage of custom guides for symmetry guiding.
Current version has to be activated in the playground.
2016-02-02 21:15:13 +01:00
4479cedf13
app: rename mask enum values GIMP_COMPONENT_RED,GREEN,BLUE etc.
...
to GIMP_COMPONENT_MASK_RED,GREEN,BLUE etc.
2015-09-07 00:35:02 +02:00
7e6320497e
follow gegl api changes from commit af5361ca8d, with an abyss policy argument
...
to gegl_buffer_copy.
2015-05-25 01:27:31 +02:00
db2ea536da
app: add an optional gegl:cache at the output of GimpApplicator
...
Add "gboolean use_cache" to gimp_applicator_new(). Don't use a cache
anywhere but in GimpImageMap because it incrementally fills that cache
via the projection update. In gimp_drawable_merge_filter(), get that
cache and pass it to gimp_gegl_apply_cached_operation() which then
avoids doing the work twice for the already cached results. Win!
2014-06-18 18:50:53 +02:00
697572ccc0
app,libgimp*: fix includes to follow our include policy
...
- don't include <gdk-pixbuf/gdk-pixbuf.h> in headers in app/
- instead, include it in many .c files instead of <glib-object.h>,
finally acknowledging the fact that app/ depends on gdk-pixbuf almost
globally
- fix up includes as if libgimpbase depended in GIO, which it soon will
2013-10-15 01:58:39 +02:00
125cf2a2a3
app: use the image instead of the projection for accessing a pickable
2013-09-13 23:29:06 +02:00
d1795ac204
Bug 700193 - undoing paint tools doesn't update last_coords properly
...
paint_core->start_coords is in fact the last stroke's endpoint and
only used for storing it in GimpPaintCoreUndo, so the last endpoint
can be resotred for straight-line painting after an undo. Make the
code actually doing that.
2013-07-15 00:41:43 +02:00
741792875e
app: add the GimpApplicator back for painting, but make its use optional
...
Default to using the new code. This is out of pure curiosity how
GEGL changes affect painting with a purely graph-based method.
2013-05-21 18:55:03 +02:00
cd91144f9e
Faster paintcore
...
Directly access the brush and paint buffers rather than using
GEGL iterators.
Replicate the relevant parts of GimpApplicator using direct
access.
2013-05-21 04:03:28 -07:00
9c93df2d4b
app: add gimp_drawable_get_linear() which currently always returns FALSE
...
Add "linear" parameter to GimpApplicator. Pass the drawable's "linear"
to the applicator, and to all calls to gimp_gegl_mode_node_set_mode(),
instead of hardcoding FALSE everywhere.
2013-04-27 08:41:06 +02:00
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
eb89a545d5
app: move core/gimp-apply-operation.[ch] to gegl/gimp-gegl-apply-operation.[ch]
2012-10-22 16:03:40 +02:00
930832d542
app: keep GimpPaintCore->canvas_buffer around as "Y float"
...
instead of "Y u8" because all operations on it are using float.
2012-09-19 00:06:35 +02:00
bef35224b3
app: small cleanup in gimp_paint_core_start()
2012-06-11 12:39:42 +02:00
e254fd7c4d
app: actually commit the rest of the patch...
2012-05-26 12:42:52 +02:00
4dcd1f3ad4
app: use plain gegl_buffer_new() and _dup(), not the gimp_gegl_ variants
...
unless the buffers end up being drawable->buffer.
2012-05-20 22:02:59 +02:00
aee7ddd56d
app: remove the !use_gegl case from gimp_drawable_apply_buffer()
...
and its last three parameters because they were only used for legacy
floating selection projection.
2012-05-19 00:14:51 +02:00
5738c866a1
app: rename gimp_gegl_combine_mask() to gimp_gegl_combine_mask_weird()
...
because it is.
2012-05-06 22:51:11 +02:00
a3a62b4546
app: add shortcut functions gimp_dynamics_get_foo_value()
...
and use them for simple use cases instead of dynamics_get_output() and
output_get_foo_value().
2012-05-02 17:51:19 +02:00
f857f1f53f
app: fold the foo_to_bar_buffer() functions into their callers
...
They contained a single function call now.
2012-05-02 17:51:12 +02:00
4772d3e832
app: add gimp_gegl_combine_mask() and use it in GimpPaintCore
2012-05-02 17:51:12 +02:00
c07790fa54
app: add gimp_gegl_apply_mask() and use it in GimpPaintCore
2012-05-02 17:51:12 +02:00
a016b8102b
app: change the maskPR in gimp_drawable_replace_buffer() to GeglBuffer
2012-05-02 17:51:12 +02:00
5273a6dbab
app: the paint_mask buffer in gimp_paint_core_replace() contains a GimpTempBuf
...
not a TileManager, so use the right API to get a PixelRegion on it.
2012-05-02 17:51:12 +02:00
685a48d59a
app: move gimp_gegl_buffer_get_temp_buf() to gimptempbuf.[ch]
2012-05-02 17:51:02 +02:00
25030ce6c4
app: no need to clear newly created buffers
...
Freshly created GeglBuffers, that are native GeglBuffers are already sparse
and all tiles are implicit COW empty tiles.
2012-05-02 17:51:01 +02:00
bdf6b48138
app: move GimpTempBuf from base/ to core/
...
and forget about include policy in base/, it's scheduled for removal
anyway.
2012-05-02 17:51:01 +02:00
36fb008197
app: port GimpPaintCore's paste and replase APIs to GeglBuffer
2012-05-02 17:50:54 +02:00
6efd812d08
app: s/GIMP_GEGL_RECT/GEGL_RECTANGLE/
...
Defining GeglRectangle inline is so useful that it has been added to
GEGL.
2012-05-02 17:50:52 +02:00
c5c555c834
app: add "take_ownerspip" param to gimp_temp_buf_create_buffer()
...
and get rid of some more intermediate buffer creation/destruction, and
some redundant temp_buf_free() plus g_object_unref().
2012-05-02 17:50:51 +02:00
7b5252ac54
app: replace GimpPaintCore::get_paint_area() by ::get_paint_buffer()
...
and remove the public TempBuf based get_paint_area() API.
2012-05-02 17:50:51 +02:00
60ae55f87b
app: don't return bogus paint buffers if get_paint_area() returned NULL
2012-05-02 17:50:50 +02:00
12ac0bea13
app: add gimp_paint_core_get_paint_buffer()
...
which is the same as gimp_paint_core_get_paint_area() but returns a
GeglBuffer to paint to, not a TempBuf.
2012-05-02 17:50:47 +02:00
1dbadb772d
app: rename GimpPaintCore->canvas_buf to ->paint_area
...
because that's what it's called in public API. This has confused me
long enough now.
2012-05-02 17:50:46 +02:00
2af0681587
app: don't create copies in gimp_paint_core_get_orig_image,proj()
...
and instead simply return the paint_core owned buffers. Also, move
graph creation and source buffer fiddling out of perspective clone's
inner loop, and set an area to be processed manually, which makes it
responsive again.
2012-05-02 17:50:46 +02:00
7c2c671703
app: make gimp_paint_core_get_orig_image,proj() return GeglBuffers
...
and change their users accordingly, getting rid of temp buffers and
useless copies.
2012-05-02 17:50:44 +02:00
eb2e658408
app: replace GimpPaintCore->canvas_buf by a GeglBuffer
2012-05-02 17:50:43 +02:00
c9d0386e0c
app: replace GimpPaintCore->saved_proj_tiles by a GeglBuffer
2012-05-02 17:50:43 +02:00
2a853cd1ee
app: remove GimpPickable::get_bytes()
2012-05-02 17:50:42 +02:00
7223af17a2
app: completely port GimpDrawable::apply_region()'s API to GeglBuffer
...
and pass lots of coords that were hidden inside PixelRegions
explicitly.
2012-05-02 17:46:12 +02:00
061e044e0a
app: change GimpDrawable::replace_region() by ::replace_buffer()
2012-05-02 17:46:12 +02:00
3bb973f24b
app: pass the right undo buffer and extents to gimp_drawable_push_undo()
...
the coords need to be in drawable bounds now that we got rid of the
weird sparse logic.
2012-05-02 17:46:11 +02:00
4bcddb04a2
app: turn gimp_drawable_apply_buffer()'s src1_tiles argument into base_buffer
2012-05-02 17:46:11 +02:00
ca734f91b7
app: port gimp_paint_core_paste() to gimp_drawable_apply_buffer()
...
using the new TempBuf-GeglBuffer.
2012-05-02 17:46:11 +02:00
6c59c45612
app: replace GimpPaintCore's undo_tiles by a GeglBuffer
...
and simply use a dumb straight copy of the drawable, it's GEGL's job
to do proper COW.
2012-05-02 17:46:10 +02:00
a0c1007b66
app: port GimpDrawableUndo, GimpDrawable::push_undo() and ::swap_tiles()
...
which gets rid of the manual implementation of sparse undo buffers,
but GEGL will take care of proper COW here soo enough.
2012-05-02 17:46:08 +02:00
39368a410d
plugged memory leaks
2012-02-07 17:32:02 +01:00
d32fa80d1d
app: Move smooth to painttool and clean up the rest
2011-09-14 20:44:45 +03:00
79dfee2c9e
Revert "app: Remove obsolete way of keeping track of last painted dab"
...
This reverts commit 1b62a7bff3 .
2011-09-11 22:47:55 +03:00