2003-07-13 Matthias Clasen * 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-11 Matthias Clasen * 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-04 Matthias Clasen * gdk-pixbuf-io.c: Document ICO save parameters. * io-ico.c: Support saving of ICOs and CURs. Currently, only single-image ICOs are produced, but the code for multi-image ICOs is already in place. The saver understands the options "depth" (can be "32", "24" or "16") and "x_hot"/"y_hot" for hotspot coordinates of CURs. 2003-06-28 Matthias Clasen * 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. Fri Jun 27 03:56:59 2003 Soeren Sandmann * io-gif-animation.c (gdk_pixbuf_gif_anim_frame_composite): Make it compile with C89 compilers. 2003-06-23 Matthias Clasen * 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-22 Matthias Clasen * gdk-pixbuf-loader.[hc] (gdk_pixbuf_loader_new_with_mime_type): New function to obtain a loader for a specific mime type. (#105324, Dom Lachowicz) * 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-21 Matthias Clasen * io-gif.c: Merge from 2.2: Fix update_func() arguments and accept empty frames. (#106962) 2003-06-17 Matthias Clasen * Makefile.am (man_MANS): Removed, man pages are now installed from docs/reference/gdk-pixbuf. 2003-06-03 Matthias Clasen * gdk-pixdata.c (gdk_pixbuf_new_from_inline): Document data_length == -1, add an example. (#97290) 2003-06-01 Matthias Clasen * gdk-pixdata.h (struct _GdkPixdata): Fix misleading documentation of rowstride. (#113924, Noah Levitt) 2003-05-27 Matthias Clasen * 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) 2003-05-21 Matthias Clasen * 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-19 Matthias Clasen 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. Wed May 14 18:24:50 2003 Owen Taylor * gdk-pixdata.c (gdk_pixdata_deserialize): Add a (gint32 *) => (guint32 *) cast. (#108615, Rick Jones) 2003-04-24 Matthias Clasen * gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): (gdk_pixbuf_loader_new_with_type): (gdk_pixbuf_loader_close): * gdk-pixbuf-io.c (gdk_pixbuf_new_from_file): (gdk_pixbuf_save): (gdk_pixbuf_savev): * gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file): Add sanity checks for GError handling. (#108345) Tue Apr 1 15:33:51 2003 Owen Taylor * 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-03-21 Matthias Clasen * gdk-pixbuf-animation.c (gdk_pixbuf_non_anim_get_type): Add missing static. (#108614) * 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-11 Matthias Clasen * io-ico.c (DecodeHeader): Calculate LineWidth for 16bpp from width, like for the other depths. (noticed by Marijn Ros) 2003-03-08 Matthias Clasen Bug #107664 continued: * io-xpm.c (find_color): Fix 0/FALSE confusion * gdk-pixbuf.c (gdk_pixbuf_get_has_alpha): Fix -1/gboolean confusion. 2003-03-06 Matthias Clasen * io-gif.c (gif_read): Fix 0/FALSE confusion (#107664, Morten Welinder) 2003-02-20 Matthias Clasen * 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-18 Matthias Clasen * 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-14 Matthias Clasen * io-tga.c (try_preload): (gdk_pixbuf__tga_load): Actually reject images with origin not in the upper-left corner. (#105912) 2003-02-06 Matthias Clasen * queryloaders.c (query_module): Better error message if module_open() fails. (#105349, Tim Mooney) Mon Jan 27 17:10:30 2003 Owen Taylor * 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-05 Tor Lillqvist * Makefile.am (gdk-pixbuf.loaders): Use @SOEXT@ in the find command. * gdk_pixbuf.def: Add gdk_pixbuf_loader_set_size. 2003-01-03 Matthias Clasen * gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): Don't crash if gdk-pixbuf.loaders file is missing. (#102222) 2002-12-08 Matthias Clasen * gdk-pixbuf-animation.h: * gdk-pixbuf-io.h: Add /*< public|private >*/ markers. Sat Dec 7 10:14:05 2002 Owen Taylor * Makefile.am (gdk-pixbuf.loaders): Make gdk-pixbuf.loaders also depend gdk-pixbuf-query-loaders. (#97096, Daniel Elstner) 2002-12-05 Matthias Clasen * io-ico.c: Remove leftover debug output. (#100357, Owen Taylor) 2002-12-04 Bastien Nocera * io-tiff.c: (tiff_image_parse): use G_BIG_ENDIAN instead of WORDS_BIGENDIAN which isn't set by configure.in 2002-11-29 Matthias Clasen * gdk-pixbuf-animation.c: * gdk-pixbuf.c: Add deprecation docs. 2002-11-28 Matthias Clasen * gdk-pixbuf/gdk-pixbuf-io.c: * gdk-pixbuf/gdk-pixbuf-loader.c: * gdk-pixbuf/gdk-pixbuf.c: Document 2.2 API additions. I'm not going to list all individual functions here; if you want to see the list, grep for "Since: 2.2". Fri Nov 8 19:06:07 2002 Owen Taylor * Makefile.am (gdk-pixbuf.loaders): Make gdk-pixbuf.loaders file depend on the loaders (#97096, Jeff Waugh) Wed Nov 6 15:19:53 2002 Owen Taylor * io-gif.c (CHECK_LZW_SP): Fix trailing semicolon on macro, clean up a bit. 2002-11-05 Matthias Clasen * gdk-pixbuf-loader.c: Reindent to follow the gdk-pixbuf indentation. Tue Nov 5 14:16:17 2002 Owen Taylor * gdk-pixbuf-loader.c (gdk_pixbuf_loader_close): Fix leaked pixbuf reference (#96823, Morten Welinder) 2002-10-23 Matthias Clasen * io-gif.c (lzw_read_byte): Check for stack overflow throughout. (#91808, Elliot Lee) 2002-10-21 Matthias Clasen Support the Netscape application extension for gif animations (#95060): * io-gif-animation.h: * io-gif-animation.c (gdk_pixbuf_gif_anim_iter_advance): Add loop count to GdkPixbufGifAnim and use it in the advance method of GdkPixbufGifAnimIter. * io-gif.c (gif_get_extension): Parse Netscape application extension block and set the animation loop count. 2002-10-11 Matthias Clasen * gdk-pixbuf-loader.c (gdk_pixbuf_loader_get_format): Remove unused variable. * gdk-pixbuf-io.h: Remove unused typedef GdkPixbufModuleGetSignatureFunc. 2002-10-04 jacob berkman * queryloaders.c (query_module): make legal C 2002-10-04 Matthias Clasen * 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) Thu Oct 3 18:25:57 2002 Owen Taylor * io-jpeg.c (gdk_pixbuf__jpeg_image_save): Fix memory leak. (#94399) Tue Oct 1 17:35:43 2002 Owen Taylor * gdkpixdata.c: Patch from Andy Wingo to always escape ? to avoid accidentally generating trigraphs in the output (#94631) 2002-09-28 Tor Lillqvist * pixops/*.S: Don't use .type on Cygwin, either (#91597, Masahiro Sakai). 2002-09-27 Federico Mena Quintero * io-ico.c (gdk_pixbuf__ico_image_begin_load): Free the context if we cannot allocate the HeaderBuf. 2002-09-27 Federico Mena Quintero * io-bmp.c (OneLine): Fix the update region notification to handle top-to-bottom and bottom-to-top BMPs correctly. 2002-09-19 Matthias Clasen * Revert the previous change; the symbols need to be exported to be usable from dlopened modules. 2002-09-18 Matthias Clasen * io-xpm.c, io-xbm.c, io-ico.c, io-ani.c, io-png.c, gdk-pixbuf.c, gdk-pixbuf-animation.c, gdk-pixbuf-loader.c, gdk-pixbuf-private.h: _-prefix gdk_pixbuf_non_anim_new and gdk_pixbuf_set_option. Adjust all callers. 2002-09-14 Hans Breuer * pixops/Makefile.am : added makefile.msc to EXTRA_DIST 2002-09-12 Matthias Clasen * io-gif-animation.h: * gdk-pixbuf.h: Move GdkPixbufFrame from the public header to the gif-animation-specific private header. (#91929) 2002-09-12 Federico Mena Quintero * io-jpeg.c (gdk_pixbuf__jpeg_image_load): Unref the pixbuf if we hit an unsupported colorspace. 2002-09-06 Matthias Clasen * io-ani.c, io-ani-animation.h, io-ani-animation.c, pixbufloader_ani.def, Makefile.am, gdk-pixbuf-io.c: New loader, for .ANI animations. * io-xpm.c (pixbuf_create_from_xpm): * io-xbm.c (gdk_pixbuf__xbm_image_load_real): * io-ico.c (DecodeHeader): Attach hotspot coordinates to the pixbuf as options "x_hot" and "y_hot". 2002-09-04 Matthias Clasen * io-tga.c (io_buffer_append): * io-ico.c (DecodeHeader): * io-bmp.c (grow_buffer): Don't leak memory if g_try_realloc fails. * gdk-pixbuf-io.c (pixbuf_check_ico): Fix loading of .CUR files. (#91826) 2002-08-25 Tor Lillqvist * Makefile.am (libgdk_pixbuf_2_0_la_DEPENDENCIES): Add gdk_pixbuf_win32res_lo. (#87101, J. Ali Harlow) 2002-08-22 Matthias Clasen * gdk-pixbuf-io.h: gdk-pixbuf-io.c (_gdk_pixbuf_generic_image_load): No longer static, thus _gdk_pixbuf-prefixed. * gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file): Keep this logic in sync with gdk_pixbuf_new_from_file(). (Based on a patch by Anders Carlsson) * io-png.c (gdk_pixbuf__png_image_save): Plug a memory leak. (#91422, Sven Neumann) 2002-07-31 Sven Neumann * gdk-pixdata.c (gdk_pixdata_to_csource): free the result of gdk_pixdata_serialize() (bug #89411). Mon Jul 29 23:06:10 2002 Owen Taylor * gdk-pixbuf-scale.c: Fix some warnings by adding casts to PixopsInterpType. (#85839, David L. Cooper, II.) 2002-07-16 Matthias Clasen * io-ras.c (DoCompressed): Avoid unnecessary casting. 2002-07-07 Matthias Clasen * gdk-pixbuf-io.c (generic_image_load): New function for loading an image from a file either via module->load or incrementally. (prepared_notify): ModulePreparedNotifyFunc for generic_image_load. (gdk_pixbuf_new_from_file): Use generic_image_load. * io-bmp.c, io-ico.c, io-ras.c, io-wbmp.c: Remove trivial implementations of module->load. (#71266) * io-ico.c (DecodeHeader): Correct computation of image height. (OneLine): Correct update notification. Load-at-size functionality (#53726): * gdk-pixbuf-io.h (ModuleSizeFunc): New. (_GdkPixbufModule): Prepend a ModuleSizeFunc to the begin_load arguments. Adjust all modules. * gdk-pixbuf-loader.c (struct GdkPixbufLoaderPrivate): Add fields width, height, size_fixed, need_scale. (gdk_pixbuf_loader_class_init): Add size_prepared signal. (gdk_pixbuf_loader_set_size): New function. (gdk_pixbuf_loader_size_func): ModuleSizeFunc which gets passed to the module, emits size_prepared. (gdk_pixbuf_loader_prepare): Call gdk_pixbuf_loader_size_func if necessary, only emit area_prepared if no separate scaling is required. (gdk_pixbuf_loader_update): Only emit area_updated if no separate scaling is required. (gdk_pixbuf_loader_load_module): Add size_func as first argument. (gdk_pixbuf_loader_close): If necessary scale the image to the desired size and emit area_prepared and area_updated. * gdk-pixbuf-loader.h (struct _GdkPixbufLoaderClass): Add size_prepared signal. (gdk_pixbuf_loader_set_size) New API. * gdk-pixbuf-marshal.list: Add VOID:INT,INT. * io-jpeg.c: User cinfo->output_width/height instead of cinfo->image_width/height throughout when adressing the pixbuf. (gdk_pixbuf__jpeg_image_load_increment): Call size_func, and find the nearest possible output size which libjpeg can produce that is still larger than the desired size. 2002-07-06 Matthias Clasen * io-tiff.c (tiff_set_error): Handle global_error == NULL better. (tiff_image_parse): Don't trust TIFFRGBAImageBegin to set the "put" routine. (Fixes #87384) (gdk_pixbuf__tiff_image_stop_load): Don't call TIFFClose too early. 2002-07-02 Matthias Clasen Miscellaneous bmp loader fixes (#85448, #86286, #86287): * io-bmp.c (grow_buffer): New function to avoid crashes on unchecked reallocs. (DecodeHeader, DecodeColormap, decode_bitmasks, DoCompressed): Use grow_buffer instead of g_realloc throughout. Change signatures where necessary to pass the errors up. (OneLine16): Fix loading of 16bpp BI_RGB bmps. (DoCompressed): Rewritten to properly support BI_RLE4 and skips and jumps. Support for compressed ras images (#84994): * io-ras.c (RAS2State): Error on unsupported ras variations. (OneLine8): Fix colormap indexing. (OneLine): Call updated_func with proper region. (DoCompressed): New function, handles compressed ras data. (gdk_pixbuf__ras_image_load_increment): Handle compressed ras images. 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. All of this needs to be merged to GNOME 1.4 gdk-pixbuf. 2002-06-28 Sven Neumann * gdk-pixbuf-csource.c (print_blurb): converted a Tab to spaces. Thu Jun 13 18:11:11 2002 Owen Taylor * pixops/pixops.c: Fix problem where when no alpha was involved, we scaled rather than composited, but then went ahead and composited anyways. (#76958, Patch from Matthias Clasen). Needs to be merged to GNOME 1.4 gdk-pixbuf. 2002-06-13 Matthias Clasen * io-jpeg.c: Use libjpeg in buffered-image mode in order to incrementally display incrementally loaded progressive jpegs. 2002-06-07 Federico Mena Quintero * io-bmp.c (lsb_32): (lsb_16): New functions to fetch 32 or 16-bit little-endian values starting at a specific memory location. We do this instead of GINT32_FROM_LE() as the latter is simply dereferences a cast, which doesn't work on platforms with alignment requirements. Fixes #84083. 2002-06-01 Matthias Clasen * gdk-pixbuf-io.c (pixbuf_check_xbm): Accept xbms starting with a C comment - those seem to be not uncommon, e.g. the Gimp produces them. (#82706) * io-xbm.c (read_bitmap_file_data): Don't leak memory on certain invalid inputs. (gdk_pixbuf__xbm_image_load_real): Don't leak memory on valid inputs. 2002-05-22 Tor Lillqvist * gdk-pixbuf-io.c (get_libdir): Use GTK_BINARY_VERSION (and not GTK_VERSION) in the path to the loaders on Win32, too. * Makefile.am: Pass GTK_BINARY_VERSION. 2002-05-22 Federico Mena Quintero * io-xpm.c (pixbuf_create_from_xpm): Ahem, take the rowstride into account!!! Fixes #82515. [This bug is not present in the GNOME 1.4 branch as its XPM loader does not use gdk_pixbuf_new(); rather it malloc()s a buffer with no row padding and then uses gdk_pixbuf_new_from_data() on it.] [IMPORTANT: The comment above is to make my life easier when merging stuff across branches. If you make changes to gdk-pixbuf in either branch, please include a comment in the ChangeLog that indicates whether this should be merged into the other branch. Thanks!] 2002-05-18 Matthias Clasen * io-tiff.c (tiff_image_parse): fix packing order on bigendian systems. (#81702) Thu May 16 15:17:30 2002 Owen Taylor * pixops/pixops.c: Patch from Matthias Clasen to fix some typos (#77246) Thu May 16 15:02:46 2002 Owen Taylor * gdk-pixdata.c (gdk_pixdata_to_csource): Fix 64-bit warning. (#78258) 2002-05-07 Michael Natterer * gdk-pixbuf/Makefile.am: build the static pixbuf loaders conditionally like the dynamic ones so --without-lib is honored when building with --disable-modules. (#66867) Sun May 5 02:27:01 2002 Soeren Sandmann * Makefile.am (noinst_PROGRAMS): remove test-loaders (moved to gtk+/tests/) * test-loaders.c, test-images.h: remove 2002-04-24 Matthias Clasen * gdk-pixbuf-io.c (gdk_pixbuf_save): Remove the ISO8859-1 restriction from the description of png tEXt parameters. * io-png.c (png_text_to_pixbuf_option): (gdk_pixbuf__png_image_save): If libpng supports it, store and retrieve non-ISO8859-1 text as UTF-8. (#76172) 2002-04-11 Matthias Clasen 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-09 Matthias Clasen * gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module): Use priv->image_module->module_name instead of image_type which may be NULL. 2002-04-06 Matthias Clasen * io-png.c (gdk_pixbuf__png_image_load): Restructured to use gdk_pixbuf_new instead of manually allocating image storage. This gives us a good rowstride and overflow checks. (#77807) 2002-04-05 Matthias Clasen * io-tiff.c (tiff_image_parse): Avoid allocating an extra copy of the image by using a TIFFRGBAImage{Begin,Get,End} with suitable put functions instead of TIFFRGBAImage. And check image dimensions for overflow. 2002-04-03 Matthias Clasen * gdk-pixbuf-loader.c (gdk_pixbuf_loader_get_type): Fix a doc typo. 2002-03-29 Matthias Clasen * io-png.c (png_simple_error_callback): libpng error handlers must not return to their callers, thus longjmp out. This prevents annoying stderr output from the default error handler. 2002-03-27 Matthias Clasen * io-png.c (gdk_pixbuf__png_image_stop_load): Don't leak info_ptr. * io-png.c (gdk_pixbuf__png_image_load): Get rid of unused end_info. Also call png_read_end to check proper ending of the png file and catch text chunks after the image data. 2002-03-27 Matthias Clasen * io-png.c (gdk_pixbuf__png_image_load, gdk_pixbuf__png_image_begin_load): Make libpng use g_malloc instead of system malloc. 2002-03-26 Matthias Clasen * io-tiff.c (tiff_image_parse): Don't leak pixbuf on error. * io-gif.c (gdk_pixbuf__gif_image_load_increment): Don't leak context->buf on error. * gdk-pixbuf-loader.c (gdk_pixbuf_loader_close): Make sure to call stop_load even for short images to prevent memleaks. 2002-03-25 Matthias Clasen * io-png.c (setup_png_transformations): Changed signature to return success and set a GError parameter, adjusted all callers. Also work around a possible FPE in libpng and always check that the new info is sane. 2002-03-23 Matthias Clasen * io-wbmp.c (gdk_pixbuf__wbmp_image_load_increment): context->updated_func is NULL during a nonincremental load. (gdk_pixbuf__wbmp_image_load): Stop reading after the first error. 2002-03-18 Matthias Clasen * io-tga.c: Fix assumptions on rowstride by manually allocating a contiguous pixel buffer. Catch buffer overruns in RLE-modi. Support grayscale + alpha (which can be written, but not read (!) by the Gimp). 2002-03-15 Matthias Clasen * io-gif.c (gif_get_frame_info): Catch invalid frame dimensions. 2002-03-13 Matthias Clasen * test-images.h: Add valid_ras_test and invalid_bmp_1. * test-loaders.c (main): Add random tests for ras and pnm and an invalid bmp which was a crasher until my 2002-03-12 commit. * io-pnm.c (gdk_pixbuf__pnm_image_load_increment): Don't unref the pixbuf on errors. * io-ras.c: Handle some errors. 2002-03-12 Sven Neumann * gdk-pixbuf.c (gdk_pixbuf_fill): use sequential writes instead of calling memcpy(). Simpler and potentially faster. (#70332) 2002-03-12 Matthias Clasen * io-bmp.c (DecodeHeader): Replace a g_assert_not_reached () which could actually be reached by a proper error status return. 2002-03-05 Matthias Clasen * test-loaders.c, test-images.h: More random tests. * io-bmp.c (DecodeHeader): Fail gracefully on OOM here. Tue Mar 5 10:39:03 2002 Owen Taylor * Makefile.am (loaderdir): Put the modules into the GTK_BINARY_VERSION directory for consistency with immodules and theme engines. Sat Mar 2 22:11:10 2002 Owen Taylor * gdk-pixbuf-io.c (_gdk_pixbuf_load_module): If we can't load the module using the g_module_build_path() filename, try loading it as a .la file. * test-loaders.c: Look for modules in current directory rather than .libs, so we find the right .la files. * test-loaders.c: Back out some accidental commits. Sat Mar 2 21:28:03 2002 Owen Taylor * gdk-pixbuf.c (gdk_pixbuf_new): Bullet-proof against integer overflow. 2002-03-03 Tor Lillqvist * gtk-pixbuf.rc.in: Remove. * gdk_pixbuf.rc.in: Name like this instead (wrong name used by mistake by Hans). * makefile.msc: Corresponding changes. * Makefile.am: Use gdk_pixbuf.rc on Win32. Distribute it. 2002-02-28 Matthias Clasen * pixops/pixops.c (tile_make_weights): Move the call to correct_total() to the right spot. (#72732) Wed Feb 27 18:33:04 2002 Owen Taylor * gdk-pixdata.c (gdk_pixdata_to_csource): Use {} not () to group around string assigned to char[]. (#72767, Tomas Ögren) 2002-02-21 Havoc Pennington * gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module): remove C++-commented debug spew, reported by David L. Cooper 2002-02-15 Matthias Clasen * pixops/pixops.c (correct_total): New function to make sure that the weights sum up to the correct total without introducing negative weights. (tile_make_weights, bilinear_make_fast_weights, bilinear_make_weights): Use correct_total. 2002-02-10 Matthias Clasen * test-images.h (tiff1_test_3), test-loaders.c (main): Add a (#ifdef 0'ed) test provoking a segfault in TIFFReadDirectory(). * io-ico.c (DecodeHeader): Check that pixbuf could be allocated. * test-images.h (ico_test_2), test-loaders.c (main): Test the previous change. * io-wbmp.c (gdk_pixbuf__wbmp_image_load_increment): Don't write beyond the end of buffer if width % 8 != 0. * io-tga.c (try_preload): Enforce that ctx->hdr->type is one of the supported types, otherwise parse_data_for_row () will not make any progress, leading to an infinite loop. Mon Feb 11 14:31:53 2002 Owen Taylor * pixops/pixops.c (bilinear_make_weights): Fix handing of overall alpha. 2002-02-10 Matthias Clasen * test-loaders.c (main): Enable some tests which should work now. * io-wbmp.c (gdk_pixbuf__wbmp_image_load_increment): Detect invalid image dimensions and insufficient memory. * io-tga.c (try_preload): Detect invalid image dimensions. (gdk_pixbuf__tga_stop_load): Don't try to unref NULL pointers. * io-ico.c (DecodeHeader): Detect some invalid headers and don't segfault. Fri Feb 8 23:11:15 2002 Owen Taylor * pixops/pixops.c: Force all weight arrays to sum exactly to 65535. (Fixes #70971, reported by Federico Mena Quintero) * Makefile.am (libgdk_pixbuf_1_3_la_DEPENDENCIES): Add libpixops.la. 2002-02-08 Federico Mena Quintero * pixops/pixops.h: Fix comment; PixopsInterpType -> GdkInterpType. 2002-02-08 Darin Adler * io-xbm.c: (next_int): Wean this from . 2002-02-01 Matthias Clasen * Makefile.am: Build the tga loader as a static library. (#70157) * io-ico.c: Merge 16- and 32-bit ico support from the stable branch. (#61179) * io-gif.c: Recomposite all images if the animation size changes while loading. (#70055) * gdk-pixbuf.c (gdk-pixbuf-fill): Make it work for subpixbufs. (#70055) Sat Jan 19 20:49:20 2002 Manish Singh * 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. Fri Jan 11 18:05:07 2002 Owen Taylor * pixops/pixops.c: Fix integer overflow for the values passed to the pixel functions. (#55148, fix from Michael Hore) Fri Jan 11 17:53:58 2002 Owen Taylor * pixops/pixops.c (pixops_scale_nearest): Remove meaningless FIXME. * pixops/pixops.c (pixops_process): Comment the computation of run_end_index and fix some edge cases. * pixops/{scale_line_22_33_mmx.S, composite_line_22_4a4_mmx.S: composite_line_color_22_4a4_mmx.S}: Handle the case where dest <= dest_end properly. (#52001, fix from Michael Hore) Thu Jan 10 16:48:30 2002 Owen Taylor * pixops/pixops.c: Replace some hardcoded values with the SUBSAMPLE constant used elsewhere. (#51033) Wed Jan 9 11:29:44 2002 Owen Taylor * Makefile.am (s-enum-types-h): Include glib-object.h, Add G_BEGIN_DECLS/END_DECLS to gdk-pixbuf-enum-types.h. (#68325, Mikael Hermansson) * *.h: G_BEGIN_DECLS cleanups. Tue Jan 8 10:58:04 2002 Owen Taylor * gdk-pixbuf-util.c (gdk_pixbuf_saturate_and_pixelate): - Massive cleanup, make actually legible. - Fix some clamp-to-range bugs found by Jim Cape (#68231). - Add a g_return_if_fail() if src and dest alpha don't match. - Allow for src_rowstride != dest_rowstride. 2002-01-04 Hans Breuer * gdk_pixbuf.def : don't export functions prefixed with underscore * makefile.msc : use -FImsvc_recommende_pragmas.h Thu Jan 3 19:31:58 2002 Owen Taylor * pixops/pixops.c (scale_line_22_33): Fix and uncomment non-MMX version. * pixops/pixops.c (pixops_composite_nearest): Remove a division. * pixops/pixops.c (pixops_composite): Add some docs about the parameters. * pixops/README: Add notes about the correct algorithms for alpha compositing and how to implement them quickly. 2001-12-29 Tor Lillqvist * Makefile.am (EXTRA_DIST): Add makefile.msc. Sat Dec 22 15:31:20 2001 Owen Taylor * gdk-pixdata.h: Fix trailing "," in enumeration. 2001-12-17 Matthias Clasen * gdk-pixbuf.c, gdk-pixbuf-io.c, gdk-pixbuf-animation.c, gdk-pixbuf-data.c, gdk-pixbuf-loader.c, gdk-pixbuf-scale.c, gdk-pixbuf-util.c, gdk-pixdata.c: Markup fixes. 2001-12-16 Havoc Pennington * gdk-pixbuf-scale.c: docs enhancements 2001-12-14 Sebastian Wilhelmi * io-xpm.c: Use g_ascii_strcasecmp() instead of g_strcasecmp(). 2001-12-13 Sebastian Wilhelmi * 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(). 2001-12-12 Matthias Clasen * gdk-pixbuf-io.c: Markup fixes. 2001-12-12 Matthias Clasen * Makefile.am (INCLUDES): Define G_LOG_DOMAIN. (#66412) * gdk-pixbuf-loader.c, gdk-pixbuf-util.c: Markup fixes. 2001-12-11 Michael Natterer * io-png.c: gdk_pixbuf__png_image_save: removed wrong endian conversion stuff; don't copy RGB pixbufs' lines around before saving them. 2001-12-05 Matthias Clasen * gdk-pixbuf.h (gdk_pixbuf_ref, gdk_pixbuf_unref, gdk_pixbuf_animation_ref, gdk_pixbuf_animation_unref): Deprecate. (#66208) Tue Dec 4 11:45:45 2001 Owen Taylor * io-xpm.c (pixbuf_create_from_xpm): Fill in color fields to black for transparent colors since we'll later initialize pixels from them. (Fixes purify errors, #66093, HideToshi Tajima) 2001-11-30 Tor Lillqvist * gdk_pixbuf.def: Add gdk_pixbuf_get_option. Fri Nov 30 15:55:34 2001 Owen Taylor * gdk-pixdata.c (gdk_pixdata_deserialize): Fix alignment problem in deserialization, (#65785, reported by Hidetoshi Tajima) 2001-11-28 Manish Singh * gdk-pixbuf/io-bmp.c (gdk_pixbuf__bmp_image_load_increment): Fill in missing error parameters to DecodeHeader and DecodeColormap. 2001-11-21 Federico Mena Quintero Fix Ximian bug #12125; merged from gdk-pixbuf stable. * gdk-pixbuf/io-bmp.c (gdk_pixbuf__bmp_image_load_increment): Use a simple state machine instead of a scary if/else chain. (DecodeHeader): Set the reading state. (DecodeColormap): Set the reading state. (decode_bitmasks): New function, decodes the bitmasks for BI_BITFIELDS coding. (OneLine32): Handle BI_BITFIELDS coding. (OneLine16): Likewise. 2001-11-18 Hans Breuer * io-xpm.c : use g_strcasecmp(), some poor platforms don't have strcasecmp() * makefile.msc : do INCLUDE_png etc. definition here to avoid my temporary 'gdk-pixbuf-io-include.h' hack Sun Nov 18 07:54:22 2001 Owen Taylor * gdk-pixbuf-loader.c: Remove include of gobject/signal.h. 2001-11-03 Sebastian Wilhelmi * gdk-pixbuf-loader.c, gdk-pixbuf-scale.c: Documentation fixes. 2001-10-29 Tor Lillqvist * Makefile.am: Use -no-undefined on Win32. Make libgdk_pixbuf_1_3_la_OBJECTS depend on gdk-pixbuf-marshal.c. Install import libraries. * gdk_pixbuf.def: Update. * gdk-pixbuf-io.c: (Win32) Use G_WIN32_DLLMAIN_FOR_DLL_NAME, saves the actual DLL name of libgdk_pixbuf. (get_libdir): Use it instead of guessing. * io-xbm.c (gdk_pixbuf__xbm_image_begin_load): Use g_file_open_tmp() insread of mkstemp(). 2001-10-18 Matthias Clasen * io-xbm.c (gdk_pixbuf__xbm_image_load_real): Don't dereference context when it may be NULL. (#62344) 2001-10-16 Matthias Clasen * gdk-pixdata.c, gdk-pixdata.h: Documentation. * gdk-pixbuf-csource.1: Spelling fixes. Wed Oct 10 11:52:17 2001 Owen Taylor * gdk-pixdata.c gdk-pixbuf.h: Get rid of GDK_PIXBUF_ERROR_HEADER/PIXEL_CORRUPT and use CORRUPT_IMAGE. Get rid fo GD_PIXBUF_ERROR_UNKNOWN_FORMAT and use the existing UKNOWN_TYPE error. (#58308) * gdk-pixbuf.h, gdk-pixdata.c: Rename gdk_pixbuf_new_from_stream() back to gdk_pixbuf_new_from_inline(). Rework docs to try and be helpful for the common case. (#58308) 2001-10-05 Sven Neumann * 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. Tue Oct 2 11:29:50 2001 Owen Taylor * gdk-pixdata.c (gdk_pixdata_to_csource): Fix indentation use a macro to make code a bit more readable. 2001-10-02 Sven Neumann * gdk-pixdata.c: g_string_printfa => g_string_append_printf. Wed Sep 26 18:08:19 2001 Owen Taylor * Makefile.am (s-enum-types-h): Fix a typo in the include guards. (#61254, Skip Montaro) 2001-09-21 Matthias Clasen * io-xpm.c (xpm_extract_color): Rewritten to handle xpm colormap entries more thoroughly. (#59939) 2001-09-21 Hans Breuer * gdk-pixbuf.def : updated externals * makefile.msc : generate gdk-pixbuf-enum-types.[hc] Thu Sep 20 17:22:48 2001 Owen Taylor * io-tiff.c (gdk_pixbuf__tiff_image_load): On OSF, apparently fseek() works in some on-demand way, so the fseek gdk_pixbuf_new_from_file() doesn't work here since we are using the raw file descriptor. So, we call lseek() on the fileno(f) before using it. (#60840). 2001-09-20 James Henstridge * Makefile.am (gdk-pixbuf-enum-types.c): same change as in pango, so that flags types are registered as flags rather than enums (not that there are any flags here at the moment). Wed Sep 19 00:28:24 2001 Owen Taylor * Makefile.am (gdk_pixbuf_headers): Don't include gkd-pixbuf-features.h here since is in builddir and confuses autogen rules. * Makefile.am: Don't += variables before they have values, automake-1.5 doesn't like it. * Makefile.am: Fix srcdir != builddir for gdk-pixbuf-enum-types.c. * Makefile.am: The whitespace strikes back. 2001-09-17 Matt Wilson * Makefile.am (libpixbufloader_xbm_la_LDFLAGS): removed duplicate LDFLAGS definition, use the -avoid-version one. (libpixbufloader_tga_la_LDFLAGS): likewise Mon Sep 17 11:49:02 2001 Owen Taylor * pixops/*: Mirror GdkInterpType to PixopsInterpType to avoid including gdk-pixbuf headers. 2001-09-16 James Henstridge * .cvsignore: add generated files to ignore list. * gdk-pixbuf.h: include gdk-pixbuf-enum-types.h * Makefile.am: add rules to build gdk-pixbuf-enum-types.[ch] Fri Sep 14 23:22:12 2001 Matthias Clasen * io-pnm.c (pnm_read_header): Use GDK_PIXBUF_ERROR_CORRUPT_IMAGE, not GDK_PIXBUF_ERROR_HEADER_CORRUPT. (#58308) Fri Sep 14 22:53:45 2001 Matthias Clasen * io-jpeg.c (gdk_pixbuf__jpeg_image_begin_load): Handle out-of-memory situation better. * io-pnm.c: Robustness fixes for pnm loader * io-gif.c: Make gif loader survive TEST_RANDOMLY_MODIFY * io-xpm.c (parse_color): detect very long color strings All of the above from Matthias Clasen , the remaining from Soeren Sandmann . * test-images.h: add tests: - four valid ppm's, eight invalid (matthiasc@poet.de) - one invalid xpm (matthiasc@poet.de) - one valid tga, one invalid (sandmann@daimi.au.dk) - one invalid tiff (sandmann@daimi.au.dk * test-loaders.c: enable tests for ppm, png, gif, tga, tiff, xpm * io-tiff.c (gdk_pixbuf__tiff_image_stop_load): TIFFClientOpen can fail - detect it when it happens * io-tga.c (gdk_pixbuf__tga_load_increment): Fail if there is too much data in file * gdk-pixbuf-io.c: moved wbmb check after ico check to avoid false positives Fri Sep 14 00:30:48 2001 Tim Janik * Makefile.am: don't used BUILT_SOURCES to build marshal files, as in conjunction with stamp files, this can lead to endless rebuilding loops. Tue Sep 4 00:22:07 2001 Owen Taylor * Makefile.am: Fix EXTRA_DIST for gdk-pixbuf-csource.1 Tue Sep 4 03:09:52 2001 Tim Janik * gdk-pixbuf-csource.1: new file, manual page for the publically installed gdk-pixbuf-csource utility. Thu Aug 30 08:30:03 2001 Matthias Clasen * gdk-pixbuf-loader.c (gdk_pixbuf_loader_close): Propagate errors from gdk_pixbuf_loader_load_module. Thu Aug 30 08:27:37 2001 Matthias Clasen * io-png.c (png_row_callback): Check that row_num is valid. Tue Aug 28 21:05:26 2001 Matthias Clasen * io-bmp.c (OneLine): Emit area_updated signal with proper area information. (#52002) Tue Aug 28 20:03:43 2001 Matthias Clasen * test-loaders.c (test_loader): Catch errors at close time. * test-loaders.c (main): Remove C++ comments. 2001-08-21 Matthias Clasen * Makefile.am, gdk-pixbuf-io.c, pixbufloader_tga.def, io-tga.c: Add tga loader, patch by Nicola Girardi. (#56067) 2001-08-20 Matthias Clasen * 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-19 Sven Neumann * pixops/pixops.c: applied some simple but effective optimizations to pixops_composite_nearest() and pixops_composite_color_nearest(). 2001-08-07 Sven Neumann * gdk-pixbuf.c (gdk_pixbuf_fill): a comment asked to optimize this function, so that's what I did. 2001-08-06 Kjartan Maraas * gdk-pixdata.c: Fix a typo. 2001-07-30 Hans Breuer * pixops/makefile.msc : new file * makefile.msc : use it to complete the build 2001-07-20 Hans Breuer * gdk-pixdata.c : don't 'g_tohl (*istream++)', but move pointer increment out of the macro, because at least one compiler (msvc 5.0) gets confused otherwise (applies the wrong increment). * gdk_pixbuf.def : updated exports * makefile.msc : reflect gdk-pixbuf-csource changes 2001-07-17 Darin Adler * gdk-pixbuf-csource.c: Add missing include. * io-png.c: (setup_png_transformations): Add ifdef so we compile without warnings with G_DISABLE_CHECKS on. * io-pnm.c: (gdk_pixbuf__pnm_image_load_increment): Add a missing const. * io-wbmp.c: (getin), (get_mbi): Add a missing const. * io-xbm.c: (gdk_pixbuf__xbm_image_load_real): Get rid of some unused locals and add an initial value to quiet the compiler's unintialized variable warning. * pixops/pixops.c: Put an ifdef around some dead code. Thu Jul 5 10:17:15 2001 Owen Taylor * pixops/Makefile.am (noinst_LTLIBRARIES): Switch over to the new include flags AC_SUBST(). (Problem pointed out by Mikael Hermansson.) 2001-06-29 Havoc Pennington * gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): fix for G_DISABLE_COMPAT Thu Jun 28 21:54:19 2001 Owen Taylor * make-inline-pixbuf.c test-gdk-pixbuf.c test-loaders.c gdk-pixbuf-csource.c: Fix args to g_type_init (). 2001-06-28 Havoc Pennington * gdk-pixdata.c: * gdk-pixbuf-io.c (get_libdir): fix typo in dll name (aren't we also leaking memory here from g_strdup_printf?) Tue Jun 26 09:48:02 2001 Tim Janik * Makefile.am (noinst_PROGRAMS): get rid of make-inline-pixbuf * gdk-pixbuf-data.[hc]: provide gdk_pixbuf_new_from_stream() instead from gdk_pixbuf_new_from_inline(). * gdk-pixdata.[hc]: auxillary GdkPixdata structure, public installed API for applications that need to serialize/deserialize on their own (gimp, BEAST). * gdk-pixbuf/gdk-pixbuf-csource.c: provide publically installed program that can dump images in CSource format and Pixbuf stream format. supports RLE encoding, MACRO formatting etc... invoke with --help. Mon Jun 25 00:28:11 2001 Owen Taylor * Makefile.am: Actually update timestamps, so rules don't constantly run. 2001-06-11 Havoc Pennington * Makefile.am (stamp-gdk-pixbuf-marshal.c): glib_genmarshal already includes top_builddir 2001-06-08 Havoc Pennington * gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module): remove bogus g_return_if_fail * io-gif.c (gif_get_lzw): if delay time is 0 or smaller than likely timeout resolution, set it to an arbitrarily-chosen short delay. Fixes bug #55953 from warmenhoven@yahoo.com 2001-06-07 Havoc Pennington * Makefile.am: use Owen's new way of doing stampfiles/generated sources 2001-06-07 Havoc Pennington * Makefile.am (gdk-pixbuf-marshal.c): fix up the glib-genmarshal path 2001-06-05 Havoc Pennington * test-loaders.c (main): use putenv not setenv, reported by Armin Theissen 2001-05-08 Havoc Pennington * gdk-pixbuf-util.c (gdk_pixbuf_add_alpha): docs fixup, and fix behavior to still subst color if the original image had alpha 2001-06-04 Havoc Pennington * io-pnm.c (pnm_skip_whitespace): patch from Szekeres Istvan, bug #52560 2001-06-01 Havoc Pennington Apply patch from sandmann@daimi.au.dk, with some tweaks. Makes things a bit more robust, and adds test-loaders.c which is good for finding further robustness bugs to fix. * io-tiff.c: Try to work around libtiff suckiness a bit; put a giant thread lock on the whole loader, paranoically check both whether error handlers were called and also whether functions return false. Handle case where width or height is 0. Various cleanups. * io-png.c (gdk_pixbuf__png_image_stop_load): only unref pixbuf if it existed (png_error_callback): apparently libpng expects you to longjmp out of this thing? * io-gif.c (struct _GifContext): remove unused "pixbuf" field (lzw_read_byte): change "Mail jrb if this fails" g_warning to a g_set_error() (gif_get_lzw): check for out-of-memory (gif_prepare_lzw): catch/report an error (new_context): use try_malloc, since GifContext is nearly 70K (gdk_pixbuf__gif_image_load_increment): set context->buf to NULL so we don't crash later. * Makefile.am: Add test-loaders * gdk-pixbuf-loader.c (gdk_pixbuf_loader_close): handle context == NULL due to errors 2001-05-29 Darin Adler * gdk-pixbuf.h: Fix prototype to use "(void)" instead of "()". Mon May 28 14:21:35 2001 Jonathan Blandford * io-bmp.c: Patch from Helmethead to fix up bmp decoder to: - adds 16 bpp bmp support (bug #53884) - adds OS/2 1.x format bmp support (bug #54964) - adds 4 bpp RLE compressed bmp support - adds 1 bpp colormap support - fixes negative height (top down) bmp support 2001-05-25 Hans Breuer * gdk_pixbuf.def : reflect Havoc's recent api change Sun May 20 12:53:49 2001 Owen Taylor * Makefile.am (libgdk_pixbuf_1_3_la_LDFLAGS): Remove an excess $(GLIB_LIBS). Sun May 13 11:59:11 2001 Owen Taylor * Makefile.am: Make modules depend on libgdk_pixbuf.la. 2001-05-04 Havoc Pennington * 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 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. Sun Apr 22 15:51:32 2001 Owen Taylor * Makefile.am (LDADDS): Add $(MATH_LIB). 2001-04-18 Havoc Pennington * gdk-pixbuf.c (gdk_pixbuf_fill): Function to fill pixbuf with a given color. Wed Apr 4 01:41:02 2001 Tim Janik * pixops/Makefile.am (noinst_LTLIBRARIES): include $top_srcdir so we don't try to get from standard search paths. * Makefile.am (gdk-pixbuf-marshal.c): use deps from srcdir. add gdk-pixbuf-marshal.list to EXTRA_DIST. take gdk-pixbuf-marshal.h out of _la sources. 2001-03-19 Tor Lillqvist * makefile.mingw.in: Handle gdk-pixbuf-marshal.c. * gdk_pixbuf.def: Update. * pixbufloader_*.def: Just export the fill_vtable functions now. 2001-03-18 Mike Kestner * make-inline-pixbuf.c (main): Added logic to remove output when failures occur. 2001-03-14 Havoc Pennington * Makefile.am (gdk-pixbuf-marshal.c): Use different temporary file from gdk-pixbuf-marshal.h, fixes parallel makes. Thu Mar 1 04:01:57 2001 Tim Janik * test-gdk-pixbuf.c: fixed includes. 2001-02-18 Havoc Pennington * gdk-pixbuf-io.c (gdk_pixbuf_load_module): prepend underscore (gdk_pixbuf_get_named_module): prepend underscore (gdk_pixbuf_get_module): prepend underscore 2001-02-19 Havoc Pennington * gdk-pixbuf-io.c (gdk_pixbuf_load_module): const fix 2001-02-17 Havoc Pennington * gdk-pixbuf-loader.c (gdk_pixbuf_loader_new_with_type): docs 2001-02-07 Alexander Larsson * io-xpm.c (free_buffer): Use g_free, since the buffer is allocated with g_try_alloc(). 2001-02-06 Christophe Merlet * gdk-pixbuf-data.c: Fixes a minor typo. Sun Feb 4 07:59:57 2001 Tim Janik * gdk-pixbuf.h: DOH! don't include glib/gobject.h but glib-object.h, we finally need the gobject->gruntime rename. * *.c: scratched calls to g_type_init(), there's simply no point in doing that, use gtk_init(). 2001-02-01 Havoc Pennington * gdk-pixbuf-loader.c, gdk-pixbuf-loader.h: rename "private" field in struct to "priv" for C++ 2001-01-31 Havoc Pennington * gdk-pixbuf.c: include glib-object.h instead of gvaluetypes.h 2001-01-26 Havoc Pennington * gdk-pixbuf-io.c (mname): fix included modules case. 2001-01-22 Havoc Pennington * gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): check errors from gdk_pixbuf_load_module 2001-01-22 Havoc Pennington * 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-20 John Harper * io-xbm.c: new pixbuf loader, for X bitmap files. Basically a collision between Xlib's RdBitF.c and io-tiff.c * gdk-pixbuf-io.c, Makefile.am, pixbufloader_xbm.def: added io-xbm.c support [ merged from stable gdk-pixbuf module. Untested, but it compiles, and works fine in the stable module ] 2001-01-18 Tor Lillqvist * gdk-pixbuf-io.c (get_libdir): (Win32) Use the new g_win32_get_package_installation_subdirectory() function. No need to include windows.h. (gtk_win32_get_installation_directory): Remove this then. 2001-01-01 Havoc Pennington * Makefile.am (libgdk_pixbuf_1_3_la_LDFLAGS): add @LIBTOOL_EXPORT_OPTIONS@ 2000-12-30 Tor Lillqvist * gdk_pixbuf.def: Update. 2000-12-16 Havoc Pennington * gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file): ref the pixbuf in the frame, so we can use gdk_pixbuf_frame_free (gdk_pixbuf_frame_copy): new function (gdk_pixbuf_frame_free): new function (gdk_pixbuf_frame_get_type): new function (GDK_TYPE_PIXBUF_FRAME): macro to get type for GdkPixbufFrame Tue Nov 14 11:51:26 2000 Owen Taylor * Makefile.am: Add -avoid-version for all modules. 2000-11-13 Havoc Pennington * io-png.c (png_simple_error_callback): fix error message to not say "save" since it's used for loading 2000-11-11 Hans Breuer * gdk-pixbuf-io.c : Fix all function prototype macros for self contained image handlers (!USE_G_MODULE). Files to save should be opened in binary mode, fopen(s, "wb"). * io-xpm.c : added HAVE_UNISTD_H condition 2000-11-11 Tor Lillqvist * gdk_pixbuf.def: Add gdk_pixbuf_new_subpixbuf. * io-tiff.c (gdk_pixbuf__tiff_image_begin_load): Use g_file_open_tmp() (just added to GLib) instead of mkstemp() (or mktemp() and open()). * io-xpm.c (gdk_pixbuf__xpm_image_begin_load): Ditto. 2000-11-01 Havoc Pennington * gdk-pixbuf.c (gdk_pixbuf_new_subpixbuf): New function to create a pixbuf pointing to a subregion of another pixbuf. 2000-10-16 Tor Lillqvist * gdk-pixbuf-io.c: Define also m_save (for the non-gmodule case). 2000-10-16 Havoc Pennington * 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-06 Havoc Pennington * gdk-pixbuf.h: add GdkPixbufAlphaMode 2000-10-06 Havoc Pennington 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 * 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 * gdk-pixbuf/io-pnm.c: Rewrote. 2000-09-09 Federico Mena Quintero * gdk-pixbuf/pixops/pixops.c (pixops_composite_nearest): Compute the correct dest offset. 2000-08-25 Federico Mena Quintero * gdk-pixbuf/io-xpm.c: #include 2000-08-05 Larry Ewing * gdk-pixbuf/io-tiff.c: stop leaking context->tempname. * gdk-pixbuf/io-xpm.c: same as above. 2000-07-26 Michael Meeks * gdk-pixbuf/io-jpeg.c (gdk_pixbuf__jpeg_image_load): make g_malloc a malloc. 2000-07-21 Larry Ewing * 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 * 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-07 Tor Lillqvist * gdk_pixbuf.def * pixbufloader_jpeg.def * pixbufloader_png.def: Add new entry points. * makefile.mingw.in: Use libintl. 2000-10-06 Havoc Pennington * gdk-pixbuf-io.c (gdk_pixbuf_save): s/format/type/g to be consistent with gdk_pixbuf_loader_new_with_type(). Return runtime error if a module is missing. * gdk-pixbuf.h: add GDK_PIXBUF_ERROR_UNKNOWN_TYPE 2000-10-05 Havoc Pennington 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 Dan Winship * io-png.c, io-tiff.c, io-xpm.c: Fix comments to not claim that all three of these files are the JPEG image loader. (From gdk-pixbuf module.) 2000-10-03 Tor Lillqvist * makefile.mingw.in: Add rule for make-inline-pixbuf. Use gdk-pixbuf's version number in the rule for makefile.mingw itself. * gdk_pixbuf.def: Add new entry points. 2000-09-26 Havoc Pennington * gdk-pixbuf-util.c (gdk_pixbuf_saturate_and_pixelate): Add this function here, instead of putting it in a private GTK+ file. * gdk-pixbuf-private.h (GdkPixbufInlineFormat): include an enum here for the known formats of inlined pixbufs. Also, #define our file magic here. 2000-06-23 Havoc Pennington * make-inline-pixbuf.c: Small program that creates C variable declarations of inline pixbuf data. This can be read by gdk_pixbuf_new_from_inline. * gdk-pixbuf.h (gdk_pixbuf_new_from_inline): New function to read inline pixbuf data and create a pixbuf from it. * gdk-pixbuf-data.c (gdk_pixbuf_new_from_inline): implement here 2000-09-07 Tor Lillqvist * makefile.mingw.in: Use own version number for gdk-pixbuf DLLs, like on Unix. 2000-08-12 Tor Lillqvist * gdk_pixbuf.def: Add missing entry point. 2000-08-10 Havoc Pennington * Makefile.am (EXTRA_DIST): The *.def files had the wrong names (s/pixbuf_/pixbufloader_) 2000-08-02 Tor Lillqvist * io-bmp.c * io-ico.c * io-ras.c * io-tiff.c * io-wbmp.c: Conditionalise inclusion of . * makefile.mingw.in: List loaders alphabetically. Add the wbmp one. Fix names of DLLs to have '-' instead of '_'. 2000-07-31 Elliot Lee * io-wbmp.c: Some bug fixes - now tested to work. 2000-07-27 Elliot Lee * gdk-pixbuf-io.h, gdk-pixbuf-io.c: Add gdk_pixbuf_get_named_module() function to facilitate above change * io-wbmp.c, pixbufloader_wbmp.defs, gdk-pixbuf-io.c, Makefile: Implement loader for WBMP format. * io-bmp.c: Don't malloc a temporary buffer - use stack instead. 2000-07-23 Tor Lillqvist 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(). Sat Jul 22 10:57:22 2000 Owen Taylor * Makefile.am (test_gdk_pixbuf_LDADD): Remove -lgmodule Tue Jul 11 11:26:42 2000 Owen Taylor * gdk-pixbuf.c: Add include. Tue Jul 11 06:20:14 2000 Tim Janik * io-gif.c (gdk_pixbuf__gif_image_load_animation): * gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): * gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file): use g_object_new() instead of g_type_create_instance() which is a private function for fundamental type implementations. Thu Jul 6 11:49:47 2000 Owen Taylor * Makefile.am (libgdk_pixbuf_la_LDFLAGS): Use GTK+ version soname scheme for gdk-pixbuf. 2000-06-21 Havoc Pennington * gdk-pixbuf.c: Convert GdkPixbuf to GObject, leaving it opaque (i.e. derivation is not allowed, and there are no virtual methods anyway). (gdk_pixbuf_preinit): Call g_type_init() here. (gdk_pixbuf_init): Add a user-friendly init function, for users of standalone gdk-pixbuf * gdk-pixbuf-animation.c: Convert to GObject, in the same way GdkPixbufAnimation was done. * gdk-pixbuf.h: Remove gdk_pixbuf_set_unref_handler() and gdk_pixbuf_finalize() from API, since these are broken and don't make sense with new GObject stuff. Wed Jun 21 16:02:48 2000 Owen Taylor * gdk-pixbuf-io.c (gdk_pixbuf_load_module): Add feature to support a GDK_PIXBUF_MODULEDIR env variable as a secondary load location. 2000-06-10 Federico Mena Quintero * demo/pixbuf-demo.c: It was cold and rainy this Saturday morning, so I needed something to warm my thighs. Running plain infinite loops on your laptop to make it hot is not very much fun. A demo of the gdk-pixbuf scaling functions is way better, and looks prettier, too. * configure.in (AC_OUTPUT): Added the demo Makefile. * Makefile.am (SUBDIRS): Added the demo directory. 2000-06-09 Larry Ewing * gdk-pixbuf/io-png.c (gdk_pixbuf__png_image_load_increment): setjmp for the png error handler. It seems setting the error handling functions does not avoid the jump, and so not calling setjmp was causing the incremental loader to jump into lala land. (gdk_pixbuf__png_image_begin_load): setjmp for error handling, I'm not sure this one is actually required but the docs say it must be set for every call to a png_* function. Also changed the comment to reflect the fact that setting the error handlers does _not_ avoid the longjmp. 2000-06-06 Larry Ewing * gdk-pixbuf/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done): take frame offest into account when trying to calculate the animation bbox. Also set the width to the width not the height. (gdk_pixbuf_loader_animation_done): cycle over the frames to calculate bbox because now we finally have all the offset information for each frame. 2000-06-05 Mathieu Lacage * configure.in: add some gtk parameters to the GDK_PIXBUF_LIBÃ�²S and GDK_PIXBUG_INCLUDEDIR vars. One more fight in my crusade for strange prefix compile... 2000-05-30 Not Zed * 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-30 Federico Mena Quintero * gdk-pixbuf.spec.in: Include all the loader libraries. Patch from Frank de Lange . 2000-05-09 Darin Adler * gdk-pixbuf/test-gdk-pixbuf.c: Fixed includes to get rid of accidental GNOME dependency. 2000-05-26 Cody Russell * Makefile.am: Added gdk-pixbuf.spec to EXTRA_DIST 2000-05-22 Federico Mena Quintero * configure.in: Bumped version number to 0.8.0. * doc/Makefile.am (content_files): The toplevel gdk-pixbuf.sgml file was not being distributed. * gdk-pixbuf/pixops/Makefile.am (EXTRA_DIST): Added DETAILS. 2000-05-09 Darin Adler * gdk-pixbuf/gdk-pixbuf-drawable.c: (rgb565lsb), (rgb565msb), (rgb565alsb), (rgb565amsb), (rgb555lsb), (rgb555msb), (rgb555alsb), (rgb555amsb), (convert_real_slow): Change all conversion from 16-bit formats to 32-bit formats to re-use the high bits of the color values so that white maps to full white. Fri May 5 12:16:32 2000 Owen Taylor * gdk-pixbuf/pixops/DETAILS: Add beginnings of file with detailed information about the structure and algorithms of pixops so people can fix it instead of breaking it. 2000-05-04 Darin Adler * gdk-pixbuf/pixops/pixops.c: (pixops_composite_nearest), (composite_pixel), (composite_line): * gdk-pixbuf/test-gdk-pixbuf.c: (simple_composite_test_one_type): Now that Owen explained the algorithm, I think I implemented it right for the cases where the destination pixbuf is not opaque. The test does seem to confirm it. 2000-05-04 Darin Adler * gdk-pixbuf/.cvsignore: * gdk-pixbuf/Makefile.am: * gdk-pixbuf/test-gdk-pixbuf.c (store_pixel), (fill_with_pixel), (load_pixel), (simple_composite_test_one), (simple_composite_test_one_type), (simple_composite_test), (main): Added some tests of composite to highlight problems in the old implementation. These tests run without any user interaction. Just do "make check". * gdk-pixbuf/pixops/pixops.c (pixops_composite_nearest), (composite_pixel), (composite_line): Fix composite to do a textbook "A over B" composite. This was clearly the intent, and it was easy to fix the code to do it. (Note to those that read my earlier tries at a patch; this version fixes typos that were present in all my patch attempts. I checked the final version by adding more tests.) 2000-04-22 05:27:43 2000 Owen Taylor * gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Properly offset y coordinate accordining to render_y0. * gdk-pixbuf/gdk-pixbuf-scale.c: Properly handle nonzero dest_x, dest_y. 2000-04-22 James Henstridge * gdk-pixbuf.spec.in (%files): moved %{prefix}/bin/* from the main package to the devel package. The only file installed in bin is gdk-pixbuf-config, which belongs in -devel. This should allow having multiple versions of the main gdk-pixbuf package installed. 2000-04-17 Karl Eichwalder * gdk-pixbuf/Makefile.am (INCLUDES): Add $(GNOME_CFLAGS). Reported by Jens Finke. 2000-04-14 Tomasz KÃ�³opczko * gdk-pixbuf/pixops/makefile.am: $(LIBART_CFLAGS) replaced by $(GTK_CFLAGS) - now gdk-pixbuf compiles correctly. 2000-04-13 James Henstridge * configure.in: when performing the configure check to see if gmodule works, set CFLAGS to GLIB_CFLAGS and LIBS to GLIB_LIBS, rather than the other way round. Also, call AC_MSG_RESULT in the even that dynamic modules were not supported. 2000-04-12 Federico Mena Quintero This comes from an excellent idea by Tim Janik (timj@gtk.org) to hook to the last unref operation. * gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_set_last_unref_handler): New function to set the last unref handler for a pixbuf. (gdk_pixbuf_finalize): New function to actually finalize a pixbuf. It calls the pixbuf's destroy notification function and frees the GdkPixbuf structure itself. (gdk_pixbuf_unref): Use the last unref function of the pixbuf if available. * gdk-pixbuf/gdk-pixbuf-private.h (struct _GdkPixbuf): New fields for the last unref handler and its user data. * gdk-pixbuf/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Use g_new0() to allocate the pixbuf. * gdk-pixbuf/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): Fixed the call to gtk_signal_new() for the "frame_done" signal; it was not specifying the `frame' argument. * gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_animation_get_width): Fixed docstring. (gdk_pixbuf_animation_get_height): Likewise. (gdk_pixbuf_animation_get_num_frames): Likewise. (gdk_pixbuf_animation_get_frames): Likewise. * doc/gdk-pixbuf-sections.txt: Updated with the new functions and types. * doc/tmpl/gdk-pixbuf.sgml: Added the description for GdkColorspace. * doc/tmpl/scaling.sgml: Added the description for GdkInterpType. * doc/tmpl/refcounting.sgml: Updated with the information about the last unref handler. * doc/tmpl/*.sgml: Markup tweaks. * gdk-pixbuf/Makefile.am (libgnomecanvaspixbuf_la_LDFLAGS): Sigh, update the libtool version number for libgnomecanvaspixbuf as well. (libpixbufloader_*_la_LDFLAGS): The loaders need to be versioned as well, or the old ones won't work with the new stuff. Also, renamed the modules as follows. * gdk-pixbuf/gdk-pixbuf-io.c (gdk_pixbuf_load_module): Now the modules are called "libpixbufloader-.so" instead of "libpixbuf-.so". They needed renaming so that the new loaders won't overwrite the old ones; even with the versioning stuff, the new .so symlink to the .so.1.0.0 would overwrite the old real .so file. 2000-04-12 Paolo Molaro * .cvsignore, src/.cvsignore: shut up cvs. 2000-04-11 Federico Mena Quintero 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-06 Jonathan Blandford * gdk-pixbuf/testanimation.c (main): add more info to the testanimation frames. 2000-04-04 Ettore Perazzoli * gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_animation_get_width): New accessor function. (gdk_pixbuf_animation_get_height): New accessor function. (gdk_pixbuf_animation_get_num_frames): New accessor function. (gdk_pixbuf_animation_get_frames): New accessor function. 2000-04-01 Federico Mena Quintero * gdk-pixbuf/gdk-pixbuf.c: Reverted Mark's change. The refcount is private information, and the art_pixbuf will go away soon. 2000-03-31 Mark Crichton * gdk-pixbuf/gdk-pixbuf.c: Added gdk_pixbuf_get_refcount and gdk_pixbuf_get_artpixbuf accessor functions. 2000-03-29 Federico Mena Quintero * gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_get_has_alpha): Return gboolean instead of int. 2000-03-29 Radek Doulik * gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file): same as below * gdk-pixbuf/io-gif.c (gif_get_lzw): added update of width and height in GdkPixbufAnimation 2000-03-28 Radek Doulik * gdk-pixbuf/io-gif.c (gif_get_lzw): test also for context->frame_done_func and context->anim_done_func to make progressive animation loading work * gdk-pixbuf/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done): added priv->pixbuf = NULL as pixbuf is now in frame (and to make gdk_pixbuf_loader_prepare happy) (gdk_pixbuf_loader_frame_done): update animation bbox * gdk-pixbuf/gdk-pixbuf.h: added bbox size (width, height) to _GdkPixbufAnimation 2000-03-27 Radek Doulik * gdk-pixbuf/io-gif.c (gif_get_lzw): use frame_len and frame_width instead of width and height 2000-03-27 Owen Taylor * gdk-pixbuf/pixops/pixops.c: Fix problem with precendence of >> and & which was keeping composite_color from working with non-gray images. 2000-03-08 Jonathan Blandford * gdk-pixbuf/io-gif.c (gdk_pixbuf__gif_image_load): free the context. (gdk_pixbuf__gif_image_load_animation): free the context. 2000-03-06 Arjan van de Ven * gdk-pixbuf/io-bmp.c: Fixed to pointer-bugs and a mis-interpretation of the Microsoft documentation. Now it can load .BMP files that are not generated by The Gimp as well. 2000-03-01 Mark Crichton * configure.in: Added BUILD_CANVAS_ITEM stuff to (finally) fix the last auto* build bug (where we have libart, but no gnome-libs) * gdk-pixbuf/Makefile.am: Same. 2000-02-28 Matt Wilson * gdk-pixbuf/gdk-pixbuf-drawable.c: s/unsigned long/guint32/g, s/unsigned short/guint16/g, s/unsigned char/guint8/g 2000-02-26 Federico Mena Quintero * README: We don't require libgif/ungif nor libXpm. * NEWS: This was outdated, so updated it. 2000-02-25 Federico Mena Quintero * gdk-pixbuf.m4: Use the correct name for gdk-pixbuf/gdk-pixbuf.h. Thanks to Jacob Berkman for pointing this out. 2000-02-21 Federico Mena Quintero * configure.in (GDK_PIXBUF_MINOR): Bumped version number to 0.6.0. * doc/compiling.sgml: New appendix documenting the gdk-pixbuf library's particular options to configure.in. * doc/gdk-pixbuf.sgml: Include compiling.sgml appendix via an entity. * doc/Makefile.am (gdk-pixbuf.html): Added compiling.sgml. * gdk-pixbuf/io-ico.c (gdk_pixbuf__ico_image_load_increment): Fixed typo in prototype name. * configure.in: Changed duplicated AC_MSG_CHECKING message to something more meaningful; now it is "checking whether dynamic modules work". * gdk-pixbuf/pixops/Makefile.am (noinst_PROGRAMS): Do not install the timescale program. Integrated Miguel de Icaza's patch for optionally creating a single static library with all the image format modules in it. 2000-02-20 Miguel de Icaza * gdk-pixbuf/io-xpm.c (gdk_pixbuf__xpm_image_load): Add prefix. (gdk_pixbuf__xpm_image_load_xpm_data): Add prefix. * gdk-pixbuf/io-tiff.c (gdk_pixbuf__tiff_image_load_real): Add prefix. (gdk_pixbuf__tiff_image_stop_load): Add prefix. (gdk_pixbuf__tiff_image_load_increment): Add prefix. (gdk_pixbuf__tiff_image_load): Add prefix. (gdk_pixbuf__tiff_image_stop_load): Update invocation. (gdk_pixbuf__tiff_image_begin_load): Add prefix. * gdk-pixbuf/io-ras.c (gdk_pixbuf__ras_image_load): Add prefix. (gdk_pixbuf__ras_image_load): Updated invocation. (gdk_pixbuf__ras_image_begin_load): Add prefix. (gdk_pixbuf__ras_image_stop_load): Add prefix. (gdk_pixbuf__ras_image_load_increment): Add prefix. * gdk-pixbuf/io-pnm.c (gdk_pixbuf__pnm_image_begin_load): Add prefix. (gdk_pixbuf__pnm_image_stop_load): Add prefix. (gdk_pixbuf__pnm_image_load_increment): Add prefix (gdk_pixbuf__pnm_image_load): Add prefix. * gdk-pixbuf/io-jpeg.c (gdk_pixbuf__jpeg_image_load): Add prefix. (gdk_pixbuf__jpeg_image_load_increment): Add prefix. (gdk_pixbuf__jpeg_image_begin_load): Add prefix. (gdk_pixbuf__jpeg_image_stop_load): Add prefix. * gdk-pixbuf/io-ico.c (gdk_pixbuf__ico_image_load): Add prefix. (gdk_pixbuf__ico_image_load): update invocation. (gdk_pixbuf__ico_image_load_increment): Add prefix. (gdk_pixbuf__ico_image_load): update invocation. (gdk_pixbuf__ico_image_begin_load): Add prefix. (gdk_pixbuf__ico_image_load): update invocation. (gdk_pixbuf__ico_image_stop_load): Add prefix. * gdk-pixbuf/io-gif.c (gdk_pixbuf__gif_image_load_animation): Add prefix. (gdk_pixbuf__gif_image_load): Add prefix. (gdk_pixbuf__gif_image_begin_load): Add prefix. (gdk_pixbuf__gif_image_load_increment): Add prefix. (gdk_pixbuf__gif_image_load_animation): Add prefix. (gdk_pixbuf__gif_image_stop_load): Add prefix. * gdk-pixbuf/io-bmp.c (gdk_pixbuf__bmp_image_load): Add prefix. (gdk_pixbuf__bmp_image_load): Rename function called. (gdk_pixbuf__bmp_image_load_increment): Add prefix * gdk-pixbuf/io-png.c (gdk_pixbuf__png_image_load): Add prefix. (gdk_pixbuf__png_image_begin_load): Add prefix. (gdk_pixbuf__png_image_stop_load): Add prefix. (gdk_pixbuf__png_image_load_increment): Add prefix. * gdk-pixbuf/gdk-pixbuf-io.c (file_formats): Make this static. (gdk_pixbuf_load_module): Load the shared library entry points using a "gdk_pixbuf__$module_name" prefix. (pixbuf_module_symbol): Wrapper routine that uses the module prefix for the modules to load the information. * configure.in (GDK_PIXBUF_VERSION): New option --disable-modules lets the user specify that gdk-pixbuf should link all image loader code into the library instaed of creating shared library modules. (dynworks): Renamed the automake conditional DYNAMIC_MODULES_WORK to BUILD_DYNAMIC_MODULES. 2000-02-19 Jonathan Blandford * gdk-pixbuf/io-gif.c (new_context): fix case where initial colormap entry is Transparent. 2000-02-19 Owen Taylor * gdk-pixbuf/pixops/pixops.c (scale_pixel): Fix error in scale factors for non-alpha case. 2000-02-14 Mark Crichton * gdk-pixbuf/io-xpm.c (xpm_extract_color): Added check for "g" color type. Imlib/libXpm handle this, but we didn't. 2000-02-14 Darin Adler * gdk-pixbuf/testpixbuf.c: Remove now-unnecessary cast. * .cvsignore: gdk-pixbuf/.cvsignore: More to ignore. 2000-02-14 Elliot Lee * gdk-pixbuf/gdk-pixbuf.h, gdk-pixbuf/gdk-pixbuf-data.c: Make passed-in argument 'const'. 2000-02-04 Michael Meeks * gdk-pixbuf/io-gif.c (struct _GifContext): add x,y_offset. (gif_get_frame_info): put the offsets on the context. (gif_get_lzw): copy them off into the frame. (new_context): no change required; will 0 offsets by default. 2000-01-28 Michael Meeks * gdk-pixbuf/pixops/pixops.c (pixops_process): const + nasty un-consting cast. * gdk-pixbuf/pixops/pixops.h: const. * gdk-pixbuf/gdk-pixbuf-util.c: const. * gdk-pixbuf/gdk-pixbuf-scale.c: const. * gdk-pixbuf/gdk-pixbuf.h: constify lots of things. 2000-02-03 Federico Mena Quintero * gdk-pixbuf/gdk-pixbuf-render.c (gdk_pixbuf_render_threshold_alpha): Added sanity check for width and height being >= 0. Also, do nothing if either of them is zero. Thanks to Ettore for pointing this out. (gdk_pixbuf_render_to_drawable): Likewise. (gdk_pixbuf_render_to_drawable_alpha): Likewise. 2000-02-02 Federico Mena Quintero * gdk-pixbuf/io-gif.c (gif_get_lzw): Removed debugging g_print. Thanks to John Sullivan for the patch. * gdk-pixbuf/testpixbuf-drawable.c (configure_cb): Get a new area of the screen when the window is resized. Thanks to David N. Welton for pointing this out. Misc. cleanups to the rest of the file. 2000-02-01 Federico Mena Quintero * doc/tmpl/rendering.sgml: gnome_init() does not call gdk_rgb_init(), so don't mention that it does in the documentation. Thanks to Alexander Kruuse for pointing this out. 2000-01-31 Havoc Pennington * gdk-pixbuf/Makefile.am (noinst_PROGRAMS): no testpixbuf-foo target Mon Jan 31 12:38:50 2000 Owen Taylor * gdk-pixbuf/pixops/pixops.c (scale_line): Fix from Peter Wainwright to fix 4a => 4a scaling. 2000-01-29 Mark Crichton * gdk-pixbuf-config: Oh dear, we weren't Telsa/Alan proof... put `libart-config --libs` in instead of -lart_lgpl. 2000-01-22 Federico Mena Quintero * gdk-pixbuf/io-pnm.c (pnm_read_raw_scanline): Return an error on invalid pnm type. (pnm_read_ascii_scanline): Initialize data and mask. * gdk-pixbuf/io-xpm.c (pixbuf_create_from_xpm): Initialize fallbackcolor to keep gcc happy. * configure.in: Bumped version number to 0.5.0. * gdk-pixbuf/pixops/timescale.c (dump_array): Removed unused variable. (main): Return 0. * gdk-pixbuf/pixops/pixops.c (pixops_composite_color_nearest): Put parentheses around + in a shift to remove a compiler warning. (pixops_process): Likewise. Patch from Ross Golder to create an RPM specfile: * configure.in: Added gdk-pixbuf.spec to AC_OUTPUT. * Makefile.am (EXTRA_DIST): Added gdk-pixbuf.spec.in 2000-01-22 Federico Mena Quintero * gdk-pixbuf/gnome-canvas-pixbuf.c (PixbufPrivate): Removed the x_set and y_set arguments. Now they are always on and start with defaults of 0.0 in units. (gnome_canvas_pixbuf_class_init): Likewise. (gnome_canvas_pixbuf_set_arg): Likewise. (gnome_canvas_pixbuf_get_arg): Likewise. (compute_viewport_affine): Likewise; always use the priv->x and priv->y fields. * doc/tmpl/gnome-canvas-pixbuf.sgml: Modified to reflect the removal of the x_set/y_set arguments. 2000-01-21 Federico Mena Quintero * gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_ref): Return the same pixbuf as the input parameter. * gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_animation_ref): Return the same animation as the input parameter. 2000-01-16 Elliot Lee * gdk-pixbuf/Makefile.am: Don't link against libgnomecanvaspixbuf.la 2000-01-16 Federico Mena Quintero * configure.in: Removed the broken --enable-canvas-pixbuf option. Added the stuff necessary to substitute the variables in gnomecanvaspixbufConf.sh.in. * gnomecanvaspixbufConf.sh.in: New gnome-config handler for the tiny gnomecanvaspixbuf library. * Makefile.am: Build gnomecanvaspixbufConf.sh. * gdk-pixbuf/Makefile.am: Create a libgnomecanvaspixbuf and only build it if gdk-pixbuf is being built outside of gnome-libs. * doc/gdk-pixbuf-sections.txt: Added gdk_pixbuf_render_pixmap_and_mask(). * gdk-pixbuf/gdk-pixbuf-render.c (gdk_pixbuf_render_pixmap_and_mask): Renamed from gdk_pixbuf_render_pixmap(). Do not create the mask if it is not needed, and do not use a clipping mask when rendering the pixmap. Tweaked documentation a little. * HACKING: New file with hacking policies for the gdk-pixbuf module. * doc/Makefile.am (tmpl_sources): Added missing backslash. * doc/Makefile.am: Use gnomecanvaspixbuf in gnome-config when scanning for docstrings. * gdk-pixbuf/gdk-pixbuf-util.c (gdk_pixbuf_copy_area): Made sanity checks more stringent. Removed "gint" abominations. Made documentation consistent with the rest of the functions. * doc/gdk-pixbuf-sections.txt: Added gdk_pixbuf_copy_area() to the utilities section. 2000-01-14 Jonathan Blandford * gdk-pixbuf/gdk-pixbuf-render.c (gdk_pixbuf_render_pixmap): new function to let you create a gdk_pixmap from a gdk_pixbuf. 2000-01-11 Jacob Berkman * gdk-pixbuf/pixops/Makefile.am (INCLUDES): added $LIBART_CFLAGS to $INCLUDES 2000-01-10 Elliot Lee * configure.in, gdk-pixbuf/Makefile.am: Build a libcanvas_pixbuf. * configure.in: Define version macros. Generate gdk-pixbuf/gdk-pixbuf-features.h. Always INSIDE_GNOME. * gdk-pixbuf/Makefile.am: Add gdk-pixbuf-features.h * gdk-pixbuf/gdk-pixbuf.c: Add definitions of gdk-pixbuf-features.h declarations, plus some initialization stubs. 2000-01-05 Owen Taylor * gdk-pixbuf/pixops/pixops.c: Fixed src_channels/dest_channels confusion. (Again caught by Tomas Ogren's Purify) 2000-01-07 Jonathan Blandford * gdk-pixbuf/gdk-pixbuf-xform.c (gdk_pixbuf_rotate): comment out debugging printing. * gdk-pixbuf/gdk-pixbuf-io.c: Added progressive animation loading. * gdk-pixbuf/gdk-pixbuf-io.h: Added progressive animation loading. * gdk-pixbuf/gdk-pixbuf-loader.c: Added progressive animation loading. * gdk-pixbuf/gdk-pixbuf-loader.h: Added progressive animation loading. * gdk-pixbuf/io-gif.c (image_load_increment): I think the ref-counting mess is finally fixed. Added progressive animation loading. (gif_get_lzw): remove memory_leak * doc/tmpl/gdk-pixbuf-loader.sgml: much longer long description added. 2000-01-05 Owen Taylor * gdk-pixbuf/pixops/pixops.c (pixops_process): Fix computation of end of run indices. * gdk-pixbuf/pixops/pixops.c: Fix double increments when dest_channels == 4. (Pointed out by Tomas Ogren) 2000-01-05 Mark Crichton * gdk-pixbuf/gdk-pixbuf-loader.c (gdk_pixbuf_loader_eat_header_write): Return 0 if gdk_pixbuf_load_loader_module returns FALSE. 2000-01-05 Elliot Lee * gdk-pixbuf/pixops/Makefile.am: Link with -lm (to get 'ceil' function) 2000-01-05 Owen Taylor * doc/Makefile.am doc/gdk-pixbuf-sections.txt doc/gdk-pixbuf.sgml doc/tmpl/scaling.sgml: Added scaling functions into gtk-doc framework. * gdk-pixbuf/gdk-pixbuf-scale.c: Documentation fixes. * gdk-pixbuf/testpixbuf-scale.c (expose_cb): Simplify a bit. * gdk-pixbuf/pixops/pixops.c (pixops_composite_color): Return immediately if scale_x or scale_y is 0. 2000-01-05 Owen Taylor * gdk-pixbuf/pixops/timescale.c: quick fix for initializing arrays in benchmark. 2000-01-05 Jonathan Blandford * 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 Owen Taylor * gdk-pixbuf/pixops/README: Added a README with a TODO and some explainations of the algorithms. * gdk-pixbuf/testpixbuf-scale.c: Set a background pixmap of None to reduce flashing when resizing. 2000-01-05 Owen Taylor * gdk-pixbuf/pixops/: Directory full of pixel data scaling code that will eventually migrate into libart. * configure.in acconfig.h: Add checks for MMX compiler support * gdk-pixbuf/gdk-pixbuf.h gdk-pixbuf/gdk-pixbuf-scale.c: Nice wrapper routines for the code in pixops that operate on pixbufs instead of raw data. * gdk-pixbuf/testpixbuf-scale: Test program for scaling routines. 2000-01-05 Jonathan Blandford * doc/tmpl/animation.sgml: Documentation changes. 2000-01-01 Federico Mena Quintero * gdk-pixbuf/gdk-pixbuf.h (GdkPixbufAnimation): Added reference counting to animations. A web browser may want to share a single copy of an animated GIF if it appears multiple times in a web page, for example. * gdk-pixbuf/gdk-pixbuf-animation.c: New file. Moved the animation functions here. (gdk_pixbuf_animation_new_from_file): Prettified. Return a NULL animation if the loader does not support multiframe loading and the single-frame load returned NULL. Check that the filename is not NULL. Updated inline documentation. (gdk_pixbuf_animation_ref): New function. (gdk_pixbuf_animation_unref): New function. Removed gdk_pixbuf_animation_destroy() in favor of reference counting. * gdk-pixbuf/gdk-pixbuf-io.c (gdk_pixbuf_new_from_file): Prettified. Made ref_count assertion more paranoid. Check that the filename is not NULL. (gdk_pixbuf_get_module): Use guchar * and guint for buffer and size, respectively. (gdk_pixbuf_new_from_xpm_data): Changed the "data" argument to const char **. * gdk-pixbuf/io-gif.c (image_load_animation): Create the animation with a reference count of 1. * gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_SOURCES): Added gdk-pixbuf-animation.c. * doc/tmpl/animation.sgml: Populated. It is still missing a description of the overlay modes. * doc/gdk-pixbuf-sections.txt: Added the animation section. Moved the canvas item section to the end, as it will be moved later to gnome-libs. * doc/gdk-pixbuf.sgml: Added the animation section. * doc/Makefile.am (tmpl_sources): Added tmpl/animation.sgml. 1999-12-26 Peter Teichman * gdk-pixbuf/Makefile.am (libpixbuf_tiff_la_LIBADD): add $(LIBTIFF) to libpixbuf_tiff_la_LIBADD, proxying for mmarker. This closes bug #4676. 1999-12-23 Havoc Pennington * gdk-pixbuf/io-gif.c (image_load): Stuff that should have been set to NULL here (specifically context->animation) was not being set to NULL. use g_new0() to alloc the struct. 1999-12-20 Jonathan Blandford * gdk-pixbuf/io-gif.c: finished work to make animated gifs load correctly. Progressive loading needs some work, but that all needs doing from the gdk-pixbuf-loader end, not here. 1999-12-17 Jonathan Blandford * gdk-pixbuf/gdk-pixbuf-io.c (gdk_pixbuf_animation_new_from_file): moved the file here. It seems natural to put this function here, as that's where the gdk_pixbuf_new_from_file function is, but it's still a little convoluted. The source files might be played with in a bit. 1999-12-14 Jonathan Blandford * gdk-pixbuf/gdk-pixbuf-loader.c (gdk_pixbuf_loader_get_animation): Gets the animation from the loader. 1999-12-16 Federico Mena Quintero * doc/tmpl/rendering.sgml: Added notice about initializing GdkRGB before using the GdkPixbuf rendering functions. Thanks to Joe Shaw for pointing this out. 1999-12-13 Federico Mena Quintero * gdk-pixbuf/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_class_init): Renamed arguments to width_in_pixels, height_in_pixels, x_in_pixels, y_in_pixels, for consistency with the new canvas. (PixbufPrivate): Do the same renaming in the structure fields, for consistency. * doc/tmpl/gnome-canvas-pixbuf.sgml: Updated for new argument names. 1999-12-12 Federico Mena Quintero * gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_LDFLAGS): Use a conditional to see whether to link $(GNOME_LIBS) or not. 1999-12-10 Jonathan Blandford * gdk-pixbuf/gdk-pixbuf-io.h: thinking about the new loading API. * gdk-pixbuf/gdk-pixbuf-drawable.c (gdk_pixbuf_get_from_drawable): make a warning go away. * gdk-pixbuf/gdk-pixbuf.h: added new prototypes for animations. * gdk-pixbuf/gdk-pixbuf-loader.h: added new prototypes for animations. 1999-12-09 Michael Zucchi * gdk-pixbuf/gdk-pixbuf.h: Enable gdk_pixbuf_get_from_drawable() api call. * gdk-pixbuf/gdk-pixbuf-drawable.c (gdk_pixbuf_get_from_drawable): Filled in body of function. (rgbconvert): Added GdkColormap parameter, and to all conversion functions also. (convert_real_slow): New function - should convert ANY visual/data format properly, but it aint fast. Used as a fallback when an optimised routine wont match. (rgbconvert): Do very specific tests on the data format to verify properly if the optimised version will do, otherwise use the fallback function for all other data formats. * gdk-pixbuf/Makefile.am: Re-enabled building of textpixbuf-drawable. * gdk-pixbuf/testpixbuf-drawable.c (main): Changed to use gdk_pixbuf_get_from_drawable(). 1999-12-08 Arjan van de Ven * gdk-pixbuf/gdk-pixbuf-drawable.c : Fixed the red/green/red bug on two occasions. * gdk-pixbuf/io-ras.c: Changed from the custom be32_to_cpu function to the generic glib one. 1999-12-08 Federico Mena Quintero * gdk-pixbuf/gdk-pixbuf-drawable.c: Fix includes. (gdk_pixbuf_get_from_drawable): Implemented the zillion sanity checks and API definition. The body needs filling in and it needs to do the Right Thing(tm) for pixmaps plus the given colormap and windows and their own colormaps. * gdk-pixbuf/gdk-pixbuf.h: Added prototype for gdk_pixbuf_get_from_drawable(). Killed gdk-pixbuf-drawable.h. * gdk-pixbuf/Makefile.am: Re-added the gdk-pixbuf-drawable sources. * doc/tmpl/from-drawables.sgml: Populated. * doc/gdk-pixbuf.sgml: Added the from-drawables section. * doc/Makefile.am (tmpl_sources): Added tmpl/from-drawables.sgml. * doc/gdk-pixbuf-sections.txt: Added a section for getting pixbufs from drawables. 1999-12-07 Federico Mena Quintero * doc/tmpl/gnome-canvas-pixbuf.sgml: Added clarification about reference counting for GdkPixbuf structures. 1999-12-07 Martin Baulig * gdk-pixbuf/Makefile.am (testpixbuf_LDADD): Conditionally include $(GNOME_LIBS) here. 1999-12-05 Arjan van de Ven Added missing "include " to: * gdk-pixbuf/io-ras.c * gdk-pixbuf/io-bmp.c * gdk-pixbuf/io-ico.c 1999-12-06 Federico Mena Quintero * gdk-pixbuf/gdk-pixbuf-io.c (file_formats): Patch from Arjan to fix an initializer. 1999-12-05 Federico Mena Quintero * gdk-pixbuf/Makefile.am (testpixbuf_LDADD): Add back $(GNOME_LIBS). This must compile outside of gnome-libs. If you want, send me a patch to do the conditional stuff properly. Otherwise, please read the GNOME Programming Guidelines, especially the "CVS policies" section. 1999-12-05 Jaka Mocnik * gdk-pixbuf/Makefile.am: removed GNOME_LIBS from testpixbuf_LDADD. 1999-12-05 Arjan van de Ven * gdk-pixbuf/io-ico.c: Bug in palet-size calculation fixed 1999-12-04 Arjan van de Ven * gdk-pixbuf/io-bmp.c: Major cleanup, added support for 32 bpp and 4 bpp (uncompressed) images, fixed 1bpp. * gdk-pixbuf/io-ras.c: Minor cleanup, ran through lclint * gdk-pixbuf/io-ico.c: Minor cleanup, fixed 1bpp icons, ran through lclint. * gdk-pixbuf/gdk-pixbuf-io.c: Added detection of .CUR files (Windows Cursor files). These are identical to .ICO files, except for the signature and 2 extra fields for the hotspot. 1999-12-03 Federico Mena Quintero * gdk-pixbuf/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_get_arg): Removed unused variable `item'. 1999-12-03 Jonathan Blandford * gdk-pixbuf/io-gif.c (gif_fill_in_lines): added a comment to explain this function better. 1999-12-02 Federico Mena Quintero Source files moved from src/ to gdk-pixbuf/, to be consistent with other libraries. * doc/Makefile.am: Modified for the new source directory. * configure.in: Likewise. * Makefile.am: Likewise. * autogen.sh: Likewise. * gdk-pixbuf/Makefile.am: Likewise. 1999-12-02 Federico Mena Quintero * src/testpixbuf.c: #include , and fix includes. * src/testpixbuf-drawable.c: #include , 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 * 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. * src/gdk-pixbuf.h: Removed unused transformation prototypes. * src/gdk-pixbuf-util.c: New file with utility and convenience functions for pixbufs. * src/Makefile.am (libgdk_pixbuf_la_SOURCES): Added gdk-pixbuf-util.c. * doc/gdk-pixbuf-sections.txt: Added section for utility functions. * doc/Makefile.am (tmpl_sources): Added tmpl/util.sgml. * doc/gdk-pixbuf.sgml: Added the utilities section. * doc/tmpl/util.sgml: Documentation for the utility functions. 1999-11-29 Owen Taylor * src/gdk-pixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha): Keep the mask around until after we draw ... since the GC changes aren't flushed to the X server until we draw, destroying it before that may result in BadPixmap errors. 1999-11-30 Havoc Pennington * configure.in: Add AM_CONDITIONAL for inside gnome-libs * src/Makefile.am: conditionalize GnomeCanvasPixbuf 1999-11-29 Federico Mena Quintero * src/Makefile.am: Uncomment the GnomeCanvasPixbuf sources. This should be made conditional, not blindly commented out. 1999-11-29 Jonathan Blandford * src/Makefile.am (ICO_LIB): Added another loader from Arjan to handle .ico files. Cool. 1999-11-24 Jonathan Blandford * src/io-bmp.c (OneLine24): new patch from Arjan to handle compressed bmps. 1999-11-24 James Henstridge * configure.in (AC_OUTPUT): altered hack to place the symlink in the top builddir rather than src. This still builds fine, and does not get gtk-doc into an infinite loop when trying to find all the source files. 1999-11-23 Jonathan Blandford * Removed #PRAGMA } from headers. Also, make compile if you don't have it installed, already. 1999-11-22 Federico Mena Quintero * src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_draw): Create the temporary buffer to the size of the interesction of the bounding box and the expose area, not the whole expose area. This speeds up things a lot. * src/gdk-pixbuf-render.c (gdk_pixbuf_render_threshold_alpha): Do not paint black on the mask, since we already cleared it in a single gdk_draw_rectangle() operation. 1999-11-22 Raja R Harinath * configure.in (GDK_PIXBUF_DIR): Fix for srcdir != builddir. 1999-11-22 Havoc Pennington * src/Makefile.am (GDK_PIXBUF_LIBS): Patch from Paul Fisher adds all -lgdk-pixbuf and all other dependencies to LIBADD variables for loadable modules. Necessary for a Java dynamic loading thing to be able to figure it out. 1999-11-22 Havoc Pennington * src/io-png.c (image_load_increment): Call the update_area callback depending on the number of rows loaded in this increment. * src/testpixbuf.c (main): slow down the progressive load demo 1999-11-16 Havoc Pennington * src/gdk-pixbuf-drawable.h: Get the quotes right on the #include 1999-11-22 Jonathan Blandford * 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-21 Jonathan Blandford * src/gdk-pixbuf-io.c: added io-bmp from Arjan 1999-11-20 Michael Zucchi * src/gdk-pixbuf-drawable.c (gdk_pixbuf_from_drawable_core): Rework/reorder of the code. Each case has been separated into another function; its big but it should be quick. gdk_pixbuf_rgba_from_drawable() will now return a pixbuf with opaque alpha information. Not all depths/formats have been tested, but 8, 15/16 and 24 (alinged 32) should work ok. 1999-11-17 Larry Ewing * src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_bounds): implement the bounds method correctly. (compute_viewport_affine): compute the affine need to fit the image within the viewport given by the args. (compute_render_affine): call compute_viewport_affine. 1999-11-16 Havoc Pennington * src/gdk-pixbuf-drawable.h: Use includes from the current directory, not the system directory. Mon Nov 15 17:18:28 1999 George Lebl * src/testpixbuf-drawable.c: use includes from the current directory rather then from the system include directory as gdk-pixbuf includes are not yet installed when this is compiled. 1999-11-13 Cody Russell * src/testpixbuf-drawable.c: Added a test program for drawable code. * src/Makefile.am: Build testpixbuf-drawable. 1999-11-12 Cody Russell * src/gdk-pixbuf-drawable.c: Merged in Michael Zucchi's changes. 1999-11-10 Federico Mena Quintero * doc/tmpl/gdk-pixbuf-loader.sgml: Populated. * doc/gdk-pixbuf.signals: Put in the real names of signal arguments. * src/gdk-pixbuf-loader.c: Improved documentation comments. 1999-11-10 Jonathan Blandford * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_close): emit the closed signal. * src/io-ras.c (OneLineMapped_file): Now can handle indexing correctly. Patch from Arjan to do so. 1999-11-10 Michael Fulbright * src/io-pnm.c (pnm_ascii_read_scanline): Fixed loading of ASCII PNM files. * src/testpixbuf.c: Added final queued draw when done loading image. 1999-11-10 Jonathan Blandford * src/gdk-pixbuf-io.c (gdk_pixbuf_load_module): removed spurious print statements. 1999-11-10 Federico Mena Quintero * src/gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): Added documentation. 1999-11-09 Federico Mena Quintero * src/io-png.c: Fixed some incompatible pointer initializations. * src/io-jpeg.c (image_load_increment): Remove unused variable. 1999-11-09 Michael Fulbright * src/testpixbuf.c: Fixed it to use timeout to read from file for progressive loading. Set TBF_KBPS=n, where n is the number of kilobytes/second to simulate in downloading. n has to be an integer. * 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 Havoc Pennington * src/Makefile.am (libgdk_pixbuf_la_SOURCES): build the gdk-pixbuf-drawable stuff. 1999-11-09 Federico Mena Quintero * configure.in: Bumped version number to 0.4. 1999-11-09 Michael Fulbright * src/io-pnm.c : Finished progressive PNM loading code. Should handle all types of PNM files now. * 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-08 Jonathan Blandford * src/io-ras.c (image_load_increment): Final patch from Arjan. Seems to do progressive loading. 1999-11-08 Michael Fulbright * src/io-pnm.c image_load (): Fixed so we do not create a separate pixel buffer when reading in image - we reuse the pixel data in the GdkPixbuf structure instead. 1999-11-08 Michael Fulbright * src/io-pnm.c pnm_read_ascii_scanline (): Added support for ASCII PNM files. Note I haven't tested loaded ASCII PBM files because I can't seem to find a utility to convert into this format. Next is to add progressive loading support for the PNM format. 1999-11-07 Federico Mena Quintero * doc/tmpl/gnome-canvas-pixbuf.sgml: Finished detailed explanation of the width, height, x, and y setting and pixels arguments. 1999-11-05 Jonathan Blandford * src/io-ras.c (image_load): third patch. Now it seems to load. * src/gdk-pixbuf-io.c: second patch Arjan van de Ven to autodetect/load the sunras files. * src/io-ras.c (image_load): new file from Arjan van de Ven to begin the ras loader. 1999-11-05 Federico Mena Quintero * doc/gdk-pixbuf-sections.txt: Removed gdk-pixbuf-io, since it is for internal use only. * doc/gdk-pixbuf.sgml: Likewise. * doc/tmpl/gnome-canvas-pixbuf.sgml: Finished docs. 1999-11-05 Michael Fulbright * src/io-pnm.c: Implemented support for reading raw PBM/PGM/PPM files from a file. Next step is support for ASCII files, and then incremental loading. 1999-11-04 Federico Mena Quintero * Makefile.am: Added doc to SUBDIRS. 1999-11-04 Michael Fulbright * 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-04 Federico Mena Quintero * doc/tmpl/rendering.sgml: Populated. * doc/Makefile.am: Added the template files. 1999-11-04 Havoc Pennington * src/gdk-pixbuf-render.c (gdk_pixbuf_render_to_drawable): In docs, explain what a dither offset is for. (gdk_pixbuf_render_to_drawable_alpha): Explain why you would use this function vs. gdk_pixbuf_render_to_drawable(). 1999-11-04 Havoc Pennington * configure.in: Use libart-config correctly; find gnome-config separately. Fix GNOME_LIBS to be correct in "no gnome installed yet" case. * src/Makefile.am: Link to GNOME_LIBS instead of a hardcoded library list. Patch untested in the inside-gnome-libs case, I need to commit then check out to the gnome-libs I'm using. 1999-11-04 Michael Fulbright * 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 Jonathan Blandford * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_update): handle the actual update. * src/io-png.c (image_begin_load): add a update_func callback. * src/io-gif.c (image_begin_load): add a update_func callback. (gif_get_lzw): added the update_func ability * src/io-tiff.c (image_begin_load): add a update_func callback. 1999-11-04 Federico Mena Quintero * doc/tmpl/gdk-pixbuf.sgml: Populated. * doc/tmpl/refcounting.sgml: Populated. * doc/tmpl/file-loading.sgml: Populated. * src/gdk-pixbuf.c: Added documentation comments. * src/gdk-pixbuf-io.c (gdk_pixbuf_new_from_file): Added documentation comments. * doc/: Finished integrating the documentation framework. 1999-11-03 Federico Mena Quintero * configure.in: Removed libgif stuff now that we do not depend on it. Added the necessary cruft for gtk-doc. * src/Makefile.am: Unconditionally build the GIF loader. 1999-11-03 Jonathan Blandford * src/io-gif.c (gif_read): renamed ReadOK to gif_read. Added a lot of comments to the file. * src/Makefile.am (libpixbuf_gif_la_LIBADD): Remove dependency on lib*gif!!!! 1999-11-03 Michael Fulbright * 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 Jonathan Blandford * src/io-gif.c (image_load_increment): now handle arbitrary buffer sizes. (gif_get_lzw): set the transparency to the right val. 1999-11-03 Federico Mena Quintero * src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_init): Initiailize the x and y fields. (gnome_canvas_pixbuf_destroy): Queue a redraw upon destruction. (PixbufPrivate): Renamed need_size_update to need_xform_update. (recompute_bounding_box): Do not use temporary values. 1999-11-03 Jonathan Blandford * src/io-gif.c (set_gif_lzw_clear_code): new state. Fixes un-compressed gifs. * src/gnome-canvas-pixbuf.c (recompute_bounding_box): remove unneeded x,y,h,w vars. 1999-11-03 Larry Ewing * src/gnome-canvas-pixbuf.c (compute_render_affine): adjust render_affine calculation for x,y offsets. (gnome_canvas_pixbuf_set_arg): add x,y args. (gnome_canvas_pixbuf_get_arg): add x,y args. (recompute_bounding_box): simply code using ArtDrect and the render_affine. Removed compute_xform_vectors as it was no longer needed. 1999-11-03 Federico Mena Quintero * src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_point): I'm a doofus. Return a distance, not a boolean, for opaque images. * src/gnome-canvas-pixbuf.c (recompute_bounding_box): Do proper rounding of bounding box coordinates. (gnome_canvas_pixbuf_bounds): Implemented the ::bounds() method. (gnome_canvas_pixbuf_draw): Use the correct alpha threshold value. 1999-11-03 Jonathan Blandford * src/io-gif.c (gif_prepare_lzw): s/lwz/lzw/g 1999-11-03 Michael Fulbright * 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 will look into next. 1999-11-03 * src/testpixbuf.c: A GtkFunction needs to return a value for deterministic behaviour. Also put dot printing back in. 1999-11-03 * src/io-gif.c (gif_get_extension): Read 'til the next empty block correctly, now. 1999-11-02 Cody Russell * src/gdk-pixbuf-drawable.c: Changed the behavior to return NULL if part of the requested image is offscreen, rather than clipping the image. 1999-11-02 Jonathan Blandford * src/io-gif.c (gif_fill_in_lines): Fill in the gif's blank areas for interlacing and progressive loading. 1999-11-02 Cody Russell * src/gdk-pixbuf-drawable.c (gdk_pixbuf_from_drawable_core): Now calls gdk_pixbuf_new_from_art_pixbuf() instead of gdk_pixbuf_new(). 1999-11-02 Jonathan Blandford * src/io-gif.c (gif_main_loop): Now progressive gif loading works! It's a little slow though. )-: 1999-11-02 Elliot Lee * src/gdk-pixbuf-loader.[ch], src/gdk-pixbuf-io.h: Make the arguments to the write/load_increment operations const-correct. 1999-11-02 Federico Mena Quintero * src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_point): Implemented the ::point() method. We do a simple containment test instead of a full distance calculation since the canvas is going to change to that scheme, anyways. 1999-11-02 Elliot Lee * src/testpixbuf.c: Allow using $TBF_READLEN to specify the size of the chunks that are read from the input file. 1999-11-02 Larry Ewing * src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_render): add aa render function. (gnome_canvas_pixbuf_class_init): add gnome_canvas_pixbuf_render to class. 1999-11-02 Federico Mena Quintero * src/gnome-canvas-pixbuf.c (compute_render_affine): Moved the affine computation code from ::draw() to here, since it is needed by ::point() as well. 1999-11-02 Elliot Lee * 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-01 Federico Mena Quintero * src/gnome-canvas-pixbuf.c (recompute_bounding_box): Fixed bounding box computation. 1999-11-01 Federico Mena Quintero * src/gnome-canvas-pixbuf.c: Start of the pixbuf canvas item. Drawing affines seem to work. Bounding box is fubared. ::point() is not implemented. This is a work in progress. * src/Makefile.am: Added gnome-canvas-pixbuf.[ch] to the list of sources. * configure.in: Sigh. We need to link in libgnomeui for the canvas stuff. This mess will disappear when gdk-pixbuf gets folded into gnome-libs. 1999-10-30 Jonathan Blandford * src/io-gif.c: Some more work. Now it generates a gdk_pixbuf of the right size, at a minimum, even if the image is squished and the wrong color. (ReadImage): lets get the offset right. This will let transparent gifs work. 1999-10-29 Michael Fulbright * 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 Michael Fulbright * 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 Michael Fulbright * src/testpixbuf.c: Added title to windows so you can identify progressive and file windows. 1999-10-29 Michael Fulbright * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): Actually load the image handler when we determine the image type. * src/gdk-pixbuf-io.[ch] (gdk_pixbuf_load_module): Changed the previously static function load_image_handler () to a public function gdk_pixbuf_load_module (). It is needed in gdk-pixbuf-loader.c to load image handler modules. This function is different from gdk_pixbuf_get_module (), which only returns a reference to the required handler, because it actually loads the handler into memory. Both actions should possibly be combined in a convenience function since one w/o the other doesn't seem to make much sense. 1999-10-28 Jonathan Blandford * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): don't send a 0 length buffer. 1999-10-28 Federico Mena Quintero * src/gdk-pixbuf-render.c (gdk_pixbuf_render_to_drawable): New function to render a portion of a pixbuf to a drawable. Ignores alpha information and takes in a GC. (gdk_pixbuf_render_to_drawable_alpha): New function to render a portion of a pixbuf to a drawable. It automatically creates a GC and a clipping mask for alpha pixbufs. 1999-10-28 Jonathan Blandford * src/gdk-pixbuf.h: turned convenience macros into convenience functions so some error checking could be added. * src/io-tiff.c (image_load_increment): started work on the tiff non-incremental loader. (image_begin_load): Finished the incremental loader. * src/io-gif.c (image_load_increment): started work on the gif incremental loader. * src/gdk-pixbuf-io.h: Changed ModuleType to GdkPixbufModule. 1999-10-27 Federico Mena Quintero * src/gdk-pixbuf-render.c (gdk_pixbuf_render_threshold_alpha): New function to threshold a pixbuf's alpha channel into a bitmap. * src/gdk-pixbuf.c (gdk_pixbuf_new): Fixed so that it will contemplate future extensions to ArtPixBuf's formats. * src/io-png.c (png_info_callback): Use the new API of gdk_pixbuf_new(). * src/gdk-pixbuf.h (gdk_pixbuf_get_height): Added some convenience macros to fetch the ArtPixBuf's fields. 1999-10-27 Havoc Pennington * src/testpixbuf.c (main): Display the progressive load * src/io-png.c (setup_png_transformations): Break transformation code into separate function (png_info_callback): Use setup_png_transformations 1999-10-27 Havoc Pennington * src/gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): Check properly whether the XPM module has already been loaded (gdk_pixbuf_new_from_file): Check properly if loader module was already loaded (was checking if load symbol was present in order to decide whether to re-load; should check module != NULL, then load != NULL) (image_handler_load): Check in present working directory, makes it easier to debug for now (file_formats): This array initializer was seriously on crack, was assigning a function pointer to a GModule* * src/testpixbuf.c (main): Change type of pixbuf_loader to GdkPixbufLoader* 1999-10-27 Havoc Pennington * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_finalize): Fix typo that prevented compilation (gdk_pixbuf_loader_destroy): ditto 1999-10-27 Federico Mena Quintero * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_new): Return a GdkPixbufLoader, not a GtkObject. (gtk_marshal_NONE__INT_INT_INT_INT): Made static. (gdk_pixbuf_loader_get_type): Documented. (gdk_pixbuf_loader_class_init): Initialize the parent class correctly. (gdk_pixbuf_loader_destroy): Added sanity checks. Call the parent class destroy function. (gdk_pixbuf_loader_new): Documented. (gdk_pixbuf_loader_finalize): Call the parent class finalize function. (gdk_pixbuf_loader_write): Use size_t for count. 1999-10-27 Michael Fulbright * src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_destroy): Fixed logic so we only try to close loader if it wasn't previously closed. 1999-10-27 Michael Fulbright * src/gdk-pixbuf-loader.c: Made sure image_loader struct member of pixbuf_loader properly initialized. * src/testpixbuf.c: Made sure we cleanup pixbuf_loader properly when done. 1999-10-26 Jonathan Blandford * src/gdk-pixbuf-io.c (image_handler_load): load the vtable fully. * src/gdk-pixbuf-loader.c: Finished initial cut at the object. 1999-10-26 Havoc Pennington * src/gdk-pixbuf-loader.h: fix signals * src/gdk-pixbuf-io.h: add new vtable fields 1999-10-26 Jonathan Blandford * src/gdk-pixbuf-loader.h: New Class. Beginning of progrssive loading. 1999-10-25 Federico Mena Quintero * configure.in (CFLAGS): Patch from Uwe Koloska to fix a stupid typo of mine. 1999-10-22 Havoc Pennington * src/io-xpm.c (mem_buffer): Clean up stupid increment-inside-array-dereference thing * src/testpixbuf.c: Add XPM data tests. * src/io-xpm.c: Make the XPM data buffer const, fix const correctness throughout the code. 1999-10-22 Havoc Pennington * src/gdk-pixbuf.h: Export gdk_pixbuf_new_from_xpm_data() 1999-10-22 Havoc Pennington * src/io-xpm.c (image_load_xpm_data): Export this symbol for loading an XPM from memory. * src/gdk-pixbuf-io.c (gdk_pixbuf_new_from_xpm_data): New function, loads pixbuf from xpm data (image_handler_load): Add g_return_if_fail() to ensure the same module isn't loaded twice. Add g_module_symbol() to scan for XPM loader function. 1999-10-22 Federico Mena Quintero * src/io-png.c (image_load): Patch from Kristian Hogsberg Kristensen to avoid allocating extra row buffers; the rows can be read in directly into the main pixel buffer. 1999-10-20 Federico Mena Quintero * src/gdk-pixbuf-io.c (image_handler_load): Free path. 1999-10-20 Federico Mena Quintero * configure.in: Bumped version number to 0.3. * src/Makefile.am (lbgdk_pixbuf_la_LDFLAGS): Added a libtool version number for the library. 1999-10-20 Federico Mena Quintero * 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-18 Havoc Pennington * subautogen.sh: New name for macros/autogen.sh * autogen.sh: use subautogen.sh 1999-10-18 Federico Mena Quintero * src/*: Reindented to use the GNOME Indentation. Renamed GdkPixBuf to GdkPixbuf, for consistency with the function names (and it is also easier to type) :-) 1999-10-18 Havoc Pennington * configure.in: Use AM_PATH_GLIB instead of glib-config directly * src/Makefile.am: Re-enable testpixbuf with GTK_CFLAGS/GTK_LIBS 1999-10-18 Havoc Pennington * Makefile.am (SUBDIRS): Remove "macros" * configure.in: Don't use GNOME_INIT, handle case where we are inside gnome-libs. AM_PATH_GTK for the GIF test * src/Makefile.am: Change flags to work without libgnomeui, comment out testpixbuf for now 1999-10-18 Federico Mena Quintero * configure.in: Use $GTK_LIBS as the extra libs when checking for libgif/libungif, as they need the X libraries. Fixes bug #2472. 1999-10-10 Cody Russell * src/gdk-pixbuf-drawable.c: core function now determines whether the requested geometry is on screen or not, and if some is not then the request is clamped to geometry that is on the screen. Changed 'pixbuf' to 'art_pixbuf' in core function. 1999-10-08 Michael Fulbright * src/gdk-pixbuf-data.c: Added to load rgb data from const data. * src/testpifbuf: Changed test program to display cdrom from rgb data if no filename given to test program. 1999-10-07 Cody Russell * src/gdk-pixbuf-drawable.[ch]: Added. (Actually, Miguel committed them, but I wrote them). * src/gdk-pixbuf-drawable.h: Added a missing ; so things will now compile. * src/Makefile.am: Added gdk-pixbuf-drawable.[ch] to libgdk_pixbuf_la_SOURCES and libgdk_pixbufinclude_HEADERS. * src/gdk-pixbuf-drawable.c: Added #include "gdk-pixbuf-drawable.h" to fix compilation. * src/gdk-pixbuf-drawable.[ch]: Changed functions to return GdkPixBuf* instead of ArtPixBuf*. 1999-09-22 Michael Meeks * src/gdk-pixbuf.c (gdk_pixbuf_new): created. (gdk_pixbuf_scale): use gdk_pixbuf_new + return a new scaled image. * src/gdk-pixbuf.h (struct _GdkPixBuf): Re-organise struct, + add GdkPixBufUnrefFunc + gdk_pixbuf_new. * src/io-jpeg.c (image_load): clean to use gdk_pixbuf_new. * src/io-xpm.c (_pixbuf_create_from_xpm): ditto. * src/io-tiff.c (image_load): ditto + fix leak * src/io-png.c (image_load): ditto + add more exit points; monitor.png crashes this module ( add warning :-) * src/io-bmp.c (image_load): ditto. * src/io-gif.c (image_load): ditto. 1999-09-18 Michael Meeks * src/gdk-pixbuf.c (gdk_pixbuf_scale): Hack rgba support in so it doesn't crash scaling with alpha. 1999-09-17 Federico Mena Quintero * src/io-bmp.c (image_load): Set the initial ref_count to 1. * src/io-gif.c (image_load): Likewise. * src/io-jpeg.c (image_load): Likewise. * src/io-png.c (image_load): Likewise. * src/io-tiff.c (image_load): Likewise. * src/io-xpm.c (_pixbuf_create_from_xpm): Likewise. * src/gdk-pixbuf-io.c (gdk_pixbuf_load_image): Added an assertion for the ref_count to be != 0. * src/gdk-pixbuf.c (gdk_pixbuf_ref): Be more paranoid with sanity checking. (gdk_pixbuf_unref): Fix incorrect sanity check and comparison. 1999-08-09 Federico Mena Quintero * src/io-png.c (image_save): Fixed compiler warnings. Fixed write to unallocated memory (row_ptr), and fixed its type as well. Take into account the ArtPixbuf's rowstride when assigning the row pointers. * src/gdk-pixbuf.c: Fixup includes. * src/gdk-pixbuf-io.c: Likewise. Sat Jul 31 19:19:47 CEST 1999 * src/gdk-pixbuf-io.c: * src/io-png.c: Fixed two obvious C syntax bugs 1999-07-29 Mark Crichton * src/io-png.c (image_save): Added PNG saving function * src/gdk-pixbuf-io.c: Changed image_save function format. Now it's image_save(GdkPixBuf *p, FILE *f, ...) 1999-07-26 Michael Zucchi * src/Makefile.am (*_LIB): Only build the relevant loaders which require extra libraries if we actually have those libraries. 1999-07-23 Richard Hestilow * src/gdk-pixbuf.h: Include glib.h as it uses g* datatypes * gdk_pixbufConf.sh.in: Added for gnome-config * Makefile.am: * configure.in: Modified to generate gdk_pixbufConf.sh 1999-07-20 Mark Crichton * src/gdk-pixbuf.c (gdk_pixbuf_rotate): Fixed rotation. Now a bbox calculation needs to be done. 1999-07-18 Larry Ewing * src/io-xpm.c: * src/io-gif.c: * src/io-png.c: * src/io-jpeg.c: Fix a few memory leaks in the, most of them in error cases but one or two in the common case. There are probably a few small ones left. 1999-07-18 Mark Crichton * configure.in: removed version.h. * src/gdk-pixbuf-io.c (pixbuf_check_tiff): Minor readability improvements. 1999-07-17 Mark Crichton * src/gdk-pixbuf.c: Removed gdk_pixbuf_free, redundant code. (gdk_pixbuf_rotate): Added pixbuf rotation code. (gdk_pixbuf_scale): Changed // comments to /* */ * src/gdk-pixbuf.h (gdk_pixbuf_destroy): Added gdk_pixbuf_destroy function to header. 1999-07-16 Larry Ewing * src/testpixbuf.c (expose_func): reverted the expose everything changes, I'm not sure why these went in. (config_func): bring this up to date with the new pixbuf_scale semantics. * src/gdk-pixbuf-io.c: added a couple of warnings to the module loading code so that poeple can diagnose problems better. * src/gdk-pixbuf.c (gdk_pixbux_scale): fix the borkedness, also it no longer allocates a new pixbuf, which make things nicer for the rest of the code. Unfortunately there is still a problem with scaling rgba images. 1999-07-16 Mark Crichton * src/testpixbuf.c (config_func): ConfigureEvent handler. This calls gdk_pixbuf_scale. However, something is not working. N.B.: current pixmap is now stored in user_data with a key of "pixmap" * src/gdk-pixbuf.c (gdk_pixbuf_scale): Implemented scaling function. Something is still borked, however. 1999-07-15 Larry Ewing * src/io-jpeg.c (image_load): add raph@gimp.org's fix to the jpeg indexing routine * src/testpixbuf.c (main): fix up the file routines a little so that you can load multiple files given the file names 1999-07-14 Larry Ewing * src/testpixbuf.c (expose_func): added an almost proper expose handler for testpixbuf 1999-07-13 Mark Crichton * configure.in: Fixed GIF check. Replaced " with ' * src/gdk-pixbuf.c: More (minor) work on gdk_pixbuf_scale 1999-07-13 Mark Crichton * configure.in: I am a bonehead. Added gif-lib check.