Commit Graph

20 Commits

Author SHA1 Message Date
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 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 3b936fe595 app: GimpImageType -> Babl in GipmBrushClipboard 2012-05-02 17:50:46 +02:00
Michael Natterer 93009ef274 app: use gimp_temp_buf_create_buffer() all over the place
instead of creating linear buffers manually.
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 f8c29b2532 app: remove obsolete includes from gimpbrushclipboard.c 2012-05-02 17:45:53 +02:00
Michael Natterer 8cc2a71b81 app: create GimpBrushClipboard's buffers with GEGL 2012-05-02 17:45:53 +02:00
Michael Natterer d771249466 app: completely port GimpBuffer to using GeglBuffer not TileManager 2012-05-02 17:45:47 +02:00
Michael Natterer 5e4eee4653 app: implement GObject::constructed() instead of ::constructor() 2011-01-12 22:53:58 +01:00
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Michael Natterer 5503e6a055 Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h had a
2008-10-09  Michael Natterer  <mitch@gimp.org>

	Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
	had a GEGL dependency (they will have in the next commit, but I
	wanted to keep the commit separate).

	* app/dialogs/Makefile.am
	* app/file/Makefile.am
	* app/gui/Makefile.am
	* app/menus/Makefile.am
	* app/paint/Makefile.am
	* app/plug-in/Makefile.am
	* app/text/Makefile.am
	* app/vectors/Makefile.am
	* app/widgets/Makefile.am
	* app/xcf/Makefile.am: add GEGL_CFLAGS.

	* app/actions/*.c
	* app/core/*.c
	* app/dialogs/*.c
	* app/display/*.c
	* app/file/*.c
	* app/gui/*.c
	* app/menus/*.c
	* app/paint/*.c
	* app/pdb/gimppdb-utils.c
	* app/pdb/gimpprocedure.c
	* app/plug-in/*.c
	* app/text/*.c
	* app/tools/*.c
	* app/vectors/*.c
	* app/widgets/*.c
	* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
	to all files which include a drawable subclass or gimpimage.h

	* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
	in all generated files.

	* app/pdb/*-cmds.c: regenerated.

	* data/images/gimp-splash.png: the goat is still sleeping.
	By Aurore Derriennic.


svn path=/trunk/; revision=27202
2008-10-09 20:24:04 +00:00
Sven Neumann 4eb3689b62 added gimp_buffer_get_tiles().
2008-08-07  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbuffer.[ch]: added gimp_buffer_get_tiles().

	* app/actions/edit-commands.c
	* app/core/gimpbrushclipboard.c
	* app/core/gimppatternclipboard.c: use the new accessor 
function.


svn path=/trunk/; revision=26426
2008-08-07 17:23:45 +00:00
Sven Neumann 241bd2980f for an opaque buffer, initialize the brush mask with 255 instead of 0.
2008-05-14  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrushclipboard.c
	(gimp_brush_clipboard_buffer_changed): for an opaque buffer,
	initialize the brush mask with 255 instead of 0.  Fixes bug 
#532886.



svn path=/trunk/; revision=25661
2008-05-14 07:04:41 +00:00
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Michael Natterer 146e063f0a app/core/gimpbrushclipboard.c app/core/gimppatternclipboard.c
2006-11-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrushclipboard.c
	* app/core/gimppatternclipboard.c
	* app/core/gimptooloptions.c
	* app/core/gimpundo.c
	* app/widgets/gimpdevicestatus.c
	* app/widgets/gimpdock.c
	* app/widgets/gimpimageparasiteview.c
	* app/widgets/gimpimagepropview.c: no need to cast the return
	value of g_value_get_object(), it's a gpointer.
2006-11-25 14:57:26 +00:00
Sven Neumann c3448b2cbf It makes more sense to have GimpData::dirty indicate a name change than to
2006-05-23  Sven Neumann  <sven@gimp.org>

	It makes more sense to have GimpData::dirty indicate a name change
	than to invalidate the previews whenever the name changes.

	* app/core/gimpdata.c: call gimp_object_name_changed() from
	gimp_data_real_dirty() instead of implementing
	GimpObject::name-changed and calling gimp_data_dirty() from there.

	* app/core/gimpbrushclipboard.c
	* app/core/gimppalette.c
	* app/core/gimppatternclipboard.c: call gimp_data_dirty() in place
	of gimp_object_name_changed().

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_dirty):
	chain up unconditionally.
2006-05-23 15:39:45 +00:00
Michael Natterer aebf12dfb9 app/core/gimpbrushclipboard.c (gimp_brush_clipboard_buffer_changed) limit
2006-05-17  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrushclipboard.c
	(gimp_brush_clipboard_buffer_changed)
	* app/core/gimppatternclipboard.c
	(gimp_pattern_clipboard_buffer_changed): limit the size of
	clipboard brushes and patterns to 512x512 pixels to prevent OOM
	conditions when copying from huge drawables.
2006-05-17 19:00:49 +00:00
Michael Natterer 1b60573fae app/core/gimpbrushclipboard.c (gimp_brush_clipboard_buffer_changed) remove
2006-05-17  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrushclipboard.c
	(gimp_brush_clipboard_buffer_changed)
	* app/core/gimppatternclipboard.c
	(gimp_pattern_clipboard_buffer_changed): remove calls to
	gimp_data_dirty() because the emission of "name-changed" takes
	care of that.
2006-05-17 10:36:21 +00:00
Sven Neumann 5084a123c9 app/core/gimpbrushclipboard.c (gimp_brush_clipboard_buffer_changed) emit
2006-05-17  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrushclipboard.c
	(gimp_brush_clipboard_buffer_changed)
	* app/core/gimppatternclipboard.c
	(gimp_pattern_clipboard_buffer_changed): emit "name-changed" so that
	the description is being updated.
2006-05-17 10:24:03 +00:00
Michael Natterer d15a6191b6 app/paint-funcs/paint-funcs-generic.h implement copy_color() and
2006-05-16  Michael Natterer  <mitch@gimp.org>

	* app/paint-funcs/paint-funcs-generic.h
	* app/paint-funcs/paint-funcs.[ch]: implement copy_color() and
	copy_color_pixels() which copy only the color bytes into a dest
	that has one byte less than src. Renamed component_pixels() to
	copy_component_pixels().

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpbrushclipboard.[ch]: new GimpBrush subclass that
	auto-updates its contents from gimp->global_buffer.

	* app/core/gimp.c (gimp_real_initialize): add a clipboard brush to
	the brush factory. Fixes bug #111082.
2006-05-16 13:11:47 +00:00