g_alloca() is unadvised. Even though it might be more efficient in some
specific cases, it is pretty subject to stack overflow when a lot of
memory is requested.
Let's allocate dynamic memory instead. To avoid doing it too much, let's
just reuse the same pointer especially since region of interest will
usually be the same size when iterating a buffer, except for border
ones (which would usually be smaller, so we can use the same allocated
buffer again). I still make size checks, just in case.
- 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
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
2008-10-31 Sven Neumann <sven@gimp.org>
* configure.in: bumped minimum required version of Cairo to
1.6.4.
* app/core/gimpscanconvert.c: use
cairo_format_stride_for_width().
svn path=/trunk/; revision=27488
2008-05-09 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: expose the internal most
flexible rendering function. Make use of the miter limit
again.
svn path=/trunk/; revision=25597
2008-05-09 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: kind of resurrect the
blending modes, although now implemented as compositing
on top of the existing content of a mask.
* app/tools/gimpforegroundselecttool.c: changed accordingly
svn path=/trunk/; revision=25595
2008-05-09 Sven Neumann <sven@gimp.org>
* configure.in: check for a minimum required cairo version
(1.4.14).
* app/core/gimpscanconvert.c: copied some code from cairo until
we depend on cairo 1.6.
svn path=/trunk/; revision=25593
2008-05-09 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: removed Libart usage,
replaced with Cairo. Dashed strokes do not yet work again, will
happen tomorrow. Also the blending modes need a second look at.
Also removed deprecated API which made it unnecessarily complicated.
* app/tools/gimpiscissorstool.c: use the current API.
* app/core/Makefile.am
* app/Makefile.am
* configure.in: removed libart dependency, added cairo dependency
where necessary.
svn path=/trunk/; revision=25591
2006-08-29 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimprectangle.[ch]: added new files that hold
gimp_rectangle_intersect(), factored out of the core.
* libgimpbase/gimpbase.def: updated.
* app/core/gimp-edit.c
* app/core/gimp-utils.c
* app/core/gimp-utils.h
* app/core/gimpchannel-combine.c
* app/core/gimpdrawable-foreground-extract.c
* app/core/gimpdrawable-transform.c
* app/core/gimpdrawable.c
* app/core/gimpimage-preview.c
* app/core/gimplayer.c
* app/core/gimpscanconvert.c
* app/display/gimpdisplayshell-draw.c: changed includes accordingly.
* libgimp/gimpdrawablepreview.c: don't duplicate
gimp_rectangle_intersect() here, use the function in libgimpbase.
* app/base/siox.c: use gimp_rectangle_intersect() to reduce the
working area to the region of interest. Fixes bug #340422.
2005-08-08 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.[ch]: added the possibility to specify
a clip rectangle.
* app/base/siox.c (find_max_blob): use g_try_malloc().
2005-08-06 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.[ch]: added gimp_scan_convert_compose(),
an alternative to gimp_scan_convert_render() that allows to compose
strokes on a drawable.
* app/tools/gimpforegroundselecttool.c: use the new function to
get rid of temporary channels for applying the strokes. Also fixed
calculation of stroke width from display scale.
2005-07-31 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.c (gimp_scan_convert_render): pass 255
as value to gimp_scan_convert_render_internal().
* app/tools/gimpforegroundselecttool.[ch]: add paint strokes as
foreground color; draw function is missing.
2005-07-29 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.[ch]: added
gimp_scan_convert_render_value(), a variant of
gimp_scan_convert_render() that allows to pass the foreground value.
* app/tools/gimpfreeselecttool.[ch]: added a virtual "select" method.
* app/tools/Makefile.am
* app/tools/gimp-tools.c
* app/tools/gimpforegroundselecttool.[ch]: added a rough first
version of foreground selection tool based on the SIOX algorithm.
Work in progress...
* app/widgets/gimphelp-ids.h: added help-id for the new tool.
2004-09-16 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.c (VALUE_TO_PIXEL): replaced a bitshift
with a binary and. Should be unnoticeably faster ;)
2004-09-16 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.c: Implemented an own rendering
callback for libart and use it instead of art_gray_svp_aa().
This now handles non-antialiased scan conversions itself. It
also basically shows the way to implement a LUT for the
scan conversion.
2004-01-28 Simon Budig <simon@gimp.org>
Argh, this is getting silly.
* app/core/gimpscanconvert.c: Fix dumb bug I introduced
while fixing bug #132036. Instead of always closing a
polyline to the first point of the vpath close to the
first point of the current polyline
I'll close#132036 for the third time now, feel free to
reopen it when bugs appear...
2004-01-26 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.c: use the modern libart way
to uncross/rewind a libart SVP. This time really fixes
bug #132036 (please test it though...).
2004-01-21 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.c: removed the call to
art_vpath_perturb, since it apparently is responsible for the
artefacts described in bug #132036. I don't really understand
why these artefacts were happening in the first place, because
in theory art_vpath_perturb should not do any harm.
Also properly close closed polygons.
Hopefully fixes#132036, please test this.