Michael Natterer
c9e75b1fa0
app: some cleanup in the new paint options code
2014-11-17 21:45:01 +01:00
Alexia Death
32e545277b
app: fixes for force and hardness
2014-11-17 15:24:59 +02:00
Alexia Death
4421070a6a
app: add explicit paint options sliders for hardness and force
2014-11-17 13:13:18 +02:00
Alexia Death
9a953a9239
app: locking brush size to zoom
2014-11-17 00:03:10 +02:00
Alexia Death
0c6848e79e
app: make spacing override part of paint options
2014-11-13 00:08:40 +02:00
Alexia Death
69e09e0775
app: whitespace fix
2014-11-13 00:08:38 +02:00
Michael Natterer
5d8824f42e
app: move all GimpBrush members to a private struct
...
Add and use accessors for width, height, x_axis and y_axis.
2014-10-12 01:16:32 +02:00
Michael Natterer
b5530e9e3d
Use the new GeglAccessMode enum instead of the old values
2014-07-02 02:00:35 +02:00
Michael Natterer
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
Daniel Sabo
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
Téo Mazars
afa57a507c
Bug 641951 - Weird spacing with flat brushes
...
Take brush orientation into account when computing distances in the
coordinate space of the brush.
2013-03-23 18:23:18 +01:00
Daniel Sabo
4c7dc6a494
app: cache values to speed up GEGL paintbrush
...
Cache values in GimpApplicator to avoid the overhead of gegl_node_set().
Don't reallocate paint_core->paint_buffer if it's already the correct size.
2012-12-08 19:54:24 +01:00
Michael Natterer
957a4ba2f6
app: port gimp_brush_core_color_area_with_pixmap() to "RGBA float" too
...
forgetting this one made pixmap brush painting look really funny.
2012-09-26 11:29:28 +02:00
Michael Natterer
a5953020ad
app: keep GimpBrushCore's solid mask cache around as "Y float"
...
because that's how we later access it.
2012-09-23 00:01:35 +02:00
Michael Natterer
eb2f638e7d
app: create the paint tools' paint_buffer as RGBA float
...
instead of the drawable's native format plus alpha, because we access
these buffers as RGBA float later.
2012-09-21 10:51:23 +02:00
Michael Natterer
5247f461aa
app: remove paint-funcs-types.h
2012-05-19 01:13:21 +02:00
Michael Natterer
47c495a8f9
app: don't leak all buffers in gimp_brush_core_replace_canvas()
2012-05-07 02:47:39 +02:00
Michael Natterer
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
Michael Natterer
1bbd3d40a8
app: make the GimpTempBuf struct private and add accessors
2012-05-02 17:51:12 +02:00
Michael Natterer
028d492937
app: GimpBrushCore: hardode one less brush mask format
2012-05-02 17:51:11 +02:00
Michael Natterer
678255604d
app: add a GimpPrecision enum that for now contains GIMP_PRECISION_U8
...
Add gimp_image_get_precision(), and a "precision" argument to
gimp_babl_format(). Change code accordingly and do some more format
related cleanups.
2012-05-02 17:51:09 +02:00
Michael Natterer
3af70584d0
app: remove bpp <-> format conversion stuff from gimp-gegl-utils.[ch]
...
Fix stuff by picking formats as we get data from the "outside", like a
GdkPixbuf, and pass around more proper formats from where we know them.
2012-05-02 17:51:08 +02:00
Michael Natterer
9a4d84e683
app: port gimp_brush_core_color_area_with_pixmap() to GeglBufferIterator
...
This can be simplified, needs revisiting.
2012-05-02 17:51:03 +02:00
Michael Natterer
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
Michael Natterer
dccb909009
app: make GimpTempBuf reference counted
...
and remove the "take_ownership" parameter from
gimp_temp_buf_create_buffer(), simply always ref the buf.
2012-05-02 17:51:00 +02:00
Michael Natterer
d5d8e36d21
app: gimp_-namespace all GimpTempBuf functions
2012-05-02 17:51:00 +02:00
Michael Natterer
42a5f01be3
app: rename TempBuf to GimpTempBuf
2012-05-02 17:51:00 +02:00
Michael Natterer
7441a1f6f7
app: turn the TempBuf's "bytes" into "format" and port everything to it
2012-05-02 17:50:59 +02:00
Michael Natterer
ff86f85744
app: remove x, y and color parameters from temp_buf_new()
...
Fix the places that passed the color by either temp_buf_data_clear()
or memset(), and assign x and y manually, they are going to vanish
completely soon.
2012-05-02 17:50:58 +02:00
Michael Natterer
0e9581b956
app: pass the paint area's coords to gimp_brush_core_color_area_with_pixmap()
...
They are no longer stored in the paint area TempBuf.
2012-05-02 17:50:58 +02:00
Michael Natterer
36fb008197
app: port GimpPaintCore's paste and replase APIs to GeglBuffer
2012-05-02 17:50:54 +02:00
Michael Natterer
49dcc3d78a
app: remove obsolete include
2012-05-02 17:50:51 +02:00
Michael Natterer
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
Michael Natterer
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
Michael Natterer
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
Michael Natterer
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
Øyvind Kolås
ee97c1f4ff
app: correct usage of babl formats
...
GIMP was doing evil hacks lying to GEGL about it's pixels being in a linear
color space when they are not. This causes incorrect rendering, makes gaussian
blur misbehave etc.
The legacy projection modes should be implemented using the same 2.2 gamma
formats that are correct to specify for sRGB data. (for proper color
management in higher bitdepths; icc backend babl formats should be used.)
For the old image modes correct babl formats are:
R'G'B'A u8 - 8 bit RGB with 2.2 gamma (sRGB) with linear alpha component
R'G'B' u8 - 8 bit RGB with 2.2 gamma (sRGB)
Y'A u8 - 8 bit Grayscale with 2.2 gamma with linear alpha component
Y' u8 - 8 bit Grayscale with 2.2 gamma
Y u8 - 8 bit linear data, used for masks/channels
A u8 - 8 bit linear alpha
-----------------------------------------------
RGBA float - 32bit floating point linear light RGB
RaGaBaA float - 32bit floating point linear light RGB, premultiplied alpha
to be used for processing that needs to scale by the alpha,
(blurs, resampling etc)
R'G'B'A float - 32bit floating point sRGB with gamma, to be used where
the result depends on being closer to perceptual when
processing, can be used a cheaper alternative to CIE Lab
based modes.
-----------------------------------------------
The legacy layer modes should use the formats with gamma 2.2 only for loading
and rendering legacy XCF files correctly, in the brave new world compositing
should most likely be done in linear light with "RGBA float" and even better
"RaGaBaA float" like GEGL does for porter duff and other compositing modes.
The ability to chose the legacy layer modes should probably be hidden from the
user unless an old .xcf has been opened.
2012-05-02 17:50:38 +02:00
Michael Natterer
9a09d3a762
app: drop "babl" from gimp_foo_get_babl_format[_with_alpha]()
2012-05-02 17:45:58 +02:00
Michael Natterer
92a3187571
app: optimize gimp_brush_core_paint_line_pixmap_mask() a lot
...
by using one single call to babl_process() for one line if the pixmap.
2012-05-02 17:45:58 +02:00
Michael Natterer
57ed75eca4
app: use Babl in gimp_brush_core_paint_line_pixmap_mask()
...
to convert the brush pixmap's colors. This code still needs some
love...
2012-05-02 17:45:57 +02:00
Alexia Death
4fe9955b3e
app: fix some brushes not going small enough correctly
...
That limit may need to be removed completely some day...
2012-01-20 21:12:19 +02:00
Alexia Death
72fb271e00
app: Bug 667241 - Unable to paint after switching away from paint tool using fade tapering
...
Make sure we up the pixel count when we bail in interpolate on 0-sized brush.
2012-01-09 23:31:33 +02:00
Alexia Death
d32fa80d1d
app: Move smooth to painttool and clean up the rest
2011-09-14 20:44:45 +03:00
Alexia Death
159ee0381d
app: Complete the reversal of last patch
2011-09-11 22:48:02 +03:00
Alexia Death
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
Alexia Death
8f11e8743d
app: Don't mark coord done untill its actually been painted
2011-09-11 21:56:33 +03:00
Alexia Death
1b62a7bff3
app: Remove obsolete way of keeping track of last painted dab
2011-09-11 13:23:05 +03:00
Alexia Death
2528f656b5
app: remove call to possibly buggy and un-needed scale clamp
...
It's likely that the removed call and function were causing
random drawing artefacts, but as this was once in a blue
moon bug, I have just a guess to go by however, testing
revealed no regressions, so pushing.
2011-09-10 21:47:52 +03:00
Michael Natterer
391c74899c
app: rename gimp_brush_start_use() to gimp_brush_begin_use()
2011-04-12 09:06:22 +02:00
Michael Natterer
0315f483e6
app: some general GimpPaintCore cleanup
2011-04-06 09:11:25 +02:00