2003-07-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdevicestatus.c (gimp_device_status_init):
disconnect the GimpDeviceInfo::changed() signal handlers when
the dialog goes away. Fixes bug #117609.
2003-07-16 Michael Natterer <mitch@gimp.org>
* app/vectors/gimpvectors.c (gimp_vectors_transform): invert the
matrix for direction == GIMP_TRANSFORM_BACKWARD. Fixes corrective
transformation of paths.
2003-07-16 Michael Natterer <mitch@gimp.org>
* app/tools/gimppainttool.c (gimp_paint_tool_draw): add a small
EPSILON to the brush coordinates before rounding them (fixes
off-by-one floating point rounding fnord for "hard edge" painting
where e.g. (5.0 - (3.0 / 2.0)) was rounded to 3.0 instead of 4.0).
* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_boundary): use
RINT() instead of floor() to round the transformed boundary to
GdkSegments.
2003-07-16 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.[ch]: implemented transforming of
paths. Cleaned up initialize() and button_press() to activate the
tool correctly. Use the transform tool's CREATING state *only*
before the first mouse click (when there is no grid displayed).
Preview the active path while transforming. Cache the transform
direction in the GimpTransformTool struct so we can switch it
while previewing the path. Lots of path transform related changes
and cleanup.
2003-07-16 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_draw): don't
draw the grid when the bounding box becomes concave.
2003-07-16 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintoptions.[ch]: added utility function
gimp_paint_options_get_fade() which calculates an opacity
value from paint_core->pixel_dist.
* app/paint/gimppaintbrush.c: removed the same code here and use
gimp_paint_options_get_fade().
* app/paint/gimpclone.c
* app/paint/gimpconvolve.c
* app/paint/gimpdodgeburn.c
* app/paint/gimperaser.c
* app/paint/gimpsmudge.c: enabled fade for all paint tools, along
with a general opacity cleanup:
Use the opacity from gimp_context_get_opacity() *only* for the
image_opacity. In particular, *never* use it as initial value for
calculating the brush_opacity. Instead, start calculating the
brush_opacity from gimp_paint_options_get_fade() and return early
if it returns 0.0, if not, multiply tool specific opacity sources
like the current pressure.
(This changes the effect of the paint tools for particular opacity
values, but makes the impact of opacity on the final rendering
linear and more intuitive)
* app/tools/gimppaintoptions-gui.c: enabled the "Fade" frame for
the tools above.
* app/paint/gimppaintcore.c: purely cosmetic cleanup.
2003-07-15 Sven Neumann <sven@gimp.org>
* app/gui/preferences-dialog.c (prefs_dialog_new)
* app/widgets/gimpviewabledialog.c (gimp_viewable_dialog_new):
use a large font instead of extra-large.
GimpCompositeFunction as the type for all compositing functions.
app/composite/Makefile.am: gimp-composite.c is no longer
dependant upon gimp-composite-dispatch.c
app/composite/gimp-composite-dispatch.[ch]
app/composite/make-gimp-composite-dispatch.py: Fixed type
mismatches.
app/composite/test-composite.c: Fixed bit-rot in not keeping up
with the changes in the surrounding .h files.
app/composite/gimp-composite-mmx.c: Incipient cleanup in marking
some asm constructs as volatile.
2003-07-15 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintoptions.[ch]: took the fade options out of
GimpGradientOptions and added them to the new GimpFadeOptions
struct. Added a GObject::finalize() implementation.
* app/paint/gimppaintbrush.[ch]: changed accordingly. Made
gimp_paintbrush_motion() a protected function and renamed it to
_gimp_paintbrush_motion() added a "gdouble opacity" parameter so
an initial brush opacity can be passed in by subclasses.
* app/paint/gimpairbrush.[ch]: derive it from GimpPaintbrush so it
gets all its rendering features. Removed own rendering code and
use _gimp_paintbrush_motion(), passing airbrush_options->pressure
as initial opacity. Removed all static variables.
* app/tools/gimpairbrushtool.[ch]
* app/tools/gimppenciltool.[ch]: derive them from GimpPaintbrushTool.
* app/tools/gimppaintoptions-gui.c: changed accordingly. Added the
full paintbrush options overkill to the airbrush GUI. Cleanup.
* app/tools/gimperasertool.c: forgot to remove the "Hard Edge"
toggle here.
2003-07-15 Sven Neumann <sven@gimp.org>
* plug-ins/common/tiff.c: applied GIMP coding style. UTF8-validate
the image description before accepting it as a comment. Check for
ASCII-only comment before saving it as an image description.
2003-07-15 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimpcolor.h: include <libgimpcolor/gimpcmyk.h>.
* modules/Makefile.am
* modules/colorsel_cmyk.c: added a simple CMYK color selector.
2003-07-14 Sven Neumann <sven@gimp.org>
* libgimpcolor/Makefile.am
* libgimpcolor/makefile.msc
* libgimpcolor/gimpcmyk.[ch]: new files that define a GimpCMYK
structure similar to GimpRGB.
* libgimpcolor/gimpcolortypes.h: added the GimpCMYK typedef.
* libgimpcolor/gimpcolorspace.[ch]: added conversions between RGB
and CMYK. This implementation is the naive approach without any
color calibration whatsoever.
* libgimpcolor/gimphsv.[ch]
* libgimpcolor/gimprgb.[ch]: purely cosmetic changes.
2003-07-14 Michael Natterer <mitch@gimp.org>
Argh...
* app/paint/Makefile.am
* app/paint/gimppencil.[ch]: added it again as GimpPaintbrush
subclass and override nothing but the user visible undo name and
the paint_options type.
* app/paint/paint.c
* app/tools/tool_manager.c
* app/tools/gimppenciltool.c
* tools/pdbgen/pdb/paint_tools.pdb: reverted my last changes.
* app/pdb/paint_tools_cmds.c: regenerated.
2003-07-14 Michael Natterer <mitch@gimp.org>
* app/paint/Makefile.am
* app/paint/gimppencil.[ch]: removed.
* app/paint/gimppenciloptions.[ch]: new files. Does nothing except
setting the default value of "hard" to TRUE.
* app/paint/paint.c
* app/tools/tool_manager.c: changed accordingly.
* app/tools/gimppenciltool.c
* tools/pdbgen/pdb/paint_tools.pdb: use the pintbrush core for
pencil drawing.
* app/pdb/paint_tools_cmds.c: regenerated.
* app/tools/gimppaintoptions-gui.c: show all paintbrush options
except "Hardness" for the pencil tool.
2003-07-14 Michael Natterer <mitch@gimp.org>
* app/paint/gimperaseroptions.[ch]: removed "gboolean hard"
member/property...
* app/paint/gimppaintoptions.[ch]: ...and added it here. Added
gimp_paint_options_get_brush_mode() utility function.
* app/paint/gimpairbrush.c
* app/paint/gimpclone.c
* app/paint/gimpconvolve.c
* app/paint/gimpdodgeburn.c
* app/paint/gimperaser.c
* app/paint/gimppaintbrush.c
* app/paint/gimppaintcore.h
* app/paint/gimppencil.c
* app/paint/gimpsmudge.c: use the new utility funtion where
appropriate. Removed trailing whitespace.
* app/tools/gimpdrawtool.[ch] (gimp_paint_tool_draw_boundary):
changed offset parameters from gint to gdouble so we can show the
brush preview at sub-pixel positions.
* app/tools/gimppainttool.c: use sub-pixel coordinates for the
brush preview if paint_options->hard is FALSE (doesn't work for
the pencil yet).
The new brush preview unveiled that the positioning of even-sized
brushes if off by 0.5 for soft brush application mode and off by
1.0 for hard application mode:
* app/paint/gimppaintcore.[ch] (gimp_paint_core_subsample_mask):
offset painting by 0.5 pixels on the brushes' even sized axes by
shuffling the subsample matrices around.
Added "subsampling" for HARD brush application mode since a pixel
of an even sized brush can snap to up to four different image
pixels depending on the sub-pixel coordinates of the stroke.
2003-07-14 Michael Natterer <mitch@gimp.org>
* app/tools/tool_manager.c: check if the active_tool is a
GimpDrawTool before casting & accessing its members.
2003-07-14 Sven Neumann <sven@gimp.org>
* configure.in: use AM_PROG_AS instead of defining CCAS and
CCASFLAGS manually. Changed the assembler checks to use inline
assembly as we do in app/composite/gimp-composite-mmx.c.
* app/composite/Makefile.am: build the MMX code again; we need it
to be tested. If you have any problems, please report them. You can
quick-fix your build using the --disable-mmx configure option.
* app/paint-funcs/Makefile.am: reverted Helvetix' change ...
* app/paint-funcs/paint-funcs.c: ... and include
"composite/gimp-composite.h" instead of "gimp-composite.h".
2003-07-14 Sven Neumann <sven@gimp.org>
* app/base/base.c (base_init): include composite/gimp-composite.h.
* app/paint-funcs/paint-funcs.c: enforce GIMP coding style on the
code that Helvetix added.
app/paint-funcs/paint-funcs.c stubbed out code for using
gimp_composite. To enable the use of gimp_composite, set the
value of gimp_composite_use_old to 0 (zero).
app/base/base.c calls gimp_composite_init() hook to initialse
all the gimp_composite "stuff."
app/composite/make-gimp-composite-dispatch.py now generates
gimp-composite-dispatch.h
app/composite/gimp-composite-dispatch.[ch] are in CVS although
they are generated files. This is preparation for building the
table at run-time, instead of compile time.
app/composite/gimp-composite.c doesn't #include the main
dispatch table. This is preparation for building the table at
run-time, instead of compile time.
app/composite/Makefile.am doesn't compile gimp-composite-mmx.c
(until the various remaining gcc problems and configuration issues
are worked out).
2003-07-11 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig.c (gimp_config_reset): don't return stuff
from a void function (spotted by Jimmer on #gimp). Removed
trailing whitespace.