Commit Graph

126 Commits

Author SHA1 Message Date
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
Michael Natterer cd0143c350 app: clarify operator precedence in an expression with % and ? 2012-09-21 10:40:44 +02:00
Michael Natterer 1bbd3d40a8 app: make the GimpTempBuf struct private and add accessors 2012-05-02 17:51:12 +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 8202dcb44e app: don't set mask->x and ->y to bogus and completely unused values 2012-05-02 17:50:58 +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
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 63c0db45ae app: For generated brushes scale is applied to radius, so divide by 2 2012-01-08 13:45:09 +02:00
Alexia Death 452819143a app: half-sane aspect ratio implementation 2011-01-25 23:28:02 +02:00
Alexia Death b0d02666a3 app: A few more generic aspect ratio fixes 2010-05-14 20:58:27 +03:00
Alexia Death 4816a61dcb app: Aspect ratio fixes 2010-05-10 00:21:55 +03:00
Alexia Death 20d77451fd app: Fix brush tools behavior at very small scale values
Tiny scale value now results in no stamp.
2010-03-07 15:56:38 +02:00
Alexia Death 9774988f30 Real dynamic hardness support for both generated and pixmap brushes.
For generated brushes, dynamic input is applied on top of the set hardness as a factor.
For pixmaps, it influences the amount of blur applied to the stamp. Be warned, process is slow
for large pixmaps. The odd feature previously advertised as hardness is left in but disabled.
If I figure out what it should be exposed as, it might be made available again.
2010-01-01 15:54:31 +02:00
Alexia Death e79834b75e app: Fix garbage appearing in generated brushes with dynamic angles
Rounds angle used in generated brushes to avoid floating point precision problems.
2009-12-30 15:10:34 +02:00
Alexia Death c5b4643d69 Revert "app: Fix garbage appearing in 1:1 apect ratio 2 spike generated brushes"
This reverts commit 54844e8ab8.
An unneded pseudofix. Proper fix will be commited soon.
2009-12-30 13:21:26 +02:00
Alexia Death 54844e8ab8 app: Fix garbage appearing in 1:1 apect ratio 2 spike generated brushes 2009-12-27 00:27:29 +02:00
Michael Natterer 5a145ae4c3 Whitespace cleanup that reduces the diff against master 2009-10-12 13:00:16 +02:00
Alexia Death 04bad5609a Move scale limit so it does not bother generated brushes. 2009-10-11 12:17:29 +03:00
Martin Nordholts 957cf2cfa9 app: Always use gimp_object_get_name()
Begin to consider GimpObject::name as private and always use
gimp_object_get_name(). Change gimp_object_get_name() to take an
untyped pointer so we don't have to do so awfully many casts. There is
a runtime check for the type inside the function anyway.
2009-08-29 12:41:29 +02:00
Alexia Death c3be07e937 Fixes to brush aspect ratio dynamics
Fixes to brush aspect ratios for parametric brushes
2009-04-26 12:08:41 +03:00
Alexia Death 6aafd34380 Adds dynamic aspect ratio for brushes. 2009-04-25 20:53:09 +03:00
Sven Neumann 640afea581 Bug 471681 – Keyboard shortcuts for brush size/params need feedback
2009-03-19  Sven Neumann  <sven@gimp.org>

	Bug 471681 – Keyboard shortcuts for brush size/params need 
feedback

	* app/core/gimpbrushgenerated.c
	* app/core/gimpcontext.c
	* app/paint/gimppaintoptions.c: applied patch from Stephen G. 
that
	marks some strings for translation.


svn path=/trunk/; revision=28182
2009-03-19 20:40:43 +00:00
Sven Neumann 306374a851 Bug 99457 – Support for dynamics on tilt
2009-02-14  Sven Neumann  <sven@gimp.org>

	Bug 99457 – Support for dynamics on tilt

	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrush-transform.[ch]
	* app/paint/gimpbrushcore.c
	* app/paint/gimpsmudge.c: applied patch from Alexia Death,
	separates brush scaling for x and y.


svn path=/trunk/; revision=28036
2009-02-14 22:00:48 +00:00
Sven Neumann 30c118b53c Bug 520078 – Rotate brushes
2009-02-05  Sven Neumann  <sven@gimp.org>

	Bug 520078 – Rotate brushes

	Applied patch from Alexia Death:

	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrush-transform.[ch]: affine transformations for
	brushes. So far only scaling and rotation is supported. The
	transformation is done using nearest-neighbour. This is a
	regression and we need to add back interpolation before the next
	release.

	* app/paint/gimpsmudge.c
	* app/paint/gimppaintoptions.[ch]
	* app/paint/gimpbrushcore.[ch]: allow to control the brush
	rotation angle.

	* app/tools/gimppaintoptions-gui.c
	* app/tools/gimpbrushtool.c: added UI for controlling the
	brush rotation angle.

	* app/actions/tools-actions.c
	* app/actions/tools-commands.[ch]: add actions for controlling 
the
	brush rotation angle.


svn path=/trunk/; revision=27987
2009-02-05 21:47:57 +00:00
Martin Nordholts 2716d25dd5 Rename brush stuff with 'scale' to 'transform'.
Applied patch from Alexia Death that prepares brushes for
arbitrary transforms by renaming stuff with 'scale' to
'transform'. Takes us one step closer to fixing bug #520078.

* app/core/gimpbrush.[ch]
* app/core/gimpbrushgenerated.c
* app/paint/gimpbrushcore.[ch]
* app/paint/gimpsmudge.c

* app/core/gimpbrush-transform.[ch]: New names of
* app/core/gimpbrush-scale.[ch]

* app/core/Makefile.am: Update.

svn path=/trunk/; revision=27975
2009-02-01 11:08:22 +00: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
Martin Nordholts ddaa0b48ec s/temp_buf_data/temp_buf_get_data/
* app/base/pixel-region.c
* app/base/temp-buf.c
* app/base/temp-buf.h
* app/core/gimpbrush-load.c
* app/core/gimpbrush-scale.c
* app/core/gimpbrush.c
* app/core/gimpbrushgenerated.c
* app/core/gimpgradient.c
* app/core/gimpimage.c
* app/core/gimppalette.c
* app/core/gimppattern-load.c
* app/core/gimppattern.c
* app/core/gimppreviewcache.c
* app/core/gimpviewable.c
* app/paint-funcs/paint-funcs-generic.h
* app/paint/gimpbrushcore.c
* app/paint/gimpclone.c
* app/paint/gimperaser.c
* app/paint/gimpheal.c
* app/paint/gimpink.c
* app/paint/gimppaintbrush.c
* app/pdb/brush-cmds.c
* app/pdb/brushes-cmds.c
* app/pdb/drawable-cmds.c
* app/pdb/image-cmds.c
* app/pdb/pattern-cmds.c
* app/pdb/patterns-cmds.c
* app/text/gimpfont.c
* app/tools/gimpiscissorstool.c
* app/vectors/gimpvectors-preview.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimppatternselect.c
* app/widgets/gimpviewrenderer.c

svn path=/trunk/; revision=27782
2008-12-13 10:35:53 +00:00
Michael Natterer c985f2e2a5 changed GimpBrush::get_extension() to return const gchar* instead of
2008-09-12  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.h: changed GimpBrush::get_extension() to return
	const gchar* instead of gchar*

	* app/core/gimpbrush.c
	* app/core/gimpbrushgenerated.c
	* app/core/gimpcurve.c
	* app/core/gimpgradient.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c: changed accordingly.


svn path=/trunk/; revision=26935
2008-09-12 10:35:35 +00:00
Michael Natterer ad01c883db reorder and rename local functions and prototypes to be consistent with
2008-03-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrushgenerated.c: reorder and rename local
	functions and prototypes to be consistent with other objects. Misc
	minor cleanup.


svn path=/trunk/; revision=25083
2008-03-11 11:01:19 +00:00
Sven Neumann 410d8a5546 cosmetisc
svn path=/trunk/; revision=22194
2007-03-29 14:09:12 +00:00
Sven Neumann ed93588115 moved generation of the lookup table to it's own function. Also changed
2007-03-29  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_calc): moved
	generation of the lookup table to it's own function. Also changed
	SUPERSAMPLING from 5 to 4. Let's see if someone complains...


svn path=/trunk/; revision=22193
2007-03-29 14:04:54 +00:00
Michael Natterer 94fe72a220 app/core/gimpbrush.c some minor fixes and stylistic paranoia i overlooked
2007-03-14  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush.c
	* app/core/gimpbrushgenerated.c: some minor fixes and stylistic
	paranoia i overlooked in last night's late review.


svn path=/trunk/; revision=22119
2007-03-14 10:23:18 +00:00
Martin Nordholts e3d9198cc4 Made brushes upscalable by using scale_region. Downscaling still uses
2007-03-14  Martin Nordholts  <martinn@svn.gnome.org>

	Made brushes upscalable by using scale_region. Downscaling still
	uses functions in app/base/brush-scale.c (because of better
	performance). Parametric brushes of course recalculates masks
	instead of using bitmap scaling. Fixes bug #65030.

	* app/core/gimpbrush.[ch]: Added a private scale_buf method which
	uses scale_region (with GIMP_INTERPOLATION_LINEAR) to scale its
	masks and pixmaps. Also added public virtual method scale_size to
	GimpBrush (overridden by GimpBrushGenerated) which calculates the
	buffer sizes for a given brush scaled with a given scale.

	* app/core/gimpbrushgenerated.c: Implemented the new scale_size
	method inherited from GimpBrush, and modified
	gimp_brush_generated_calc to use this helper function.

	* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): Made
	the brush Scale-slider logarithmic.

	* app/paint/gimppaintoptions.c (gimp_paint_options_class_init):
	Changed Scale scale to [0.0, 10.0].

	* app/paint/gimpbrushcore.c:
	(gimp_brush_core_calc_brush_size): Refactored 'get brush size' code
	to where it belongs, in GimpBrush-classes, and allowed scales
	larger than 1.0.


svn path=/trunk/; revision=22113
2007-03-14 00:18:01 +00:00
Michael Natterer 4648f542cf app/core/gimpbrush.[ch] app/core/gimpbrushgenerated.c
2007-03-12  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.c
	* app/tools/gimppaintoptions-gui.c
	* app/base/brush-scale.[ch]
	* app/base/temp-buf.[ch]
	* app/paint/gimppaintoptions.c
	* app/paint/gimpbrushcore.c: revert last commit. The patch needs
	more review and it's easier to start from quare one than have
	patches on top of patches.


svn path=/trunk/; revision=22101
2007-03-12 09:33:57 +00:00
Michael Schumacher a4e81c3a6c Made brushes scalable (both up and down) by using existing scaling
2007-03-11  Michael Schumacher  <schumaml@cvs.gnome.org>

	Made brushes scalable (both up and down) by using existing
	scaling routines, and also refactored some brush-code. Patch by
	Martin Nordholts. Fixes bug #65030.

	* app/paint/gimpbrushcore.c:
	(gimp_brush_core_calc_brush_length_scale) Refactored 'get brush
	size' code to where it belongs, in GimpBrush-classes, and renamed
	gimp_brush_core_calc_brush_size to
	gimp_brush_core_calc_brush_length_scale.

	* app/paint/gimppaintoptions.c (gimp_paint_options_class_init):
	Changed Scale scale to [0.0, 100.0].

	* app/base/temp-buf.[ch] (mask_buf_new): Change signature to also
	take a bpp parameter.

	* app/base/brush-scale.[ch]: Changed brush_scale_(mask|pixmap) to
	the new brush_scale_buf, which uses existing scaling routines
	(scale_region) instead of dedicated down-scaling only routines.

	* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): Made
	the brush Scale-slider logarithmic.

	* app/core/gimpbrushgenerated.c: Implemented the new
	get_scaled_size method inherited from GimpBrush, and modified
	gimp_brush_generated_calc to use this helper function.

	* app/core/gimpbrush.[ch]: Added public virtual method
	get_scaled_size to GimpBrush, overridden by GimpBrushGenerated,
	which calculates the buffer sizes for a given brush scaled with a
	given scale. Also changed calls to brush_scale_(mask|pixmap) to
	the new brush_scale_buf.

svn path=/trunk/; revision=22099
2007-03-11 16:28:08 +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 6ded475a12 app/core/gimpbrush.c (gimp_brush_class_init) gah, should use the right
2006-12-07  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush.c (gimp_brush_class_init)
	* app/core/gimpbrushgenerated.c (gimp_brush_generated_new): gah,
	should use the right binary for testing. Fixes the new spacing
	property.
2006-12-07 11:53:02 +00:00
Michael Natterer 7515d9b6dc made "spacing" a property.
2006-12-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush.c: made "spacing" a property.

	* app/core/gimpbrushgenerated-save.c
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrushpipe.c: use it. Don't access brush->spacing
	manually, always use accessors.
2006-12-06 00:01:27 +00:00
Michael Natterer 1186dfd256 Properly abstract brush scaling:
2006-11-09  Michael Natterer  <mitch@gimp.org>

	Properly abstract brush scaling:

	* app/core/gimpbrush.[ch]: added virtual functions
	GimpBrush::scale_mask() and ::scale_pixmap() and default
	implementations which call the functions in base/brush-scale.c.

	* app/core/gimpbrushgenerated.c: factored out brush calculation to
	an internal utility function and call that function from ::dirty()
	and from the new ::scale_mask().

	* app/core/gimpbrushcore.c: use gimp_brush_scale_mask/pixmap()
	instead of using the lowlevel scale functions directly. Fixes the
	uglyness that we were scaling generated brushes instead of simply
	recalculating them in the right size.
2006-11-09 14:54:49 +00:00
Michael Natterer c42e814794 app/core/Makefile.am app/core/gimpbrushgenerated-load.[ch]
2006-10-03  Michael Natterer  <mitch@gimp.org>

	* app/core/Makefile.am
	* app/core/gimpbrushgenerated-load.[ch]
	* app/core/gimpbrushgenerated-save.[ch]
	* app/core/gimpbrushpipe-load.[ch]: new files.

	* app/core/gimpbrushgenerated.[ch]
	* app/core/gimpbrushpipe.[ch]: removed loading and saving code here.

	* app/core/gimp.c: changed accordingly.
2006-10-03 12:29:07 +00:00
Sven Neumann 086d1b8bff app/actions/context-commands.c (context_brush_radius_cmd_callback)
2006-08-14  Sven Neumann  <sven@gimp.org>

	* app/actions/context-commands.c (context_brush_radius_cmd_callback)
	(context_actions_update)
	* app/core/gimpbrushgenerated.c (gimp_brush_generated_class_init):
	set upper brush size limit to 4000 pixels. Fixes bug #351175.
2006-08-14 12:45:33 +00:00
Sven Neumann 6ce6160966 don't choke on brush files with empty names (bug #343140).
2006-05-29  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_load): don't
	choke on brush files with empty names (bug #343140).
	(gimp_brush_generated_save): warn about brushes with empty names.
2006-05-29 15:43:05 +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
Sven Neumann 6ebcf700d1 removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15  Sven Neumann  <sven@gimp.org>

	* app/*/*.c:
	* lib*/*.c: removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15 09:46:31 +00:00
Michael Natterer e1ceed5147 define GIMP_PARAM_STATIC_STRINGS which is G_PARAM_STATIC_NAME|NICK|BLURB.
2006-01-18  Michael Natterer  <mitch@gimp.org>

	* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
	which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
	GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
	GIMP_PARAM_STATIC_STRINGS.

	* app/*/*.c: use them for all object properties so their
	strings are not copied.
2006-01-18 20:29:40 +00:00
Michael Natterer 0d4a10fee4 app/config/*.c app/core/*.c app/display/*.c app/text/*.c port to
2005-12-10  Michael Natterer  <mitch@gimp.org>

	* app/config/*.c
	* app/core/*.c
	* app/display/*.c
	* app/text/*.c
	* app/vectors/*.c: port to G_DEFINE_TYPE() and friends. Some related
	core reordering and cleanup.
2005-12-10 19:24:36 +00:00