Commit Graph

505 Commits

Author SHA1 Message Date
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
ab74970131 Turn the pixbuf attributes into (construct-only, but always readable)
Sun Jan  4 00:44:57 2004  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf.c (gdk_pixbuf_class_init): Turn the pixbuf
	attributes into (construct-only, but always readable)
	properties.  (#130196)

	* gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Set properties
	in g_object_new().
2004-01-03 23:45:06 +00:00
Matthias Clasen
661542ccea Fix building with --disable-modules --with-included-loaders, create an
Mon Dec 22 01:35:36 2003  Matthias Clasen  <maclas@gmx.de>

	* Makefile.am (gdk-pixbuf.loaders): Fix building with
	--disable-modules --with-included-loaders, create an
	empty gdk-pixbuf.loaders file.  (#124496, Arno Charlet, fix
	proposed by Owen Taylor)
2003-12-22 00:37:04 +00:00
Matthias Clasen
44c206420a Move the documentation for signals inline, to get proper parameter
Thu Dec 11 01:57:05 2003  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): Move
	the documentation for signals inline, to get proper parameter
	documentation.  (#128977)
2003-12-11 00:57:20 +00:00
Matthias Clasen
41ee5267cb Check that the mask is NULL or a string of the same length consisting
Sat Nov 15 00:26:19 2003  Matthias Clasen  <maclas@gmx.de>

	* queryloaders.c (loader_sanity_check): Check that the mask
	is NULL or a string of the same length consisting entirely of
	' ', '!', 'x', 'z', 'n'.
2003-11-14 23:28:01 +00:00
Matthias Clasen
65ee9f9eeb Typo fix. 2003-11-09 23:18:44 +00:00
Matthias Clasen
95f163d7d2 If neither load nor begin_load are available fall back to load_animation
Sun Nov  9 23:07:05 2003  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-io.c (_gdk_pixbuf_generic_image_load): If neither
	load nor begin_load are available fall back to load_animation
	and use gdk_pixbuf_animation_get_static_image() to obtain a
	pixbuf. Inefficient, but at least doesn't crash.
2003-11-09 22:08:33 +00:00
Matthias Clasen
0af9579ea2 New function to write out the information for a single loader, factored
Sun Nov  9 21:56:20 2003  Matthias Clasen  <maclas@gmx.de>

	* queryloaders.c (write_loader_info): New function to write
	out the information for a single loader, factored out of
	query_module().
	(loader_sanity_check): New function to perform
	sanity checks on a loader.
	(query_module): Use the new functions.
2003-11-09 21:07:31 +00:00
Matthias Clasen
be525e6873 Fold two similar strings into on. (#126204, Danilo Segan)
Thu Nov  6 00:27:27 2003  Matthias Clasen  <maclas@gmx.de>

	* io-pcx.c (gdk_pixbuf__pcx_load_increment): Fold two similar
	strings into on.  (#126204, Danilo Segan)
2003-11-05 23:28:53 +00:00
Matthias Clasen
c0d62354d3 Remove a pointless check. (#122710, Kjartan Maraas)
2003-09-19  Matthias Clasen  <maclas@gmx.de>

	* io-tga.c (try_preload): Remove a pointless check.
	(#122710, Kjartan Maraas)
2003-09-19 19:20:09 +00:00
Owen Taylor
a22048876f Add the correct alignment magic for Sun compiler and for GCC to get the
Mon Aug 18 10:25:29 2003  Owen Taylor  <otaylor@redhat.com>

        * gdk-pixdata.c (gdk_pixdata_to_csource): Add the correct
        alignment magic for Sun compiler and for GCC to get
        the strings aligned. (Patch from Brian Cameron, #117217)
2003-08-18 15:17:03 +00:00
Matthias Clasen
18088aa0fb Improve doc comment wording. (#119754, Doug Quale)
2003-08-14  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixdata.c (gdk_pixdata_to_csource): Improve doc comment
	wording.  (#119754, Doug Quale)
2003-08-13 22:14:49 +00:00
Matthias Clasen
3c9624c396 Reformat to 80 columns. 2003-08-11 19:14:37 +00:00
Matthias Clasen
e5d0f500c6 Clarify misleading explanation of rowstride. (#119000)
2003-08-03  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf.c (gdk_pixbuf_get_rowstride):
	* gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Clarify misleading explanation of
	rowstride.  (#119000)
2003-08-03 21:51:24 +00:00
Matthias Clasen
b8118e6507 Preserve the aspect ratio. (#118145, Owen Taylor)
2003-07-24  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file_at_size): Preserve the aspect ratio.  (#118145,
	Owen Taylor)
2003-07-23 22:55:34 +00:00
Matthias Clasen
a19781c504 Close loader before unref'ing it. (#118146, Owen Taylor)
2003-07-23  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file_at_size): Close loader before unref'ing
	it.  (#118146, Owen Taylor)
2003-07-23 21:39:11 +00:00
Hans Breuer
4689575d1c updated
2003-03-01  Hans Breuer  <hans@breuer.org>

	* makefile.msc : updated

	* gdk_pixbuf.def : export a bunch of new functions
2003-07-20 15:43:41 +00:00
Matthias Clasen
a6a10ee028 Split correction into multiple pieces if no single weight is large enough
2003-07-18  Matthias Clasen  <maclas@gmx.de>

	* pixops/pixops.c (correct_total): Split correction into multiple pieces if no single weight is large
	enough to apply the unsplit correction.  (#117431, problem reported by Tomas Ögren)
2003-07-17 22:47:10 +00:00
Matthias Clasen
b9db8ea3ea New function to load an image from a file at a specified size. (#105326,
2003-07-13  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf.h:
	* gdk-pixbuf-io.c (gdk_pixbuf_new_from_file_at_size): New function to load an image from a file at a
	specified size.  (#105326, Dom Lachowicz)
2003-07-13 19:43:09 +00:00
Matthias Clasen
aa013939bf Use g_strfreev() to free mime_types. (#117219, Steve Chaplin)
2003-07-11  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkicontheme.c (pixbuf_supports_svg): Use g_strfreev() to free mime_types.
	(#117219, Steve Chaplin)

	* queryloaders.c (query_module): Handle absolute filenames properly. (#117170, Jens Elkner)

	* gdk-pixbuf-io.c: Mention that NULL-terminated arrays returned by
	gdk_pixbuf_format_get_mime_types() and gdk_pixbuf_format_get_extensions() must be
	freed with g_strfreev().
2003-07-11 20:36:25 +00:00
Matthias Clasen
44f044e6cd Support saving ICOs and CURs. 2003-07-03 23:37:34 +00:00
Matthias Clasen
4d3c01795c Stop discriminating against 32bpp ICOs a): Use the byte size of the image
2003-06-28  Matthias Clasen  <maclas@gmx.de>

	* io-ico.c (DecodeHeader): Stop discriminating against 32bpp ICOs a): Use the byte
	size of the image as a heuristic when selecting the bitmap  to load - this lets us
	select 32bpp bitmaps which come after a 8bpp bitmap.
	(OneLineTransp): Stop discriminating against 32bpp ICOs b): Don't overwrite the
	alpha channel of 32bpp ICOs.
	(gdk_pixbuf__ico_image_load_increment): Stop decoding the header unnecessarily.
2003-06-28 20:04:18 +00:00
Soeren Sandmann
8597f10089 Make it compile with C89 compilers.
Fri Jun 27 03:56:59 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

	* io-gif-animation.c (gdk_pixbuf_gif_anim_frame_composite): Make
	it compile with C89 compilers.

Thu Jun 26 21:41:16 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtk/gtktreeviewcolumn.c
	(gtk_tree_view_column_cell_set_cell_data): only set "is_expander"
	and "is_expanded" if the new value is different fromt he old one.
2003-06-27 02:38:44 +00:00
Matthias Clasen
3806847935 Remove the pointless refusal to load images with dubious disposal mode on
2003-06-23  Matthias Clasen  <maclas@gmx.de>

	* io-gif.c (gif_get_frame_info): Remove the pointless refusal to load images with dubious
	disposal mode on the first frame. Just ignore it, as everybody else does.
2003-06-23 20:20:15 +00:00
Matthias Clasen
de07fd2a7e Add gdk_pixbuf_loader_new_with_mime_type.
2003-06-22  Matthias Clasen  <matthias@localhost.localdomain>

	* gdk-pixbuf/gdk-pixbuf-sections.txt: Add gdk_pixbuf_loader_new_with_mime_type.
2003-06-22 19:08:12 +00:00
Matthias Clasen
a378391aaa Reset block_count to 0 for all application extensions, otherwise the data
2003-06-22  Matthias Clasen  <matthias@localhost.localdomain>

	* io-gif.c (gif_get_extension): Reset block_count to 0 for all application extensions, otherwise the data blocks
	of unknown extensions are not propertly skipped.

	Second half of the fix for #106962, handle frames extending beyond the logical screen:

	* io-gif.c (clip_frame): New helper function to clip a rectangle to the logical screen size of the gif.
	(maybe_update): New helper function to call update_func only if the rectangle is not completely off-bounds.
	(gif_get_lzw): Read frames extending outside the logical screen size, but be careful clip to the logical screen size
	when operating on the composite pixbuf and when calling update_func.
	(gif_init): Set the animation size to the logical screen size.
	(gif_get_frame_info): Don't refuse to load images with frames extending beyond the logical screen size.

	* io-gif-animation.c (gdk_pixbuf_gif_anim_frame_composite): Be careful to clip all rectangles to the logical screen
	size, also handle the fact that frames may be completely off-bounds.
2003-06-22 18:08:33 +00:00
Matthias Clasen
d77e5a3341 Merge from 2.2 2003-06-21 00:46:49 +00:00
Matthias Clasen
375a6f4836 Document data_length == -1, add an example. (#97290)
2003-06-03  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixdata.c (gdk_pixbuf_new_from_inline): Document
	data_length == -1, add an example.  (#97290)
2003-06-02 22:46:28 +00:00
Matthias Clasen
5d15f30279 Fix misleading documentation of rowstride. (#113924, Noah Levitt)
2003-06-01  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixdata.h (struct _GdkPixdata): Fix misleading documentation
	of rowstride.  (#113924, Noah Levitt)
2003-05-31 23:52:49 +00:00
Matthias Clasen
83c626bbe0 Remove dubious bitfields of unspecified signedness. (#112919, Morten
2003-05-27  Matthias Clasen  <maclas@gmx.de>

	* io-wbmp.c: Remove dubious bitfields of
	unspecified signedness.  (#112919, Morten Welinder)gdk-p

	* gdk-pixdata.c (gdk_pixdata_to_csource): Replace all occurances
	of g_string_new ("") by g_string_new (NULL). (#106975, Morten Welinder)

	* gtk/gtkwindow-decorate.c:
	* gtk/gtktreeprivate.h:
	* gtk/gtkdnd.c:
	* gdk/win32/gdkwindow-win32.h:
	* gdk/linux-fb/gdkprivate-fb.h:
	* gdk/linux-fb/gdkkeyboard-fb.c: Remove dubious bitfields of
	unspecified signedness.  (#112919, Morten Welinder)

	* gtk/queryimmodules.c (escape_string):
	* gtk/gtktextbtree.c (_gtk_text_btree_get_text):
	* gtk/gtksettings.c (_gtk_settings_parse_convert):
	* gtk/gtkrc.c (gtk_rc_parse_assignment):
	* gtk/gtkinputdialog.c (gtk_input_dialog_set_key):
	* gdk/x11/gdkdisplay-x11.c (escape_for_xmessage): Replace all
	occurances of g_string_new ("") by g_string_new (NULL). (#106975,
	Morten Welinder)
2003-05-27 21:21:00 +00:00
Matthias Clasen
b5adee991a A loader for PCX files. (#113035, Josh Beam)
2003-05-21  Matthias Clasen  <maclas@gmx.de>

	* pixbufloader_pcx.def:
	* io-pcx.c: A loader for PCX files.  (#113035, Josh Beam)

	* gdk-pixbuf-io.c:
	* Makefile.am: Add PCX loader.
2003-05-21 20:20:07 +00:00
Matthias Clasen
ed1ac0e2c6 Improve progressive loading from slow sources: (#107368)
2003-05-19  Matthias Clasen  <maclas@gmx.de>

	Improve progressive loading from slow sources:  (#107368)

	* io-gif-animation.c (gdk_pixbuf_gif_anim_get_iter): Initialize
	first_loop_slowness.
	(gdk_pixbuf_gif_anim_iter_advance): Don't wrap during loading if
	the datasource falls behind the speed of the display.

	* io-gif-animation.h: Add a loading flag to GdkPixbufGifAnim and
	first_loop_slowness to GdkPixbufGifAnimIter.
2003-05-19 21:44:03 +00:00
Owen Taylor
a410bfa04e Add a (gint32 *) => (guint32 *) cast. (#108615, Rick Jones)
Wed May 14 18:24:50 2003  Owen Taylor  <otaylor@redhat.com>

        * gdk-pixdata.c (gdk_pixdata_deserialize): Add a
        (gint32 *) => (guint32 *) cast. (#108615, Rick Jones)
2003-05-14 22:26:41 +00:00
Matthias Clasen
691a5fd50a Add sanity checks for GError handling. (#108345) 2003-04-24 18:51:07 +00:00
Owen Taylor
192167b0f8 Exploit the fact that all our filters are separable to simplify the
Tue Apr  1 15:33:51 2003  Owen Taylor  <otaylor@redhat.com>

        * pixops/pixops.c (make_weights): Exploit the fact that all
        our filters are separable to simplify the calculation of
        the weight tables. (Based on a patch from Brian Cameron.)

        * pixops/Makefile.am pixbuf-transform-math.ltx:
        Add a short article describing how the math in pixops.c
        works.
2003-04-01 20:57:25 +00:00
Matthias Clasen
250fd7cc43 Add missing static. (#108614)
2003-03-21  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-animation.c (gdk_pixbuf_non_anim_get_type): Add
	missing static.  (#108614)
2003-03-21 00:35:15 +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
746d1cd9d4 Calculate LineWidth for 16bpp from width, like for the other depths.
2003-03-11  Matthias Clasen  <maclas@gmx.de>

	* io-ico.c (DecodeHeader): Calculate LineWidth for 16bpp from
	width, like for the other depths.  (noticed by Marijn Ros)
2003-03-11 23:02:39 +00:00
Matthias Clasen
d03b2741ad Trivial cleanups (bug #107664) 2003-03-08 20:49:00 +00:00
Matthias Clasen
285a25da03 Return gboolean, not gint. (#107664, Morten Welinder)
2003-03-06  Matthias Clasen  <maclas@gmx.de>

	* gdk/gdkrgb.c (gdk_rgb_try_colormap): Return gboolean, not gint.
	(#107664, Morten Welinder)

	* gdk/x11/gdkwindow-x11.c (gdk_window_get_deskrelative_origin):
	* gdk/x11/gdkfont-x11.c (gdk_font_equal):
	* gdk/x11/gdkdnd-x11.c (gdk_drag_get_protocol_for_display):
	Fix TRUE/1 and FALSE/0 confusion.  (#107664, Morten Welinder)

	* io-gif.c (gif_read): Fix 0/FALSE confusion (#107664, Morten Welinder)
2003-03-06 20:19:11 +00:00
Matthias Clasen
db0dfee6de Always clear the initial frame and "disposed" areas with transparent
2003-02-20  Matthias Clasen  <maclas@gmx.de>

	* io-gif-animation.c (gdk_pixbuf_gif_anim_frame_composite):
	Always clear the initial frame and "disposed" areas with
	transparent pixels, no matter whether the frame has transparency
	or not.  (#55502)
2003-02-19 23:02:03 +00:00
Matthias Clasen
588a0dd2b9 Auxiliary functions used to implement support for arbitrary origins.
2003-02-18  Matthias Clasen  <maclas@gmx.de>

	* io-tga.c (pixbuf_flip_row):
	(pixbuf_flip_vertically): Auxiliary functions used to implement
	support for arbitrary origins.
	(parse_data_for_row_pseudocolor):
	(parse_data_for_row_truecolor):
	(parse_data_for_row_grayscale):
	(parse_data_for_row):
	(fill_in_context): Remove the check for upper-left origin.
	(parse_rle_data): Support arbitrary origins. (#105912)

	* io-tga.c (fread_check):
	(fseek_check):
	(get_header_from_file):
	(get_colormap_from_file):
	(get_image_pseudocolor):
	(swap_channels_pixbuf):
	(get_image_truecolor):
	(get_image_grayscale):
	(gdk_pixbuf__tga_load): Remove the non-incremental load
	implementation, since we have generic_image_load () now.

	(gdk_pixbuf__tga_stop_load): Fix a potential crash discovered by
	pixbuf-lowmem.
2003-02-18 20:12:08 +00:00
Matthias Clasen
64e32006e0 Actually reject images with origin not in the upper-left corner. (#105912)
2003-02-14  Matthias Clasen  <maclas@gmx.de>

	* io-tga.c (try_preload):
	(gdk_pixbuf__tga_load): Actually reject images with origin
	not in the upper-left corner.  (#105912)
2003-02-13 23:50:41 +00:00
Owen Taylor
6c616fa842 Rewrite to run on the .la files rather than looking for .so files.
Mon Jan 27 17:10:30 2003  Owen Taylor  <otaylor@redhat.com>

        * Makefile.am (gdk-pixbuf.loaders): Rewrite to run
        on the .la files rather than looking for .so files.
        (#102142, Martin Gansser)

        * Makefile.am: Don't build gdk-pixbuf.loaders when
        cross-compiling.
2003-01-27 23:17:51 +00:00
Tor Lillqvist
0973b993f2 Use correct DLL and import library names, with GTK_API_VERSION in name,
2003-01-05  Tor Lillqvist  <tml@iki.fi>

	* gtk-zip.sh.in: Use correct DLL and import library names, with
	GTK_API_VERSION in name, not GTK_MAJOR_VERSION.GTK_MINOR_VERSION.
	(DEVZIP): Add gdk-pixbuf-query-loaders.exe.

	* configure.in: Improve check for dimm.h.

	* configure.in: Set SOEXT to 'so' on Unix, 'dll' on Win32. Used in
	gdk-pixbuf/Makefile.am.

	* gdk-pixbuf/makefile.mingw.in
	* gdk-pixbuf/pixops/makefile.mingw.in
	* gdk/makefile.mingw.in
	* gdk/win32/makefile.mingw.in
	* gtk/makefile.mingw.in: Remove. Not maintained anyway.

	* gdk-pixbuf/Makefile.am
	* gdk-pixbuf/pixops/Makefile.am
	* gdk/Makefile.am
	* gdk/win32/Makefile.am
	* gtk/Makefile.am
	* configure.in: Remove makefile.mingw{,.in} from here, too.

	* README.win32: Updates. Don't mention the now removed
	makefile.mingw files.

	* gdk/gdk.def
	* gtk/gtk.def: Add a couple of missing entries.

	* gdk/gdkkeynames.c: Include <string.h> for strcmp() and memcpy().

	* gdk/win32/gdkevents-win32.c: Move dimm.h header clash workaround
	earlier.

	* gdk/win32/rc/Makefile.am: Add hack to help
	build/win32/lt-compile-resource decide which kind of libtool
	object file to produce.
2003-01-05 02:24:15 +00:00
Matthias Clasen
12a0888500 Don't crash if gdk-pixbuf.loaders file is missing. (#102222)
2003-01-03  Matthias Clasen  <maclas@gmx.de>

	* gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): Don't crash if
	gdk-pixbuf.loaders file is missing.  (#102222)
2003-01-02 23:13:11 +00:00
Matthias Clasen
29969a9081 Add docs. 2002-12-08 00:18:13 +00:00
Owen Taylor
b707bb6c3b Make gdk-pixbuf.loaders also depend gdk-pixbuf-query-loaders. (#97096,
Sat Dec  7 10:14:05 2002  Owen Taylor  <otaylor@redhat.com>

        * Makefile.am (gdk-pixbuf.loaders): Make gdk-pixbuf.loaders
        also depend gdk-pixbuf-query-loaders. (#97096, Daniel Elstner)
2002-12-07 15:16:01 +00:00
Matthias Clasen
a84c7224c0 Remove leftover debug output. (#100357, Owen Taylor)
* io-ico.c: Remove leftover debug output.  (#100357, Owen Taylor)
2002-12-05 21:37:37 +00:00