Commit Graph

56 Commits

Author SHA1 Message Date
Matthias Clasen
cb918cdb02 Changes to make gdk-pixbuf threadsafe (#157310, #157306, Colin Walters):
2004-11-12  Matthias Clasen  <mclasen@redhat.com>

	Changes to make gdk-pixbuf threadsafe  (#157310, #157306,
	Colin Walters):

	* gdk-pixbuf-io.h (enum GdkPixbufFormatFlags): Add
	GDK_PIXBUF_FORMAT_THREADSAFE to indicate that an image loader
	is threadsafe.

	* gdk-pixbuf-io.c (get_file_formats, _gdk_pixbuf_load_module):
	Use a lock to make initialization of global data structures
	threadsafe.
	* gdk-pixbuf-private.h:
	* gdk-pixbuf-io.c (_gdk_pixbuf_lock, _gdk_pixbuf_unlock):
	Auxiliary functions which use another lock to protect
	threadunsafe image loaders.

	* gdk-pixbuf-io.c (gdk_pixbuf_real_save):
	(save_to_callback_with_tmp_file):
	(gdk_pixbuf_real_save_to_callback):
	(gdk_pixbuf_new_from_xpm_data):
	(_gdk_pixbuf_generic_image_load):
	* gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file):
	* gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module):
	(gdk_pixbuf_loader_close):
	(gdk_pixbuf_loader_finalize):
	Use _gdk_pixbuf_lock() and _gdk_pixbuf_unlock().

	* io-ani.c, io-bmp.c, io-gif.c, io-ico.c:
	* io-jpeg.c, io-pcx.c, io-png.c, io-pnm.c:
	* io-ras.c, io-tga.c, io-wbmp.c, io-xbm.c:
	* io-xpm.c: Mark as threadsafe.

	* io-tiff.c: Remove pointless locking, mark as
	threadunsafe.
2004-11-12 05:34:31 +00:00
Matthias Clasen
01743e7235 Handle 4-channel pixbufs when saving to jpeg. 2004-09-13 23:34:34 +00:00
Matthias Clasen
2c08beafcf New functions to disable/enable individual loaders and to obtain license
Wed Jul  7 23:53:58 2004  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-io.h:
	* gdk-pixbuf-io.c (gdk_pixbuf_format_is_disabled):
	* gdk-pixbuf-io.c (gdk_pixbuf_format_set_disabled):
	* gdk-pixbuf-io.c (gdk_pixbuf_format_get_license):
	New functions to disable/enable individual loaders and to
	obtain license information about loaders.

	* gdk-pixbuf-io.h (GdkPixbufFormat): Add disabled and
	license fields.

	* gdk-pixbuf-io.c (_gdk_pixbuf_get_module):
	* gdk-pixbuf-io.c (_gdk_pixbuf_get_named_module): Skip
	disabled loaders.

	* io-*.c: Add license information in the fill_info
	functions.
2004-07-08 03:56:36 +00:00
Manish Singh
4bd1fa5ff3 removed unnecessary G_OBJECT() cast checks.
Sun Feb  8 01:07:20 2004  Manish Singh  <yosh@gimp.org>

        * gdk-pixbuf-io.c: removed unnecessary G_OBJECT() cast checks.

        * io-jpeg.c: make the return type for to_callback_empty_output_buffer
        "boolean", which should be defined by the jpeg headers. The right
        return type for this function depends on how the jpeg library
        was built (one wonders what happens if different compilers are used).
2004-02-08 09:13:18 +00:00
Matthias Clasen
03376d79fa New public API to save pixbufs to non-file locations. (#82203, Tim Evans)
Wed Jan  7 02:41:14 2004  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-io.c (gdk_pixbuf_save_to_bufferv):
	* gdk-pixbuf-io.c (gdk_pixbuf_save_to_buffer):
	* gdk-pixbuf-io.c (gdk_pixbuf_save_to_callbackv):
	* gdk-pixbuf-io.c (gdk_pixbuf_save_to_callback): New public API
	to save pixbufs to non-file locations.  (#82203, Tim Evans)

	* gdk-pixbuf.h:
	* gdk_pixbuf.def: Declare the new public API.

	* gdk-pixbuf-io.h: Add save_to_callback to the module interface.

	* io-jpeg.c:
	* io-png.c: Implement save_to_callback.

	* gdk-pixbuf-io.c (gdk_pixbuf_savev):
	* gdk-pixbuf-io.c (gdk_pixbuf_save): Update documentation.

	* gdk-pixbuf-io.c (gdk_pixbuf_real_save): Support saving via
	image_module->save_to_callback.

	* gdk-pixbuf-io.c (gdk_pixbuf_real_save_to_callback): New generic
	save_to_callback function which falls back to image_module->save
	on a temp file.
2004-01-07 01:57:42 +00:00
Matthias Clasen
5b26e695a1 Make it possible to call gdk_pixbuf_loader_set_size (loader, 0, 0) by
Wed Jan  7 01:17:36 2004  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-loader.c (gdk_pixbuf_loader_size_func):
	* gdk-pixbuf-loader.c (gdk_pixbuf_loader_set_size):
	* gdk-pixbuf-loader.c (gdk_pixbuf_loader_init): Make it possible
	to call gdk_pixbuf_loader_set_size (loader, 0, 0) by changing
	the initial values of priv->width/height to -1.

	* io-tiff.c (tiff_image_parse):
	* io-ras.c (RAS2State):
	* io-pnm.c (gdk_pixbuf__pnm_image_load_increment):
	* io-pcx.c (gdk_pixbuf__pcx_load_increment):
	* io-jpeg.c (gdk_pixbuf__jpeg_image_load_increment):
	* io-png.c (png_info_callback):
	* io-ico.c (DecodeHeader):
	* io-bmp.c (DecodeHeader): Call size_func once the size is known,
	even if the module can't make use of the scaling information. If
	size_func returns 0, don't allocate a pixbuf and return, if
	necessary with an error.

	* gdk-pixbuf.h:
	* gdk-pixbuf-io.c (gdk_pixbuf_get_file_info): A new function
	to determine the type and size of an image file without loading
	it completely.  (#53725)
2004-01-07 00:26:58 +00:00
Matthias Clasen
b6d19fe207 Add missing static qualifiers apparently causing problems on some
2003-03-21  Matthias Clasen  <maclas@gmx.de>

	* io-jpeg.c (gdk_pixbuf__jpeg_image_begin_load):
	* io-ico.c (gdk_pixbuf__ico_image_stop_load): Add missing static
	qualifiers apparently causing problems on some platforms. (#108617)
2003-03-21 00:13:17 +00:00
Matthias Clasen
45f7541f42 Support for separately installed loaders. (#77486)
* Makefile.am gdk-pixbuf-animation.c gdk-pixbuf-data.c
	gdk-pixbuf-io.c gdk-pixbuf-io.h gdk-pixbuf-loader.c
	gdk-pixbuf-loader.h gdk-pixbuf-private.h gdk-pixbuf.h
	gdk-pixdata.c io-ani-animation.h io-ani.c io-bmp.c
	io-gif-animation.c io-gif-animation.h io-gif.c io-ico.c
	io-jpeg.c io-png.c io-pnm.c io-ras.c io-tga.c io-tiff.c
	io-wbmp.c io-xbm.c io-xpm.c pixbufloader_ani.def
	pixbufloader_bmp.def pixbufloader_gif.def pixbufloader_ico.def
	pixbufloader_jpeg.def pixbufloader_png.def
	pixbufloader_pnm.def pixbufloader_ras.def pixbufloader_tga.def
	pixbufloader_tiff.def pixbufloader_wbmp.def
	pixbufloader_xbm.def pixbufloader_xpm.def test-gdk-pixbuf.c
	gdk-pixbuf-animation.h queryloaders.c: Support for separately
	installed loaders.  (#77486)
2002-10-03 22:39:51 +00:00
Owen Taylor
71277f4075 Fix memory leak. (#94399)
Thu Oct  3 18:25:57 2002  Owen Taylor  <otaylor@redhat.com>

        * io-jpeg.c (gdk_pixbuf__jpeg_image_save):
        Fix memory leak. (#94399)
2002-10-03 22:32:39 +00:00
Federico Mena Quintero
8409b23d64 Unref the pixbuf if we hit an unsupported colorspace.
2002-09-12  Federico Mena Quintero  <federico@ximian.com>

	* io-jpeg.c (gdk_pixbuf__jpeg_image_load): Unref the pixbuf if we
	hit an unsupported colorspace.
2002-09-12 20:05:28 +00:00
Matthias Clasen
e4ab381018 Load-at-size functionality for gdk-pixbuf. 2002-07-06 23:10:46 +00:00
Matthias Clasen
155aa55bed Better colorspace support for the jpeg loader (#61211):
* io-jpeg.c (convert_cmyk_to_rgb): New function.
	(gdk_pixbuf__jpeg_image_load,
	gdk_pixbuf__jpeg_image_load_increment): Allocate a pixbuf with
	alpha for 4-channel jpegs and call convert_cmyk_to_rgb for these.
2002-07-01 22:20:20 +00:00
Matthias Clasen
ba2bd5533e Use libjpeg in buffered-image mode in order to incrementally display
* io-jpeg.c: Use libjpeg in buffered-image mode in order to
incrementally display incrementally loaded progressive jpegs.
2002-06-13 20:22:59 +00:00
Matthias Clasen
6939510851 More fixes for #77807:
* io-tga.c (get_contiguous_pixbuf): Helper function to create
	a pixbuf with a contiguous pixel array while being careful about
	overflow.

	* io-tga.c (fill_in_context, get_image_pseudocolor,
	get_image_truecolor, get_image_grayscale): Use
	get_contiguous_pixbuf instead of manually allocating image
	storage.

	* io-xpm.c (pixbuf_create_from_xpm):
	* io-pnm.c (gdk_pixbuf__pnm_image_load):
	* io-jpeg.c (gdk_pixbuf__jpeg_image_load): Use gdk_pixbuf_new
	instead of manually allocating image storage.
2002-04-11 21:18:40 +00:00
Manish Singh
1530c14531 Made sure all the error cases involving jpeg or png load/saves clean
Sat Jan 19 20:49:20 2002  Manish Singh  <yosh@gimp.org>

        * io-jpeg.c, io-png.c: Made sure all the error cases involving
        jpeg or png load/saves clean themselves up properly. Marked some
        variables needed for cleanup volatile so they aren't clobbered by
        setjmp.
2002-01-20 04:52:47 +00:00
Sebastian Wilhelmi
d99bd97fe8 Remove assorted G_OBJECT casts where unnecessary.
2001-12-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gdk-pixbuf-animation.c, gdk-pixbuf-loader.c, gdk-pixpuf.c,
	io-gif-animation.c, io-gif.c, io-tiff.c, test-loaders.c: Remove
	assorted G_OBJECT casts where unnecessary.

	* gdk-pixbuf-loader.c: Call g_object_ref and g_object_unref
	instead of gdk_pixbuf_animation_ref and gdk_pixbuf_animation_unref
	resp.

	* gdk-pixbuf-csource.c, io-bmp.c, io-gif-animation.c, io-ico.c,
	io-jpeg.c, io-png.c, io-pnm.c, io-ras.c, io-tga.c, io-wbmp.c,
	io-xbm.c, io-xpm.c, test-gdk-pixbuf.c: Dito for gdk_pixbuf_ref and
	gdk_pixbuf_unref.

	* Makefile.am, pixops/Makefile.am: Compile everything with
	-DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED

	* gdk-pixdata.c: Use g_ascii_strup() instead of g_strup().

	* io-xpm.c: Use g_ascii_strcasecmp() instead of g_strcasecmp().

	* demos/testpixbuf-drawable.c, demos/testpixbuf-save.c,
	demos/testpixbuf-scale.c, demos/testpixbuf.c: Call g_object_ref
	and g_object_unref instead of gdk_pixbuf_ref and gdk_pixbuf_unref
	resp.
2001-12-13 21:22:12 +00:00
Sven Neumann
40c2926482 gdk-pixbuf/gdk-pixbuf-io.c gdk-pixbuf/gdk-pixbuf-private.h
2001-10-05  Sven Neumann  <sven@gimp.org>

	* gdk-pixbuf/gdk-pixbuf-io.c
	* gdk-pixbuf/gdk-pixbuf-private.h
	* gdk-pixbuf/gdk-pixbuf.c
	* gdk-pixbuf/gdk-pixbuf.h
	* gdk-pixbuf/io-jpeg.c
	* gdk-pixbuf/io-png.c: changed GDK_PIXBUF_ERROR_BAD_OPTION_VALUE to
	GDK_PIXBUF_ERROR_BAD_OPTION to we can use it for bad keys too. Added
	new public API gdk_pixbuf_get_option() to retrieve key/value pairs
	set by an image loader. Added support for saving and reading PNG tEXt
	chunks in PNG images.

	* demos/testpixbuf-save.c
	* demos/testpixbuf-scale.c: simple tests for the new PNG tEXt chunk
	feature.

	* gdk-pixbuf/tmpl/gdk-pixbuf.sgml: adapt to changes in GDK_PIXBUF_ERROR
	enum.
2001-10-05 18:51:47 +00:00
Matthias Clasen
49b3e05a30 Robustness fixes and test images for the jpeg, tiff, pnm, gif, xpm and tga
loaders.
2001-09-14 22:04:55 +00:00
Matthias Clasen
d504d82aa8 Add ico and wbmp tests. Fail with a suitable error if buffer allocation
* test-images.h, test-loaders.c: Add ico and wbmp tests.
* io-jpeg.c (gdk_pixbuf__jpeg_image_save): Fail with a suitable
error if buffer allocation fails.
* io-ico.c: Make .ICO loader more robust.
All of these are due to sandmann@daimi.au.dk (#50187)
2001-08-20 06:47:28 +00:00
Havoc Pennington
b4e4a0ed9d fix some shell typos
2001-05-04  Havoc Pennington  <hp@redhat.com>

	* configure.in: fix some shell typos

	* gtk/gtkcolorsel.c (gtk_color_selection_destroy): warning fix

	* gtk/gtkimage.c: handle animations

	* gtk/gtkcheckbutton.c (gtk_check_button_size_request): request
	border_width * 2, not just border_width

	* gtk/gtkscale.c: add "format_value" signal to allow people
	to override the way values are drawn.
	(gtk_scale_get_value_size): fix width/height mistake,
	and compute size from actual displayed text, not
	from made-up text.

	* gtk/gtktexttag.c (gtk_text_tag_class_init): fix return type in
	signal registration

	* tests/testtext.c: Add "Remove all tags" menu item for testing

	* gtk/gtktextbuffer.c (gtk_text_buffer_remove_all_tags): implement

	* demos/gtk-demo/main.c (main): add hack so we can find modules
	without installing gtk

	* demos/gtk-demo/textview.c (insert_text): demo font scaling

	* gtk/gtkcellrenderertext.c: Add "scale" property (font scaling
	factor)
	(gtk_cell_renderer_text_set_property): remove some bogus
	g_object_notify

	* gtk/gtktexttag.c: add "scale" property which is a font scaling
	factor

	* gtk/gtktextlayout.c (add_text_attrs): add font scale attribute
	to layout

	* gtk/gtktextiter.c (gtk_text_iter_is_start): rename from
	gtk_text_iter_is_first

2001-05-04  Havoc Pennington  <hp@redhat.com>

	* pixops/pixops.c (pixops_process): merge fix from stable: Patch
	 from hoshem@mel.comcen.com.au to fix nonzero X offsets.  Fixes
	 bug #50371.

        * gdk-pixbuf/pixops/pixops.c (pixops_composite_nearest): merge
	from stable: Patch from OKADA Mitsuru <m-okada@fjb.co.jp> to fix
	confusion of using "src" instead of "p".
        (pixops_composite_color_nearest): Use a more accurate (and
	correct, to begin with) compositing method.  This cures checks
	showing through on images with no alpha.

	* gdk-pixbuf.c (gdk_pixbuf_fill): fix bug that left some trailing
	bytes unfilled.

	* gdk-pixbuf-io.h: fix UpdatedNotifyFunc to use signed ints

	* gdk-pixbuf-loader.h (struct _GdkPixbufLoaderClass): Change
	area_updated signal to use signed ints.  Removed animation-related
	signals.

	* io-gif.c, io-gif-animation.h, io-gif-animation.c: Massive
	rewrite action

	* gdk-pixbuf-animation.c: Add GdkPixbufAnimationIter to abstract
	all the pesky details. Remove old frame-based API. Make
	GdkPixbufAnimation an abstract base class, derived by the loaders.
2001-05-07 15:58:47 +00:00
Alexander Larsson
ba46da61a7 Copy data and free data with free().
2001-02-19 Alexander Larsson  <alexl@redhat.com>

	* gdk/linux-fb/gdkimage-fb.c (gdk_image_new_bitmap):
	Copy data and free data with free().

	* gdk-pixbuf/gdk-pixbuf.c:
	* gdk-pixbuf/io-jpeg.c:
	* gdk-pixbuf/io-png.c:
	Use g_try_malloc/g_free instead malloc/free.

	* gdk-pixbuf/test-gdk-pixbuf.c:
	Must... initialize... gobject...

	* gdk-pixbuf/pixops/timescale.c:
	* gtk/gtkcalendar.c:
	Use g_malloc instead of malloc.
2001-02-19 14:35:25 +00:00
Havoc Pennington
e0fee22e78 Add built marshaller files to support GdkPixbufLoader signals
2001-01-22  Havoc Pennington  <hp@redhat.com>

	* Makefile.am: Add built marshaller files to support
	GdkPixbufLoader signals

	* gdk-pixbuf-io.c (gdk_pixbuf_load_module): have
	GDK_PIXBUF_MODULEDIR unconditionally replace the compiled-in
	module location, rather than acting as a fallback, because we are
	using GDK_PIXBUF_MODULEDIR to use gdk-pixbuf before installing it.

	* gdk-pixbuf.h: include gdk-pixbuf-loader.h

        * gdk-pixbuf-loader.h, gdk-pixbuf-loader.c: Move back over here
	from gtk, and add error to close(), because stop_load may do
	parsing of the image.

	* pixops/have_mmx.S (_pixops_have_mmx): add newline at end of file

        * io-*.c: make individual operations static, and add fill_vtable
	functions which are exported. Fix the collection of type warnings
	that surfaced, including a number of functions that didn't
	properly take a GError and some that weren't
	const-correct. Involved adding error handling for a few loaders.

	* gdk-pixbuf-io.h: Add error reporting to stop_load function

	* gdk-pixbuf-io.c (gdk_pixbuf_load_module): change to just look up
	a function that fills in the GdkPixbufModule vtable, instead of
	looking up all the image functions individually; this means we
	can get type safety within modules for the loader functions.
	Also it means you don't have to keep the statically compiled and
	GModule versions in sync.

	* test-gdk-pixbuf.c (main): remove gdk_pixbuf_init()

	* make-inline-pixbuf.c (main): remove call to gdk_pixbuf_init()

	* gdk-pixbuf.h: nuke gdk_pixbuf_init()

	* gdk-pixbuf-animation.c (gdk_pixbuf_frame_get_type): g_type_init
	() here

	* gdk-pixbuf.c (gdk_pixbuf_get_type): g_type_init () here

	* gdk-pixbuf-animation.c (gdk_pixbuf_animation_get_type):
	g_type_init() here


2001-01-22  Havoc Pennington  <hp@redhat.com>

	* demos/testanimation.c: fix to reflect gdk-pixbuf changes

	* demos/testpixbuf.c: fix to reflect gdk-pixbuf changes

	* gtk/gdk-pixbuf-loader.c, gtk/gdk-pixbuf-loader.h:
	Remove, move back to gdk-pixbuf

	* gtk/gtktextiter.c, gtk/gtktextiter.h: add sentence equivalents
	to all the word functions

	* gtk/gtktextview.c (gtk_text_view_start_cursor_blink): return
	before doing anything on NULL layout or if we don't have the focus

	* gtk/testtext.c (fill_example_buffer): "justification"

	* gtk/gtktexttag.h, gtk/gtktexttag.c: change the tag attribute
	to be called "justification" not "justify"

	* demos/gtk-demo/textview.c (create_tags): "justification"

	* gtk/gtktextlayout.c (set_para_values): Handle char-wise wrapping
2001-01-22 23:09:48 +00:00
Havoc Pennington
7a4c689387 Some updates
2000-10-18  Havoc Pennington  <hp@redhat.com>

	* gtk/gtk-sections.txt: Some updates

	* gdk/gdk-sections.txt: remove GdkPixbufAlphaMode

	* gdk-pixbuf/gdk-pixbuf-sections.txt: Add new API, remove
	GdkPixbufClass/GdkAnimationClass since those are private

	* gdk-pixbuf/Makefile.am (IGNORE_HFILES): ignore more headers

2000-10-18  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextiter.c (gtk_text_iter_forward_to_newline): Fix a bug
	where any number of empty lines would get skipped

	* gtk/gtktextiter.h: Remove padding from GtkTextIter; live on the
	edge.

	* gtk/gtktextiter.c (gtk_text_iter_make_surreal): enhance the
	warning about invalid iterators (explain more thoroughly)
	(gtk_text_iter_in_region): rename gtk_text_iter_in_range

	* gtk/gtktextview.c (FOCUS_EDGE_WIDTH): Make focus rectangle less
	big

	* demos/*.c: Add error handling

	* gtk/gtktextbuffer.c: don't modify const iterators

	* gtk/gdk-pixbuf-loader.c: Add full error handling here

	* gtk/gtkimage.c (gtk_image_set_from_file): ignore errors
	on file load

	* gtk/gtkiconfactory.c: Update to reflect addition of error
	handling to gdk-pixbuf loaders

2000-10-16  Havoc Pennington  <hp@redhat.com>

	* gdk-pixbuf-io.c (gdk_pixbuf_get_module)
	(gdk_pixbuf_get_named_module) (gdk_pixbuf_load_module):
	add error reporting here also

	* make-inline-pixbuf.c (main): use GError

	* io-xpm.c: include unistd.h

	* gdk-pixbuf-util.c: include string.h

	* io-*.c: add error reporting

	* gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file): add
	error reporting

	* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file): Add error reporting

	* gdk-pixbuf-io.h: Add GError** to load_increment and load
	methods

	* gdk-pixbuf-io.c (gdk_pixbuf_save) (gdk_pixbuf_savev): return
	a G_FILE_ERROR if we fail to write or close the file.

	* gdk-pixbuf.h: remove GDK_PIXBUF_ERROR_IO, instead we'll use
	G_FILE_ERROR_*. Rename enum to GdkPixbufError, properly following
	the GError naming rules. Add GError** to load functions.
2000-10-18 18:42:54 +00:00
Havoc Pennington
518f32d97e contrib subdir
2000-10-06  Havoc Pennington  <hp@redhat.com>

	* Makefile.am (SRC_SUBDIRS): contrib subdir

	* gdk/gdkpixbuf.h: Move GdkPixbufAlphaMode to gdk-pixbuf library,
	so it can be used in Xlib version

	* demos/testpixbuf.c (update_timeout): error checking from 1.0
	tree

	* gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_get_pixbuf): Sync
	change from 1.0 tree that returns first frame of animation
	if the loaded file is an animation.

        * contrib: add new directory to hold stuff that comes with GTK+
	but isn't really part of GTK+ (for now, gdk-pixbuf-xlib)

	* configure.in: add contrib/*

2000-10-06  Havoc Pennington  <hp@redhat.com>

	* gdk-pixbuf.h: add GdkPixbufAlphaMode

2000-10-06  Havoc Pennington  <hp@redhat.com>

        This entry is a summary of the merged-in changes from 1.0.
	Relevant original ChangeLog entries are spliced in after
	this entry; the files they refer to are from the 1.0
	gdk-pixbuf sources.

	* pixops/pixops.c (pixops_composite_nearest): sync a small fix
	from 1.0

	* io-xpm.c (xpm_seek_string): add fscanf error check from 1.0
	Add progressive loader from 1.0

	* io-tiff.c (gdk_pixbuf__tiff_image_begin_load): mem leak fixes
	from 1.0 tree

	* io-pnm.c: new version from 1.0 tree

	* io-jpeg.c (gdk_pixbuf__jpeg_image_load): sync from 1.0, use
	malloc not g_malloc

	* io-gif.c (lzw_read_byte): sync from 1.0, change a g_error to
	g_warning
	(gif_get_next_step): return 0 here, sync from 1.0

	* gdk-pixbuf-util.c: sync email address change for Cody
	Russell

2000-09-11  Jeffrey Stedfast  <fejj@helixcode.com>

	* gdk-pixbuf/io-pnm.c: Pretty much totally rewrote again because
	last nights code was still "broken". Should now properly handle
	all error conditions gracefully.

2000-09-10  Jeffrey Stedfast  <fejj@helixcode.com>

	* gdk-pixbuf/io-pnm.c: Rewrote.

2000-09-09  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/pixops/pixops.c (pixops_composite_nearest): Compute
	the correct dest offset.

2000-08-25  Federico Mena Quintero  <federico@helixcode.com>

	* gdk-pixbuf/io-xpm.c: #include <unistd.h>

2000-08-05  Larry Ewing  <lewing@helixcode.com>

	* gdk-pixbuf/io-tiff.c: stop leaking context->tempname.

	* gdk-pixbuf/io-xpm.c: same as above.

2000-07-26  Michael Meeks  <michael@helixcode.com>

	* gdk-pixbuf/io-jpeg.c (gdk_pixbuf__jpeg_image_load): make
	g_malloc a malloc.

2000-07-21  Larry Ewing  <lewing@helixcode.com>

	* gdk-pixbuf/io-xpm.c: add a fake progressive loader so that
	xpm at least supports the progressive interface like the one in
	io-tiff.c. This should be reimplemented as an actual progressive
	loader.

2000-07-19  Jonathan Blandford  <jrb@redhat.com>

	* demo/pixbuf-demo.c (update_timeout): changed scaling level to
	make it look better.
	* gdk-pixbuf/testpixbuf.c (update_timeout): Patch from michael
	meeks to handle errors better.
2000-10-09 17:22:20 +00:00
Havoc Pennington
6b9f907270 Pixbuf saving, patch from David Welton.
2000-10-05  Havoc Pennington  <hp@redhat.com>

        Pixbuf saving, patch from David Welton.

	* Makefile.am (GDK_PIXBUF_LIBS): add INTLLIBS
	(libgdk_pixbuf_1_3_la_SOURCES): add gdk-pixbuf-i18n.h

	* gdk-pixbuf-i18n.h: Add _() to gdk-pixbuf

	* io-png.c (gdk_pixbuf__png_image_save): PNG save routine.

	* io-jpeg.c (gdk_pixbuf__jpeg_image_save): JPEG save routine.

	* gdk-pixbuf-io.c (gdk_pixbuf_save):
	(gdk_pixbuf_savev): Implement pixbuf saving routines

	* gdk-pixbuf.c (gdk_pixbuf_error_quark): pixbuf error quark
	function

	* gdk-pixbuf.h: Add public save routines; add pixbuf error
	types

	* gdk-pixbuf-io.h: Add save function to GdkPixbufModule

2000-10-05  Havoc Pennington  <hp@redhat.com>

        * demos/testpixbuf-save.c: add pixbuf save test

	* demos/Makefile.am: add testpixbuf-save.c
2000-10-06 18:19:18 +00:00
Tim Janik
afee2c67c5 applied patch from Andreas Persenius <ndap@swipnet.se> that updates the
Wed Jul 26 12:59:31 2000  Tim Janik  <timj@gtk.org>

        * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
        updates the license headers to the GNU Lesser General Public License,
        as well as updating the copyright year to 2000.
2000-07-26 11:33:08 +00:00
Tor Lillqvist
773aacf9b6 Win32 build setup:
2000-07-23  Tor Lillqvist  <tml@iki.fi>

	Win32 build setup:

	* makefile.mingw.in
	* pixops/makefile.mingw.in
	* pixbuf_*.def: New files.

	* Makefile.am
	* pixops/Makefile.am: Add them. Add rule to generate makefile.mingw.

	* gdk-pixbuf-io.c (gtk_win32_get_installation_directory):
	New function, to get the GTK+ installation directory from
	the Windows Registry, where the installation program
	for whatever software includes GTK+ has stored it.

	Used to avoid having hardcoding the directory where to look for
	loaders. This function is needed by gtk, too, so it should
	really be just in one place. Maybe a small static library
	one level up from here?

	* gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file)
	* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file):
	Open file in binary mode. This *is* standard C. (No-op on Unix,
	of course.)

	* io-jpeg.c: If we don't HAVE_SIGSETJMP, use normal setjmp().

	* io-tiff.c: Use g_get_tmp_dir(). If we don't HAVE_MKSTEMP, use
	mktemp() and open().
	(gdk_pixbuf__tiff_image_stop_load): g_free() also the tempname.

	* pixops/*.S: The Gas from mingw32 doesn't like the .type
	pseudo-op. Conditionalise on __MINGW32__, but probably
	should conditionalise on Gas version instead? Or could we
	do without .type on all systems?

	* pixops/timescale.c: Use g_get_current_time()
	instead of gettimeofday().
2000-07-22 23:50:19 +00:00
Not Zed
85e7a89b13 Initialise the error handler exit routine to our own. Note this means that
2000-05-30  Not Zed  <NotZed@HelixCode.com>

	* gdk-pixbuf/io-jpeg.c (gdk_pixbuf__jpeg_image_begin_load):
	Initialise the error handler exit routine to our own.  Note this
	means that every function that accesses the jpeg lib on this
	object MUST do a setjmp.
	(gdk_pixbuf__jpeg_image_stop_load): setjmp before accessing jpeg
	lib for handling fatal error.
	(gdk_pixbuf__jpeg_image_load_increment): And here too.  So now
	your applications dont quit if there's a jpeg error!
2000-05-31 02:07:07 +00:00
Federico Mena Quintero
829ed02435 Most of this patch is based on a patch by Havoc Pennington (hp@redhat.com)
2000-04-11  Federico Mena Quintero  <federico@helixcode.com>

	Most of this patch is based on a patch by Havoc Pennington
	(hp@redhat.com) to make GdkPixbuf's structures opaque and to
	remove the libart dependency.

	* gdk-pixbuf/gdk-pixbuf.h: Removed the public structures.
	(GdkColorspace): New enum that for now only contains
	GDK_COLORSPACE_RGB.
	(GdkPixbufDestroyNotify): New type for the pixbuf's pixels destroy
	notification function.
	(GdkInterpType): New num with interpolation types.

	* *.[ch]: Replace the libart stuff with our own stuff.

	* pixops/*.[ch]: Likewise.

	* gdk-pixbuf/gdk-pixbuf-private.h: New file with the private
	declarations of the GdkPixbuf structures.

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_new_from_art_pixbuf):
	Removed function.
	(gdk_pixbuf_get_format): Constify.
	(gdk_pixbuf_get_n_channels): Constify.
	(gdk_pixbuf_get_has_alpha): Constify.
	(gdk_pixbuf_get_bits_per_sample): Constify.
	(gdk_pixbuf_get_pixels): Constify.
	(gdk_pixbuf_get_width): Constify.
	(gdk_pixbuf_get_height): Constify.
	(gdk_pixbuf_get_rowstride): Constify.

	* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_copy): New function to copy
	a pixbuf.

	* gdk-pixbuf/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Added a
	bits_per_sample argument; currently only 8 bits per sample are
	supported.

	* gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_frame_get_pixbuf):
	New accessor.
	(gdk_pixbuf_frame_get_x_offset): New accessor.
	(gdk_pixbuf_frame_get_y_offset): New accessor.
	(gdk_pixbuf_frame_get_delay_time): New accessor.
	(gdk_pixbuf_frame_get_action): New accessor.

	* gdk-pixbuf/gdk-pixbuf-render.c
	(gdk_pixbuf_render_pixmap_and_mask): Instead of returning a solid
	mask rectangle for pixbufs without an alpha channel, set the
	*mask_return to NULL.

	* gdk-pixbuf/gdk-pixbuf-util.c (gdk_pixbuf_add_alpha): Constify.

	* gdk-pixbuf/gdk-pixbuf-scale.c: Fix includes.

	* gdk-pixbuf/gdk-pixbuf-scale.c (gdk_pixbuf_scale): Added some
	preconditions.  Maybe we should also check for the colorspace,
	bits per pixel, and such.
	(gdk_pixbuf_composite): Likewise.
	(gdk_pixbuf_composite_color): Likewise.
	(gdk_pixbuf_scale_simple): Likewise, and fail gracefully if we
	cannot allocate the new pixbuf.
	(gdk_pixbuf_composite_color_simple): Likewise.

	* gdk-pixbuf/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_render):
	Use art_rgb_rgba_affine() or art_rgb_affine() since we no longer
	have an ArtPixBuf.

	* gdk-pixbuf/io-bmp.c: Fix includes.

	* gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Fixed cast in
	an lvalue.

	* TODO: Populated.

	* configure.in: Removed checks for libart.

	* gdk-pixbuf/Makefile.am: Removed references to libart.
	(noinst_HEADERS): Added gdk-pixbuf-private.h.

	* gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_LDFLAGS): Incremented
	the version number of the libtool library to indicate that this
	definitely is not compatible with the old usage.  I know you love
	me.  I know you do.

	* configure.in: Bumped version number to 0.7.0.

	* README: Updated.

	* gdk-pixbuf-config.in (--libs): We no longer require libart.

	* DEPENDS.libgdk_pixbuf: We no longer depend on libart.

	* gdk-pixbuf.spec.in: Updated, but I don't guarantee anything.
2000-04-11 07:03:25 +00:00
Federico Mena Quintero
79d6346057 0.6.0 - Federico 2000-02-22 00:29:00 +00:00
Jonathan Blandford
8f48c4b3cd Change the order of the update func to make it more compatible with the
2000-01-05  Jonathan Blandford  <jrb@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-io.h: Change the order of the update func
	to make it more compatible with the rest of GTK.  Added animation
	framework for progressive loading.

	* gdk-pixbuf/io-bmp.c (image_begin_load): Modified to handle new
	system.
	* gdk-pixbuf/io-ico.c (image_begin_load): ditto
	* gdk-pixbuf/io-png.c (image_begin_load): ditto
	* gdk-pixbuf/io-ras.c (image_begin_load): ditto
	* gdk-pixbuf/io-jpeg.c (image_begin_load): ditto
	* gdk-pixbuf/io-pnm.c (image_begin_load): ditto
	* gdk-pixbuf/io-tiff.c (image_begin_load): ditto
	* gdk-pixbuf/io-gif.c (image_begin_load): ditto
2000-01-05 23:06:13 +00:00
Federico Mena Quintero
25a8142429 #include <config.h>, and fix includes.
1999-12-02  Federico Mena Quintero  <federico@redhat.com>

	* src/testpixbuf.c: #include <config.h>, and fix includes.

	* src/testpixbuf-drawable.c: #include <config.h>, and fix includes.

	* src/io-xpm.c: Fix includes.

	* src/io-tiff.c: Fix includes.

	* src/io-ras.c: Fix includes, and do not include more stuff than needed.

	* src/io-pnm.c: Fix inlcudes, and do not include more stuff than needed.

	* src/io-png.c: Fix includes.

	* src/io-ico.c: Fix includes, and do not include more stuff than needed.

	* src/io-gif.c: Fix includes, and do not include more stuff than needed.

	* src/io-bmp.c: Fix includes, and do not include more stuff than needed.

	* src/gnome-canvas-pixbuf.c: Fix includes.

	* src/gdk-pixbuf.c: Fix includes.

	* src/gdk-pixbuf-util.c: Fix includes.

	* src/gdk-pixbuf-render.c: Fix includes.

	* src/gdk-pixbuf-io.h: Fix includes.

	* src/gdk-pixbuf-drawable.c: Fix includes.

	* src/gdk-pixbuf-drawable.h: Use angle brackets for the gdk-pixbuf
	include files.

	* src/gdk-pixbuf-data.c: Fix includes.

	* src/gdk-pixbuf-loader.c: #include <config.h>

	* src/gdk-pixbuf-loader.h: Use angle brackets for the gdk-pixbuf
	include files.

	* src/Makefile.am: Commented out the gdk-pixbuf-drawable stuff,
	since it is not finished.
1999-12-02 20:44:43 +00:00
Jonathan Blandford
14237d13e2 make the symlink. Does not work for srcdir != buildir != . Beats me why; I
1999-11-22  Jonathan Blandford  <jrb@redhat.com>

	* configure.in (GDK_PIXBUF_DIR): make the symlink.  Does not work
	for srcdir != buildir != .  Beats me why; I can't figure it out.
	AC_OUTPUT_COMMANDS doesn't seem to let me substitute it correctly.
1999-11-22 20:43:58 +00:00
Arturo Espinosa
a3a4606eab Warning fixes - Federico 1999-11-10 15:45:24 +00:00
Michael Fulbright
c9a347c8e9 Slight cosmetic cleanup.
1999-11-09  Michael Fulbright  <drmike@redhat.com>

	* src/io-jpeg.c: Slight cosmetic cleanup.

	* src/io-pnm.c: Fixed raw PNM loading bug. Also discovered that ASCII
        PBM loading has a similar problem and will address tomorrow.
1999-11-09 23:21:08 +00:00
Michael Fulbright
5de53804a1 Figured out problem with loading Progressive JPEG's progressively (say
1999-11-09  Michael Fulbright  <drmike@redhat.com>

* src/io-jpeg.c (image_load_increment): Figured out problem with
loading Progressive JPEG's progressively (say that 10 times fast).
Currently for Progressive JPEG's the entire image is loaded before
it is displayed. libjpeg supports a fancier mechanism which I may
implement later.

With these changes all JPEG formats appear to load properly for me.
1999-11-09 17:24:15 +00:00
Michael Fulbright
01fcce4cf9 Prettied up code slightly. Start of pnm loader (from file and
999-11-04  Michael Fulbright  <drmike@redhat.com>

	* src/io-jpeg.c: Prettied up code slightly.
	* src/io-pnm.c:  Start of pnm loader (from file and progressively).
	                 Doesn't do much yet (will finish tomorrow).
	* src/gdk-pixbuf-io.c: Added pnm to structure of known types.
1999-11-05 00:16:10 +00:00
Michael Fulbright
4107506f65 Add update_func callback. Call updated callback when new graphic data
1999-11-04  Michael Fulbright  <drmike@redhat.com>

	* src/io-jpeg.c (image_begin_load): Add update_func callback.
	* src/io-jpeg.c (image_load_increment): Call updated callback when
	new graphic data decoded.
1999-11-04 20:02:37 +00:00
Michael Fulbright
317e8b06ae Further removal of bugginess in local buffering code. Handles grayscale
1999-11-03  Michael Fulbright  <msf@redhat.com>

	* src/io-jpeg.c (image_load_increment): Further removal of
	bugginess in local buffering code. Handles grayscale jpegs
	correctly now.

	* src/io-jpeg.c (image_load_stop): Was freeing local context
	for jpeg library before calling jpeg_decompres_finish ().
1999-11-03 22:00:27 +00:00
Michael Fulbright
3d5a2b1230 Fixed code which moved buffer around as new data comes in to work
1999-11-03  Michael Fulbright  <drmike@redhat.com>

	* src/io-jpg.c image_load_increment(): Fixed code which moved
	buffer around as new data comes in to work properly. JPEG progressive
	loading should be working now except for grayscale JPEG's, which I
1999-11-03 17:17:32 +00:00
Elliot Lee
97688fd28e revert 1999-11-02 17:17:00 +00:00
Elliot Lee
bf146c95a1 Reorganize gdk_pixbuf_loader_write into three functions, and eliminate
* src/gdk-pixbuf-loader.c: Reorganize gdk_pixbuf_loader_write into three functions, and eliminate
duplication of code from write() and close(). Also fix bug where the 128-byte header was being
written twice.
1999-11-02 16:10:25 +00:00
Michael Fulbright
fcdf947205 Fixed small oopsie with grayscale jpeg handling - still not working for progressive 1999-10-29 23:07:23 +00:00
Michael Fulbright
40dfa38a36 Removed erroneous comments.
Dr Mike <drmike@redhat.com>
1999-10-29 22:54:02 +00:00
Michael Fulbright
05505d6a1d image_load_increment(): Fixed bug when image width was not a multiple of 4
1999-10-29  Michael Fulbright  <drmike@redhat.com>

        * src/io-jpeg.c: image_load_increment(): Fixed bug when
        image width was not a multiple of 4 - always use the
        gdk_pixbuf rowstride to increment pointers!
1999-10-29 22:43:51 +00:00
Michael Fulbright
a4a876d70e Added first cut at progressive jpeg loading. Currently does not handle
999-10-29  Michael Fulbright  <drmike@redhat.com>

        * src/io-jpeg.c: Added first cut at progressive jpeg loading.
        Currently does not handle either progressive jpeg files (jpeg
        files with multiple scans at different quality settings), but
        I plan on adding this support soon. These are fairly rare in
        my experience, so it shouldn't slow people down too much.
        Grayscale jpegs also don't work but that should be easy to fix.
1999-10-29 22:37:27 +00:00
Jonathan Blandford
e5dfd2f5da more work on the incremental loading 1999-10-26 20:43:39 +00:00
Federico Mena Quintero
7ef5dec32d Removed the unref_fn field. Now all memory management of the buffer is
1999-10-20  Federico Mena Quintero  <federico@redhat.com>

	* src/gdk-pixbuf.h (GdkPixbuf): Removed the unref_fn field.  Now
	all memory management of the buffer is done by libart.

	* src/gdk-pixbuf.c (gdk_pixbuf_unref): Do destruction here.
	Removed gdk_pixbuf_destroy, gdk_pixbuf_duplicate.

	* src/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Implemented in
	terms of the libart functions.  Removed the old code.

	* src/gdk-pixbuf-io.c (image_handler_load): Removed the save
	symbols.  Saving will not be implemented in GdkPixbuf.

	* src/io-gif.c: Removed the saving stub.
	(image_load): Fixed memory management to fail gracefully if we run
	out of memory while loading the image.  Close the gif file when we
	are done.  This still needs more error handling for the DGif
	functions.

	* src/io-jpeg.c (image_load): Some robustness fixes.

	* src/io-png.c: Removed the saving stuff.
	(image_load): Some memory management fixes.

	* src/io-tiff.c (image_load): Ditto.

	* src/io-xpm.c (pixbuf_create_from_xpm): Ditto.
1999-10-20 21:20:49 +00:00
Federico Mena Quintero
74268afdeb Reindented to use the GNOME Indentation.
1999-10-18  Federico Mena Quintero  <federico@redhat.com>

	* src/*: Reindented to use the GNOME Indentation.
1999-10-18 19:29:45 +00:00
Michael Meeks
6c13b03a45 Add pixbuf_duplicate,
Fix 'scale' API,
Add gdk_pixbuf_new,
clean io modules a tad.
1999-09-22 22:30:51 +00:00