Commit Graph

1566 Commits

Author SHA1 Message Date
1badcb7ce9 app: add GIMP_PRECISION_U32 and all its formats 2012-05-02 17:51:19 +02:00
2e7944cad0 app: add GIMP_PRECISION_HALF for 16 bit floating point
and use babl_format_get_palette() to simplify some code.
2012-05-02 17:51:18 +02:00
92b4c66777 pdb: export gimp-image-get-precision 2012-05-02 17:51:17 +02:00
8918fd338b pdb/libgimp: export gimp-image-new-with-precision
And switch on precision awareness of a plug-in in the core when
possible, instead of in the libgimp wrappers.
2012-05-02 17:51:17 +02:00
3e4edc1aea pdb/libgimp: export enum GimpPrecision and gimp-image-convert-precision 2012-05-02 17:51:17 +02:00
21dfb8bd9f app/libgimp: enable plug-ins on high precision images
Add gimp_plugin_enable_precision() in libgimp which switches the
plug-in to deal with the drawables' real precision, call it from the
libgimp GeglBuffer and Babl format APIs. If it's not enabled, let the
core's plug-in convert the tiles to legacy formats when sending them
over the wire.
2012-05-02 17:51:14 +02:00
3a46cfbbc6 app/pdb: allow some more stuff on indexed by simply removing the restriction 2012-05-02 17:51:12 +02:00
3e0891b80c libgimp: sytle cleanup in GimpTileBackendPlugin
and use gimp_drawable_get_format() instead our own utility function.
2012-05-02 17:50:53 +02:00
79464eefce libgimp: add gimp_drawable_get_format() 2012-05-02 17:50:53 +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
cde58408fa app: remove the legacy levels cruft 2012-05-02 17:46:12 +02:00
2ff19d7087 libgimp: flush underlying drawable on gegl_buffer_flush 2012-05-02 17:46:08 +02:00
efb82673de libgimp: make GimpTileBackendPlugin properly private, and some cleanup 2012-05-02 17:46:08 +02:00
4bdbff08d7 libgimp: add a GeglBuffer backend for plug-ins
Also added an API to get GeglBuffers for drawables, you choose whether you
get.
2012-05-02 17:46:08 +02:00
e01189ca77 app: remove checks from stuff that now works on indexed layers 2012-05-02 17:46:04 +02:00
0025f9f354 fix typo "equalizee" 2012-04-12 01:28:30 +02:00
bd591d73cf libgimp: add gimp_ink_blob_type_get_type() to gimp.def 2012-03-02 12:20:21 +01:00
b952f80be0 Bug 658477 - add PDB support for more paint and ink options
Apply heavily modified patch from Es Swartz which adds PDB API for
brush size, angle and aspect ratio, as well as a full interface for
ink. Changed to patch to add all procedures to the "context" group
instead of creating new PDB groups, properly use the new
GimpPDBContext APIs for paint options, and did some general cleanup.
(Warning, completely untested).
2012-03-01 12:58:26 +01:00
056e09a6cb Remove the makefile.msc build system, it is unmaintained since 2008 2011-12-16 15:53:56 +01:00
921922e95d libgimp: Change comment to point at correct alternate function 2011-12-07 10:31:24 +05:30
ebbad40885 Doc fixes in both source comments and gtk-doc files 2011-11-25 21:39:55 +01:00
e46aee647d libgimp: missed to commit a generated comment change 2011-11-03 22:47:12 +01:00
634cf6d620 pdb: add gimp-dynamics-refresh and gimp-dynamics-get-list 2011-10-31 22:22:19 +01:00
01344f811d pdb: add dynamics accessors to the context procedures 2011-10-31 21:08:12 +01:00
0cb9ffa0ec libgimp: Drop dead assignment 2011-10-12 17:00:26 +05:30
72b0ef397f libgimp: use gtk_box_new() 2011-09-30 10:53:32 +02:00
e071bfa3b6 Bug 656716 - Have a procedure to get a layer from its name
Add gimp_image_get_[layer|channel|vectors]_by_name().
2011-09-24 16:35:59 +02:00
da37e9ff3e Bug 596410 - gimp-image-get-filename returns NULL for imported files
Make gimp_image_get_uri() and gimp_image_get_filename() behave as in
the GIMP 2.6 days. Add new functions gimp_image_get_xcf_uri(),
gimp_image_get_exported_uri() and gimp_image_get_imported_uri().
2011-08-12 21:15:16 +02:00
9c6338900e libgimp*: don't derive from GtkHBox and GtkVBox in libgimp either
I know this is not 100% compatible, but is in fact absolutely safe to
change unless somebody is using the headers in ways that are totally
wrong.
2011-07-27 19:53:34 +02:00
c35ff719a7 app/libgimp*: remove stuff found by -Wunused-but-set-variable 2011-05-01 23:23:19 +02:00
856c89a845 libgimp: add guards that #error out if individual files are included 2011-04-28 19:59:52 +02:00
cc47b2a600 libgimpwidgets/color: move the cairo color utility functions to libgimpcolor
Add CAIRO_CFLAGS to a lot of Makefiles to make this possible, and
because they pull in cairo via the libgimp headers.
2011-04-28 15:50:39 +02:00
ee03177be8 libgimp: don't include individual files from libgimp* 2011-04-28 14:24:59 +02:00
3d7e51c52f libgimp: #include "libgimpbase/gimpbase.h" instead of individual files 2011-04-28 13:09:30 +02:00
6877a14caf Fix gtk-doc for gimp_layer_new_from_surface() 2011-04-27 20:35:56 +05:30
1616151b0e libgimp: remove opacity and mode parameters from gimp_layer_new_from_surface()
They are passed as default values in almost all cases, and can simply
be set later if needed.
2011-04-21 21:10:37 +02:00
374dd50c43 libgimp: add gimp_layer_new_from_surface()
and to enable that, make libgimp depend on Cairo.
2011-04-20 23:58:00 +02:00
bdc08aae83 libgimp: move pixbuf functions from gimpui.def to gimp.def 2011-04-20 23:54:32 +02:00
058c0b2a0d libgimp: s/GLIB_CFLAGS/GDK_PIXBUF_CFLAGS/ for libgimp in Makefile.am
and some formatting cleanup.
2011-04-20 23:38:49 +02:00
26bf2b0cd7 Make libgimp depend on GdkPixbuf
Move the pixbuf layer and image thumbnail function from libgimpui to
libgimp and move gimp_layer_new_from_pixbuf() to gimplayer.[ch] where
it belongs. Change gimp-2.0.pc accordingly, adapt plug-in Makefiles
and update devel-docs.
2011-04-20 20:04:35 +02:00
139fb874a3 Fixed grammatical error in help text for gimp-context-set-feather-radius 2011-04-16 15:00:29 -04:00
7415ef3a8e libgimp: Update gimp.def 2011-04-09 19:12:20 +02:00
bf1eca22a6 Added PDB procedure gimp-context-set-defaults to reset context settings 2011-04-07 22:43:37 -04:00
0d617dabea Fixed a typo (prodecure -> procedure) 2011-04-07 22:43:37 -04:00
24ee3370b8 Depend on GTK+ >= 2.24.3, cairo >= 1.20.1, gdk-pixbuf >= 2.22.1
and completely separate configure and sanity checks for gdk-pixbuf
from GTK+, because it's now distributed as a separate package. Remove
all sorts of conditional compiling based on GDK_CHECK_VERSION() and
CAIRO_VERSION.
2011-04-06 19:58:24 +02:00
1a359a138d pdb: don't recommend deprecated replacement procedures for deprecated procedures 2011-03-25 22:03:14 +01:00
d6c4d21190 Use guints for flags 2011-03-24 11:03:46 +05:30
18fd05d33f libgimp: Update and sort gimp.def with parasite API changes 2011-03-09 07:41:09 +01:00
bb6436cb44 libgimp: deprecate and rename the global pararasite functions
just as it was done for items and images. Remove the "parasite" PDB
group completely.
2011-03-08 14:31:04 +01:00
7fae2b2d40 libgimp: rename the "misc" pdb group to "gimp"
So we finally have a proper place for PDB procedures that don't act on
an object like image, item, ...
2011-03-08 13:58:56 +01:00