Commit Graph

31517 Commits

Author SHA1 Message Date
3e119c5af7 libgimpcolor: add gimp_rgb[a]_set,get_pixel()
which converts from/to any pixel format using Babl. Added tons of
includes and CFLAGS now that libgimpcolor publically uses Babl.
2012-05-02 17:50:43 +02:00
7f437d7d53 app: remove gimp_image_get_foreground,background()
and use gimp_context_get_foreground,background_pixel() instead.
2012-05-02 17:50:43 +02:00
8dfea70191 app: fix GIMP_TIMER_END() to take an arbitrary string
not a string constant that only works in the C preprocessor, and add a
timer to gimp_apply_operation().
2012-05-02 17:50:43 +02:00
1921fa7de3 app: always create a new tool in filters_filter_cmd_callback()
Things will get more complicated in GimpOperationTool soon, and we
don't want to mess around with reconfiguring *everything* in the tool.
2012-05-02 17:50:43 +02:00
29e7837441 app: remove gimpdrawable-process.[ch] 2012-05-02 17:50:43 +02:00
28913496bb app: use a GimpSpinScale instead of a scale entry in the prop_table 2012-05-02 17:50:43 +02:00
8bc6f1ee09 app: add parent_type parameter to gimp_gegl_get_config_proxy()
and derive from that type. Use GimpImageMapConfig as base class for
GimpOperationTool's config.
2012-05-02 17:50:42 +02:00
e8cc9d1bf5 app: turn gimp_image_map_tool_add_settings_gui() into a virtual function
and change it to return the settings ui, not add it.
2012-05-02 17:50:42 +02:00
8e31fdf363 app: remove paint-funcs/reduce-region.[ch] 2012-05-02 17:50:42 +02:00
23811be3f6 app: remove paint-funcs/scale-region.[ch] 2012-05-02 17:50:42 +02:00
1a34171e68 app: remove the legacy option in gimp_drawable_scale() 2012-05-02 17:50:42 +02:00
87b7af7fa5 app: remove drawable->private->format, its buffer has a format already
Also, make group layer type conversion much less hackish by using the
same kind of temporary states that are used for reallocating its
projection on size change.
2012-05-02 17:50:42 +02:00
49de3d5292 app: follow changes in GeglOperation API 2012-05-02 17:50:42 +02:00
deb9b9caa8 app: replace GimpProjectable::get_image_type() by ::get_format()
and change semantics to returning the format it wants to be projected
in, not its actual format.
2012-05-02 17:50:42 +02:00
2a853cd1ee app: remove GimpPickable::get_bytes() 2012-05-02 17:50:42 +02:00
5e754a9641 app: remove GimpPickable::get_image_type() 2012-05-02 17:50:42 +02:00
5fba7c70c7 app: replace the tile pyramid's GimpImageType by bytes, it needs nothing else 2012-05-02 17:50:41 +02:00
e00598abed app: remove the legacy gimp-transform-region code 2012-05-02 17:50:41 +02:00
f4a4aa2133 app: use a GEGL graph for perspective clone's transform
Horribly slow, but seems to work.
2012-05-02 17:50:41 +02:00
95327090c0 app: remove legacy support from gimpdrawable-transform.c 2012-05-02 17:50:41 +02:00
867da8f293 app: add gimp_context_get_foreground,background_pixel()
which takes a Babl format to convert from/to.
Include <gegl.h> in a million places.
2012-05-02 17:50:41 +02:00
37c895ba68 app: have the display renderer ask for the projection's format not image_type 2012-05-02 17:50:40 +02:00
39cca4aabd app: more GimpImageType -> Babl 2012-05-02 17:50:40 +02:00
89d525c970 app: remove legacy support from GimpImageMap 2012-05-02 17:50:40 +02:00
98226d0b36 app: remove legayc support from GimpImageMapTool 2012-05-02 17:50:40 +02:00
f248324fd3 app: remove the lagacy hue-saturation cruft
it's unclear whether the operation is correct, but that can be sorted
out on master and merged.
2012-05-02 17:50:40 +02:00
8008b75411 app: forgot the GimpImageType -> Babl change in pick_color() here 2012-05-02 17:50:39 +02:00
23370d9fad app: remove gimp_image_get_color() 2012-05-02 17:50:39 +02:00
48c796e748 app: port gimp_image_contiguous_region_by_seed() to babl_process()
instead of gimp_image_get_color().
2012-05-02 17:50:39 +02:00
932b80f612 app: port gimp_image_contiguous_region_by_color() to GEGL 2012-05-02 17:50:39 +02:00
5713e6ecfb app: don't use gimp_image_get_color() in GimpPickable
A fish does the job just fine.
2012-05-02 17:50:39 +02:00
75b87f1a1d app: don't use gimp_image_get_color() in gimp_palette_import_extract()
GEGL can deliver the image data as RGBA right away.
2012-05-02 17:50:39 +02:00
b74a2dbf0c app: use Babl formats, not GimpImageType, in gimp_selection_extract() 2012-05-02 17:50:39 +02:00
36e982e2ed app: port gimp_image_pick_color() to return a Babl format
instead of a GimpImageType.
2012-05-02 17:50:39 +02:00
c8481fd19e app: increase the tile size for plug-ins to 128x128 2012-05-02 17:50:39 +02:00
25f4769c77 app: formatting cleanup in gimpimage-convert.c 2012-05-02 17:50:38 +02:00
031978c4c3 app: port gimpimage-convert.c to GEGL 2012-05-02 17:50:38 +02:00
1098eabc70 app: use the same indexed Babl formats during an image's lifetime
And only reconfigure them when the colormap changes. This way
undo/redo of layer adding/removing works across type conversions,
because the layers need to be in the same format as the image's
indexed format.
2012-05-02 17:50:38 +02:00
e540444b56 app: fix registration of babl formats 2012-05-02 17:50:38 +02:00
69cd6d033a app: fix registration of babl_format("A u8") 2012-05-02 17:50:38 +02:00
76546f7e7c rename lanczos to lohalo
GEGL had a broken lanczos implementation, the lohalo implementation is better
anyways (at least when passed a proper scale matrix).
2012-05-02 17:50:38 +02:00
52e40bce42 pdb: port drawable pixel access API to GEGL 2012-05-02 17:50:38 +02:00
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
2c0fde88f2 app: remove the legacy color-balance cruft 2012-05-02 17:50:38 +02:00
1f7cf2dd6b pdb: add new group plug-in-compat for compat procedures of removed plug-ins
For now contains a pixelize implementation, but it's still called
gimp-plug-in-pixelize, not plug-in-pixelize.
2012-05-02 17:50:37 +02:00
52f92de6e0 plugins/newsprint: remove assumption that tiles are square 2012-05-02 17:50:37 +02:00
2e33fc15b5 app: remove includes from app/plug-in/ 2012-05-02 17:50:37 +02:00
acd3ce41b0 app: port the entire plug-in tile communication to using GeglBuffers
which means we are now completely independent of TileManager tile
sizes. The "tile" size used to talk to plug-ins is now defined as:
2012-05-02 17:50:37 +02:00
3a48101b9d app: use below new function for shapeburst blend and cage tool progress 2012-05-02 17:50:37 +02:00
315881065b app: add gimp_gegl_progress_connect()
which connects to notify::progress of the operation inside a node an
updates a GimpProgress accordingly.
2012-05-02 17:50:37 +02:00