Commit Graph

139 Commits

Author SHA1 Message Date
Michael Natterer 21b8007b29 app: add GimpBrushCache which stores brush stuff based on transform parameters
such as masks and outlines. The cache is currently very stupid and
only cacheds the last transformed object. Add caches to GimpBrush for
its mask, its pixmap and its boundary, and remove the same caches and
a ton of members from GimpBrushCore. This involves adding lots of
const qualifiers because GimpBrush returns const pointers now for
trasnformed stuff.
2011-04-05 22:15:30 +02:00
Michael Natterer e2226e9933 app: add gimp_brush_start_use() and gimp_brush_end_use()
and use them in GimpBrushCore when setting/unsetting a brush. They
will be used for managing some caches inside GimpBrush.
2011-04-05 19:18:26 +02:00
Michael Natterer a50f668d87 app: GimpBrushCore: simplify brush and dynamics setting
by checking for an actual change in the setters. Remove the
"foo != core->foo" checks from all callers.
2011-04-05 19:05:55 +02:00
Michael Natterer d008fcd588 app: remove the entire brush boundary code from GimpBrushCore 2011-04-04 21:24:41 +02:00
Alexia Death 41b1bd36da app: Fix smooth intreaction with airbrush 2011-03-16 22:08:19 +02:00
Michael Natterer e3c0a4e549 app: move all GimpDynamics members to private 2011-03-03 18:43:56 +01:00
Alexia Death 75593c3fea app: Fix missing outline with aspect 0.0 2011-02-02 01:04:24 +02:00
Alexia Death 418632916a app: Fix outline offset 2011-02-02 00:58:09 +02:00
Alexia Death 6a89db0f53 app: Minor aspect ratio fixes 2011-02-02 00:33:08 +02:00
Alexia Death 452819143a app: half-sane aspect ratio implementation 2011-01-25 23:28:02 +02:00
Michael Natterer eb04265ce3 app: gimp_brush_core_clamp_brush_scale() -> gimp_brush_clamp_scale() 2011-01-17 23:20:49 +01:00
Alexia Death 803df9b58a app: Make smooth paint core internal 2011-01-09 22:59:01 +02:00
Michael Natterer c29aefccc2 app: fix coding style in the new smoothing code 2011-01-08 22:18:56 +01:00
Alexia Death 339deed1da app: Clean up smooth so it would be acceptable for master 2011-01-08 22:19:27 +02:00
Alexia Death 082aa272a4 app: G-Pen algorithm for GIMP trunk. Now smoothing function works for Ink and Brush tools.
Rebased/fixed to go on top of current master. Next commit will add cleanup.
Had to change author tag because gnome is not accepting random stuff
in email fields. Original author is tarai, from gimp painter project
in sourceforge.
2011-01-08 22:17:26 +02:00
Michael Natterer ae742f0920 app: some cleanup in the new brush size code 2010-10-30 19:56:24 +02:00
Alexia Death 5d42803d7f app: Expose brush size in pixels, not as ratio 2010-10-30 19:51:07 +03:00
Michael Natterer 3de4d7263a app: Bug 631619 - Drawing artifacts spread by paintbrush outline on canvas
Add a transform matrix to GimpCanvasBoundary and get rid of the whole
BoundSeg transform code in boundary.c and gimpbrushcore.c, it was
impossible to get this right on that level. Also fix te extents of
GimpCanvasBoundary os it leaves no artifacts.
2010-10-09 22:00:19 +02:00
Michael Natterer 9828f6db20 app: remove unused variables in gimp_brush_core_create_bound_segs() 2010-10-08 12:09:33 +02:00
Michael Natterer 06da10bc08 app: change boundary drawing by tools to work like the selection
- GimpCanvasBoundary takes unsorted BoundSeg arrays now and uses
  gimp_display_shell_transform_boundary() and gimp_cairo_add_boundary().
- Nobody calls boundary_sort() any longer for the purpose of displaying
  a boundary.
- gimp_display_shell_transform_boundary() got offset parameters
  so it can transform things that are not in the image's coordinate
  system.
2010-09-26 22:41:04 +02:00
Michael Natterer d921f8520b app: fix infinite recursion in gimp_brush_core_create_bound_segs()
Block the core's brush-invalidate callback while temporarily changing
the brush's aspect ratio.
2010-09-23 23:35:59 +02:00
Michael Natterer 8fc5fd6c99 app: whitespace and formatting cleanup 2010-08-24 13:43:31 +02:00
Alexia Death 256eee9850 app: Fix Outline transforming for generated brushes 2010-05-14 21:25:09 +03: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 0cb1ada818 app: convert aspect ratio to scale_x&scale_y just before matrix transform 2010-05-10 00:11:07 +03:00
Alexia Death f53f73da19 app: Fix a typo in outline transform 2010-04-18 21:20:29 +03:00
Alexia Death 78a4cae2d5 app: Rewire the the feature formely known as harndess back to gui as force 2010-04-09 00:44:52 +03:00
Alexia Death 477b2e1a0f app: fix outline offseting at rotation 2010-03-17 20:12:12 +02:00
Alexia Death 3607a73744 app: Make sure outline and brush transform use the same kind of matrix 2010-03-17 19:49:21 +02:00
Alexia Death bd2f852ac1 app: make off-canvas changes have effect on brush outline 2010-03-16 21:53:34 +02:00
Alexia Death 44a5a34d7e app: Make brush boundaries dynamic aswell 2010-03-15 02:55:15 +02:00
Alexia Death bae745bba2 app: Fix 0.0-scale brushes in interpolation 2010-03-10 23:34:03 +02: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
Sven Neumann a179537e29 app: fix compiler warning and improve formatting a little 2010-02-03 20:49:38 +01:00
Martin Nordholts 69f28be91c app: Remove unused variable 'hardness' in paint/gimpbrushcore.c 2010-01-02 20:36:59 +01: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 355f1bfd56 app: Fix tabs to spaces for dynamics 2009-12-19 17:36:27 +02:00
Alexia Death b95dda6eea app: Fix dynamics mixing for inputs&outputs that have paint options toggles 2009-12-18 20:51:23 +02:00
Alexia Death 60705f79e9 app: Making spacing available as dynamic parameter
Spacing is now dynamically controllable. Unlike other parameters it
made little sense to scale down from default spacing so it scales between
current and maximum spacing.
2009-12-13 22:46:09 +02:00
Alexia Death 05f6d89ab0 Stop smudge from crashing by disabling dynamic transfrorming in the brush core. 2009-10-27 23:21:17 +02:00
Michael Natterer 0c81d491fb Change coords in GimpDynamicsOutput from call-by-value to "const GimpCoords*" 2009-10-27 14:30:20 +01:00
Michael Natterer cdbbd556bb Code formatting 2009-10-13 20:43:56 +02:00
Michael Natterer de1db5c0ed More GimpBrushCore dynamics cleanup/fixes
- unref the dynamics in finalize()
- actually use the core's set_dynamics() API
- bail out with an error message in gimp_paint_core_start() if
  there are no dynamics available (just like when there is no brush)
- remove checks for dynamics != NULL all over the place
  (just as we can rely on a brush to exist)
2009-10-13 19:01:14 +02:00
Michael Natterer e12bc4f93a gimp_brush_core_start(): move "fade_point" to local scope 2009-10-13 18:55:16 +02:00
Michael Natterer 8331094b8f gimp_brush_core_real_set_dynamics(): don't forget to ref the dynamics 2009-10-13 18:50:58 +02:00
Michael Natterer 77faffe4b7 Rename the output members of GimpDynamics from foo_dynamics to foo_output 2009-10-12 14:45:12 +02:00
Michael Natterer 5a145ae4c3 Whitespace cleanup that reduces the diff against master 2009-10-12 13:00:16 +02:00
Michael Natterer dab5f9e691 Rename all GimpDynamicsOutput functions to gimp_dynamics_output_foo() 2009-10-11 15:54:59 +02:00
Michael Natterer 330d406acc Move dynamics includes to the .c files where they belong 2009-10-11 15:41:54 +02:00