Commit Graph

2723 Commits

Author SHA1 Message Date
7917611e53 Implemented an image pyramid for the GimpProjection. An image pyramid
2007-06-06  Martin Nordholts  <martinn@svn.gnome.org>

	Implemented an image pyramid for the GimpProjection. An image pyramid
	caches a projection at several sizes, causing the rendering code not to
	have to swap in all tiles of a (potentially) large image; it can use
	small versions of the projection if the user is zoomed out.

	The image pyramid also imroves visual quality, especially at zoom levels
	where there is a pyramid level that matches perfectly (i.e. at e.g. 50%,
	25%, and 12.5% zoom). A step on the right track for bug #76096.

	* app/core/gimpprojection.[ch]: Adjusted to make use of an image
	pyramid. GimpProjection now keeps an array of TileManager:s, one per
	pyramid level. Renamed _alloc_tiles to _alloc_levels.

	* app/display/gimpdisplayshell-draw.c: (gimp_display_shell_draw_area):
	Use the right GimpProjection level when drawing

	* app/display/gimpdisplayshell-render.c: (render_image_init_info_full):
	Setup RenderInfo with level in mind

	* app/base/tile-manager.[ch]: Extended API a bit, nothing complicated.

	* app/base/tile-manager-private.h (struct _TileManager): Keep a pointer
	to the level below for use in an image pyramid.


svn path=/trunk/; revision=22727
2007-06-06 13:45:44 +00:00
67ec846b73 corrected a bug introduced by my last commit
svn path=/trunk/; revision=22726
2007-06-06 13:26:48 +00:00
5ca92142ad cleanup.
2007-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-preview.c (gimp_image_get_new_preview): cleanup.

svn path=/trunk/; revision=22725
2007-06-06 12:56:50 +00:00
097b1768a5 the projection is 2 bytes per pixel for grayscale images.
2007-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.c (gimp_projection_estimate_memsize):
	the projection is 2 bytes per pixel for grayscale images.

svn path=/trunk/; revision=22723
2007-06-06 10:48:00 +00:00
798dd95499 #include "gimprojection.h"
svn path=/trunk/; revision=22722
2007-06-06 10:13:44 +00:00
feaf142fc7 added function that estimates the memory requirements for an image
2007-06-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpprojection.[ch]: added function that estimates the
	memory requirements for an image projection.

	* app/core/gimptemplate.c (gimp_template_notify): use it.

svn path=/trunk/; revision=22721
2007-06-06 10:03:17 +00:00
c2d1214551 Changed "The GIMP" to "GIMP" everywhere, where it's used as a name.
2007-06-06  Mukund Sivaraman  <muks@mukund.org>

        Changed "The GIMP" to "GIMP" everywhere, where it's used as a name.


svn path=/trunk/; revision=22715
2007-06-06 08:44:52 +00:00
8cb4d6070b applied patch from Eric Lamarque which adds support for ABR v6 brushes.
2007-06-04  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush-load.c: applied patch from Eric Lamarque
	which adds support for ABR v6 brushes. Did some minor cleanups in
	the patch, reordered functions and generally fixed error handling
	of the ABR parsers. Fixes bug #377016.


svn path=/trunk/; revision=22699
2007-06-04 10:43:31 +00:00
e5e3c8c65d check for errors even if the loader_func returned something so we display
2007-06-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdatafactory.c (gimp_data_factory_load_data): check
	for errors even if the loader_func returned something so we
	display errors from partially loaded files which contain multiple
	data items.


svn path=/trunk/; revision=22696
2007-06-03 21:46:04 +00:00
527bb2e757 unified progress strings.
2007-05-31  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-convert.c: unified progress strings.

svn path=/trunk/; revision=22686
2007-05-31 13:08:19 +00:00
903b310f18 minor code cleanup.
2007-05-31  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-convert.c: minor code cleanup.

svn path=/trunk/; revision=22685
2007-05-31 12:55:33 +00:00
86eaa1fa06 no need to use memcpy here
svn path=/trunk/; revision=22653
2007-05-29 09:57:13 +00:00
7c4bbafe75 app/core/gimpimage.c (gimp_image_parasite_attach) allocate the temporary
2007-05-29  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage.c (gimp_image_parasite_attach)
	* app/core/gimpitem.c (gimp_item_parasite_attach): allocate the
	temporary GimpParasite copy on the stack.

svn path=/trunk/; revision=22650
2007-05-29 09:23:34 +00:00
8eb046f130 set "Lock Alpha" to TRUE again on floating selections.
2007-05-28  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayer-floating-sel.c (floating_sel_attach): set
	"Lock Alpha" to TRUE again on floating selections.

	(floating_sel_to_layer): instead, set it to FALSE when turning
	it into a new layer. Fixes bug #418215 and keeps #161042 closed.


svn path=/trunk/; revision=22638
2007-05-27 23:07:36 +00:00
65ef13729f new utility function which returns the neighbor of a container's active
2007-05-27  Michael Natterer  <mitch@gimp.org>

	* app/core/gimp-utils.[ch] (gimp_container_get_neighbor_of_active):
	new utility function which returns the neighbor of a container's
	active item.

	* app/widgets/gimpcontainerview-utils.[ch]
	(gimp_container_view_remove_active): remove a container view's
	active item, using above function to select its neighbor.

	* app/actions/data-commands.c
	* app/actions/buffers-commands.c
	* app/actions/documents-commands.c
	* app/actions/templates-commands.c: use above functions to select
	reasonable items when deleting from a list (instead of always
	jumping to the first item).



svn path=/trunk/; revision=22632
2007-05-27 15:13:45 +00:00
a6d783152d app/core/gimp-user-install.c app/core/gimpgradient-load.c
2007-05-23  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-user-install.c
	* app/core/gimpgradient-load.c
	* app/core/gimpsamplepoint.c
	* app/core/gimpscanconvert.c
	* app/core/gimpunit.c
	* app/display/gimpdisplayshell-filter-dialog.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpdisplayshell-scale.c
	* app/file/gimprecentitem.c
	* app/gui/splash.c: allocate structs using GSlice.

svn path=/trunk/; revision=22590
2007-05-23 10:22:09 +00:00
cd772f930a app/core/gimppalette-import.c app/core/gimppalette-load.c use GSlice for
2007-05-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimppalette-import.c
	* app/core/gimppalette-load.c
	* app/core/gimppalette.c: use GSlice for palette entries and
	temporary structs.


svn path=/trunk/; revision=22587
2007-05-22 21:59:19 +00:00
f1cdb9bea1 app/core/gimparea.[ch] app/core/gimpprojection.c use GSlice to allocate
2007-05-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimparea.[ch]
	* app/core/gimpprojection.c
	* app/display/gimpdisplay.c: use GSlice to allocate GimpArea and
	sanitize the API.


svn path=/trunk/; revision=22584
2007-05-22 18:52:11 +00:00
ada79e533a app/actions/data-commands.c app/base/boundary.c app/base/gimphistogram.c
2007-05-22  Michael Natterer  <mitch@gimp.org>

	* app/actions/data-commands.c
	* app/base/boundary.c
	* app/base/gimphistogram.c
	* app/base/gimplut.c
	* app/base/temp-buf.c
	* app/core/gimpcontainer.c
	* app/core/gimpgradient.c
	* app/core/gimpparamspecs.c
	* app/core/gimpundo.c
	* app/plug-in/gimpplugin-cleanup.c
	* app/plug-in/gimppluginmanager-data.c
	* app/plug-in/gimppluginmanager-help-domain.c
	* app/plug-in/gimppluginmanager-locale-domain.c
	* app/plug-in/gimppluginmanager-menu-branch.c
	* app/plug-in/gimppluginprocframe.c
	* app/vectors/gimpanchor.c
	* app/widgets/gimpsessioninfo.c: use GSlice instead of g_new/g_free
	for structs of fixed size.


svn path=/trunk/; revision=22558
2007-05-22 10:43:48 +00:00
a80b7607ec plugged a memory leak caused by one variable shadowing another.
2007-05-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrush.c (gimp_brush_get_new_preview): plugged a
	memory leak caused by one variable shadowing another.

	* app/vectors/gimpvectors-import.c (gimp_vectors_import): free 
the
	SvgPath structs.


svn path=/trunk/; revision=22556
2007-05-22 07:20:23 +00:00
9b369d8f6b documentation.
2007-05-21  Sven Neumann  <sven@gimp.org>

	* app/core/gimp.c (gimp_message): documentation.

	* app/actions/documents-commands.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimptoolbox-dnd.c: pass parent widgets to gimp_message().

svn path=/trunk/; revision=22552
2007-05-21 16:32:52 +00:00
b5b732f62a use a #define for the default resolution.
2007-05-21  Sven Neumann  <sven@gimp.org>

	* app/core/gimptemplate.c: use a #define for the default 
resolution.


svn path=/trunk/; revision=22546
2007-05-21 06:48:31 +00:00
4884bc43fe make sure the description contains no empty lines.
2007-05-19  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimagefile.c (gimp_imagefile_get_desc_string): make
	sure the description contains no empty lines.


svn path=/trunk/; revision=22540
2007-05-19 20:09:56 +00:00
0bcf615e24 special case fully transparent regions, just as we do in
2007-05-04  Sven Neumann  <sven@gimp.org>

	* plug-ins/common/autocrop.c (guess_bgcolor): special case fully
	transparent regions, just as we do in app/core/gimpimage-crop.c.
	Fixes bug #357554.

	* app/core/gimpimage-crop.c: cosmetics.

svn path=/trunk/; revision=22412
2007-05-04 12:21:26 +00:00
69a358460e applied slightly modified patch from Eric Lamarque that adds support for
2007-05-04  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrush-load.c: applied slightly modified patch from
	Eric Lamarque that adds support for loading .abr v2 Photoshop
	brushes (bug #435635).

svn path=/trunk/; revision=22411
2007-05-04 11:51:55 +00:00
2cb0739be5 use a simple cast, not a type-checking one
svn path=/trunk/; revision=22390
2007-05-03 15:18:53 +00:00
6c427acf21 Handle the core part of bug #434274:
2007-05-03  Sven Neumann  <sven@gimp.org>

	Handle the core part of bug #434274:

	* app/core/gimpchannel.c (gimp_channel_real_boundary): return
	FALSE for an empty channel.

	* app/core/gimpitem.[ch]: added a progress parameter to
	gimp_item_stroke.

	* app/core/gimpchannel.c (gimp_channel_stroke)
	* app/core/gimpselection.c (gimp_selection_stroke): pass progress
	to gimp_message().

	* app/actions/vectors-commands.c
	* app/actions/select-commands.c
	* app/dialogs/stroke-dialog.c
	* app/vectors/gimpvectors.c
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/paths.pdb: changed accordingly.

	* app/pdb/edit_cmds.c
	* app/pdb/paths_cmds.c: regenerated.

	* app/core/gimplayermaskundo.c: added a missing cast.

svn path=/trunk/; revision=22389
2007-05-03 15:17:07 +00:00
22c981c771 reduce rounding errors.
2007-05-02  Sven Neumann  <sven@gimp.org>

        * app/core/gimppickable.c (gimp_pickable_pick_color): reduce
        rounding errors.


svn path=/trunk/; revision=22384
2007-05-02 17:26:26 +00:00
c70b55a403 removed get_color_at() from the GimpPickable interface. Implement the same
2007-05-02  Sven Neumann  <sven@gimp.org>

	* app/core/gimppickable.[ch]: removed get_color_at() from the
	GimpPickable interface. Implement the same functionality using
	get_pixel_at() but with a saner API.

	* app/core/gimpdrawable.c
	* app/core/gimpprojection.c
	* app/core/gimpimagemap.c: removed get_color_at() implementations.

	* app/tools/gimpbycolorselecttool.c: adapt to API change of
	gimp_pickable_get_color_at().

	* app/tools/gimprectangleselecttool.c: added missing include.


svn path=/trunk/; revision=22383
2007-05-02 17:15:03 +00:00
ebb9c00470 the GLib version that has string validation fixed is 2.12.12.
2007-05-02  Sven Neumann  <sven@gimp.org>

	* app/core/gimpparamspecs.c (gimp_param_string_validate): the GLib
	version that has string validation fixed is 2.12.12.

svn path=/trunk/; revision=22375
2007-05-02 09:56:01 +00:00
ee0ab61b4f changed "drawable" parameter to "pickable" and added some special casing
2007-04-30  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpselection.[ch] (gimp_selection_extract): changed
	"drawable" parameter to "pickable" and added some special casing
	for the GIMP_IS_DRAWABLE(pickable) case in the implementation.

	* app/core/gimpdrawable-transform.c: changed accordingly.

	* app/core/gimp-edit.c: ditto. Removed utility function
	gimp_edit_extract_visible() and simply use gimp_edit_extract() for
	"copy visible", passing image->projection. Fixes bug #434102.


svn path=/trunk/; revision=22368
2007-04-30 17:26:15 +00:00
7c1fc759f5 added get_pixel_at() method to the GimpPickable interface. This gives
2007-04-27  Sven Neumann  <sven@gimp.org>

	* app/core/gimppickable.[ch]: added get_pixel_at() method to the
	GimpPickable interface. This gives direct access to the pixel
	without converting it to an RGB color.

	* app/core/gimpdrawable.c
	* app/core/gimpimagemap.c
	* app/core/gimpprojection.c: implement the new method and also use
	it to reimplement get_color_at().

	* app/core/gimpimage-crop.c (gimp_image_crop_guess_bgcolor): use
	gimp_pickable_get_pixel_at(). Fixes auto-shrink on indexed and
	grayscale images.

svn path=/trunk/; revision=22359
2007-04-27 16:07:49 +00:00
ff8ba7ea78 renamed GimpParamSpecString's flag "no_validate" to "allow_non_utf8".
2007-04-26  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpparamspecs.[ch]: renamed GimpParamSpecString's
	flag "no_validate" to "allow_non_utf8".

	* tools/pdbgen/app.pl
	* tools/pdbgen/pdb/*.pdb: renamed argument flag
	"no_validate" (which turns off utf8-validation for strings) to
	"allow_non_utf8" and renamed "no_success" (which turns off
	argument validation alltogether) to "no_validate".
	Doesn't affect generated code.


svn path=/trunk/; revision=22350
2007-04-26 19:10:23 +00:00
6369e06ece removed bogus "return" from void function. Fixes bug #433339, patch from
2007-04-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush.c (gimp_brush_scale_size): removed bogus
	"return" from void function. Fixes bug #433339, patch from Eric
	Lamarque.


svn path=/trunk/; revision=22335
2007-04-25 16:04:06 +00:00
54737072a0 added #warning to use GParamSpecString's features once we depend on a
2007-04-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpparamspecs.c (gimp_param_string_validate): added
	#warning to use GParamSpecString's features once we depend on a
	fixed version.


svn path=/trunk/; revision=22330
2007-04-25 14:38:20 +00:00
d6fd55064b added "gboolean non_empty" to require the string being non-empty. Changed
2007-04-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpparamspecs.[ch] (struct GimpParamSpecString)
	(gimp_param_spec_string): added "gboolean non_empty" to require
	the string being non-empty. Changed validation accordingly.
	Also fixed validation for static strings (we were happily
	freeing and modifying them before).

	* app/xcf/xcf.c: filenames should be non-empty.
	* app/pdb/gimp-pdb-compat.c: compat strings shouldn't.

	* tools/pdbgen/app.pl: add support for $arg->{non_empty} and
	changed generation of calls to gimp_param_spec_string().

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/vectors.pdb
	* tools/pdbgen/pdb/plug_in.pdb
	* tools/pdbgen/pdb/gradient.pdb
	* tools/pdbgen/pdb/palette_select.pdb
	* tools/pdbgen/pdb/palette.pdb
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/progress.pdb
	* tools/pdbgen/pdb/procedural_db.pdb
	* tools/pdbgen/pdb/font_select.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/unit.pdb
	* tools/pdbgen/pdb/brush.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/buffer.pdb: require non-empty strings for data
	object names, procedure names, unit strings, PDB data identifiers
	and buffer names. Removed some manual strlen() checks, all other
	places just got better error reporting for free (proper validation
	error instead of unspecific execution error).

	* app/pdb/*_cmds.c: regenerated.


svn path=/trunk/; revision=22329
2007-04-25 14:23:05 +00:00
44cefcc818 app/plug-in/Makefile.am app/plug-in/gimppluginmanager.[ch] moved
2007-04-18  Sven Neumann  <sven@gimp.org>

	* app/plug-in/Makefile.am
	* app/plug-in/gimppluginmanager.[ch]
	* app/plug-in/gimppluginmanager-restore.[ch]: moved
	gimp_plug_in_manager_restore() to it's own file.

	* app/core/gimp.c: changed accordingly.

	* app/Makefile.am (LDFLAGS): convince the linker to do its job.


svn path=/trunk/; revision=22286
2007-04-18 15:06:05 +00:00
49b8176aa5 Allow other applications to open images in GIMP as if they were new images
2007-04-17  Sven Neumann  <sven@gimp.org>

	Allow other applications to open images in GIMP as if they were
	new images (without associating a filename). Fixes bug #423118.

	* app/file/file-open.[ch]: added parameter 'as_new' to
	file_open_image() and its variants.

	* app/actions/data-commands.c
	* app/actions/documents-commands.c
	* app/actions/file-commands.c
	* app/core/gimpimagefile.c
	* app/dialogs/file-open-dialog.c
	* app/dialogs/file-open-location-dialog.c
	* app/widgets/gimptoolbox.c
	* app/widgets/gimptoolbox-dnd.c: changed accordingly.

	* app/app.[ch]
	* app/main.c: added new command-line option '--as-new'.

	* app/widgets/gimpdbusservice.[ch]
	* app/widgets/dbus-service.xml: added new method "OpenAsNew" to the
	D-Bus interface.

	* docs/gimp.1.in: document the new command-line option.


svn path=/trunk/; revision=22264
2007-04-17 15:54:01 +00:00
f2acde4c60 app/base/base-types.h remove redundant and inconsistently used MaskBuf
2007-04-13  Michael Natterer  <mitch@gimp.org>

	* app/base/base-types.h
	* app/base/temp-buf.[ch]: remove redundant and inconsistently used
	MaskBuf type and API.

	* app/core/gimpbrush-scale.c
	* app/paint/gimpbrushcore.[ch]: use TempBuf and its API instead.
	This also optimizes away a useless memset() on brush scaling,
	we completely fill each of the created buffers anyway.


svn path=/trunk/; revision=22249
2007-04-13 14:04:37 +00:00
c6733ac891 app/base/Makefile.am removed these files.
2007-04-01  Michael Natterer  <mitch@gimp.org>

	* app/base/Makefile.am
	* app/base/brush-scale.[ch]: removed these files.

	* app/core/Makefile.am
	* app/core/gimpbrush-scale.[ch]: added the functions here as
	static utility functions. Also move the default implementations of
	GimpBrush::scale_size(), ::scale_mask() and ::scale_pixmap() here,
	including their utility functions.

	* app/core/gimpbrush.c: remove all scale stuff and
	include "gimpbrush-scale.h" instead.

	(gimp_brush_get_new_preview): use GimpBrush's scale functions
	instead of the now private ones. Cleanup.

	(gimp_brush_scale_mask)
	(gimp_brush_scale_pixmap): return a copy of the buf for
	scale == 1.0.


svn path=/trunk/; revision=22213
2007-04-01 13:38:22 +00:00
00be2f5f8c use SQR(x) instead of x*x.
2007-03-31  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-blend.c: use SQR(x) instead of x*x.


svn path=/trunk/; revision=22211
2007-03-31 16:45:19 +00:00
410d8a5546 cosmetisc
svn path=/trunk/; revision=22194
2007-03-29 14:09:12 +00:00
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
ce489b17ae allow adding a mask to a layer without alpha channel (bug #316207).
2007-03-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimplayer.c (gimp_layer_add_mask): allow adding a mask
	to a layer without alpha channel (bug #316207).

svn path=/trunk/; revision=22163
2007-03-22 17:58:42 +00:00
83981ef404 simplified brush scale calculation by making sure that brush_core->scale
2007-03-18  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.c: simplified brush scale calculation by
	making sure that brush_core->scale always contains a value that's
	suited as input for gimp_brush_scale_mask/pixmap() (bug #419290).

	(gimp_brush_core_calc_brush_size): removed this function. All
	places can now call gimp_brush_scale_size() directly with
	core->scale as parameter.

	(gimp_brush_core_calc_brush_scale): new function which returns
	a linear scale factor which contains both the area-based pressure
	scale factor and the linear paint options scale factor.

	(gimp_brush_core_start)
	(gimp_brush_core_get_paint_area): use the new function instead
	of doing these calculations manually.

	(gimp_brush_core_interpolate): remove call to
	gimp_brush_core_scale_brush_size() and use core->scale directly.

	(gimp_brush_core_get_paint_area)
	(gimp_brush_core_scale_mask)
	(gimp_brush_core_scale_pixmap): use gimp_brush_scale_size()
	instead of the removed gimp_brush_core_scale_brush_size().

	(gimp_brush_core_create_bound_segs): use only
	paint_options->brush_scale here since the canvas brush preview
	always has to asume full pressure.

	* app/core/gimpbrush.c (gimp_brush_scale_size): special case
	scale == 1.0 and return the mask's width/height without calling
	the virtual function.


svn path=/trunk/; revision=22141
2007-03-18 19:48:36 +00:00
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
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
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
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
4ddfeb7ddc don't include libgimpmath/gimpmathtypes.h
2007-03-10  Michael Natterer  <mitch@gimp.org>

	* app/core/core-types.h: don't include libgimpmath/gimpmathtypes.h

	* app/base/base-types.h: include it here. Also include
	libgimpcolor/gimpcolortypes.h


svn path=/trunk/; revision=22094
2007-03-10 19:31:07 +00:00