2000-04-11 Federico Mena Quintero <federico@helixcode.com>
Most of this patch is based on a patch by Havoc Pennington
(hp@redhat.com) to make GdkPixbuf's structures opaque and to
remove the libart dependency.
* gdk-pixbuf/gdk-pixbuf.h: Removed the public structures.
(GdkColorspace): New enum that for now only contains
GDK_COLORSPACE_RGB.
(GdkPixbufDestroyNotify): New type for the pixbuf's pixels destroy
notification function.
(GdkInterpType): New num with interpolation types.
* *.[ch]: Replace the libart stuff with our own stuff.
* pixops/*.[ch]: Likewise.
* gdk-pixbuf/gdk-pixbuf-private.h: New file with the private
declarations of the GdkPixbuf structures.
* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_new_from_art_pixbuf):
Removed function.
(gdk_pixbuf_get_format): Constify.
(gdk_pixbuf_get_n_channels): Constify.
(gdk_pixbuf_get_has_alpha): Constify.
(gdk_pixbuf_get_bits_per_sample): Constify.
(gdk_pixbuf_get_pixels): Constify.
(gdk_pixbuf_get_width): Constify.
(gdk_pixbuf_get_height): Constify.
(gdk_pixbuf_get_rowstride): Constify.
* gdk-pixbuf/gdk-pixbuf.c (gdk_pixbuf_copy): New function to copy
a pixbuf.
* gdk-pixbuf/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Added a
bits_per_sample argument; currently only 8 bits per sample are
supported.
* gdk-pixbuf/gdk-pixbuf-animation.c (gdk_pixbuf_frame_get_pixbuf):
New accessor.
(gdk_pixbuf_frame_get_x_offset): New accessor.
(gdk_pixbuf_frame_get_y_offset): New accessor.
(gdk_pixbuf_frame_get_delay_time): New accessor.
(gdk_pixbuf_frame_get_action): New accessor.
* gdk-pixbuf/gdk-pixbuf-render.c
(gdk_pixbuf_render_pixmap_and_mask): Instead of returning a solid
mask rectangle for pixbufs without an alpha channel, set the
*mask_return to NULL.
* gdk-pixbuf/gdk-pixbuf-util.c (gdk_pixbuf_add_alpha): Constify.
* gdk-pixbuf/gdk-pixbuf-scale.c: Fix includes.
* gdk-pixbuf/gdk-pixbuf-scale.c (gdk_pixbuf_scale): Added some
preconditions. Maybe we should also check for the colorspace,
bits per pixel, and such.
(gdk_pixbuf_composite): Likewise.
(gdk_pixbuf_composite_color): Likewise.
(gdk_pixbuf_scale_simple): Likewise, and fail gracefully if we
cannot allocate the new pixbuf.
(gdk_pixbuf_composite_color_simple): Likewise.
* gdk-pixbuf/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_render):
Use art_rgb_rgba_affine() or art_rgb_affine() since we no longer
have an ArtPixBuf.
* gdk-pixbuf/io-bmp.c: Fix includes.
* gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Fixed cast in
an lvalue.
* TODO: Populated.
* configure.in: Removed checks for libart.
* gdk-pixbuf/Makefile.am: Removed references to libart.
(noinst_HEADERS): Added gdk-pixbuf-private.h.
* gdk-pixbuf/Makefile.am (libgdk_pixbuf_la_LDFLAGS): Incremented
the version number of the libtool library to indicate that this
definitely is not compatible with the old usage. I know you love
me. I know you do.
* configure.in: Bumped version number to 0.7.0.
* README: Updated.
* gdk-pixbuf-config.in (--libs): We no longer require libart.
* DEPENDS.libgdk_pixbuf: We no longer depend on libart.
* gdk-pixbuf.spec.in: Updated, but I don't guarantee anything.
2000-03-29 Radek Doulik <rodo@helixcode.com>
* 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 <rodo@helixcode.com>
* 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 <rodo@helixcode.com>
* gdk-pixbuf/io-gif.c (gif_get_lzw): use frame_len and frame_width
instead of width and height
2000-04-01 Federico Mena Quintero <federico@helixcode.com>
* gdk-pixbuf/gdk-pixbuf.c: Reverted Mark's change. The refcount
is private information, and the art_pixbuf will go away soon.
Added 2 more convience functions.
gdk_pixbuf_get_refcount for the current refcount of the pixbuf (per someone
at Eazel's request)
gdk_pixbuf_get_artpixbuf: returns the artpixbuf of the pixbuf. Is this
a good idea? I'm using it to help make->panel->do->the->right->thing.
2000-03-27 Owen Taylor <otaylor@redhat.com>
* 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 <jrb@redhat.com>
* gdk-pixbuf/io-gif.c (gdk_pixbuf__gif_image_load): free the context.
(gdk_pixbuf__gif_image_load_animation): free the context.
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.
a=federico
Merged in changes.
If this doesn't work, I blame the NWO conspiracy.
I need to go put my tin foil hat back on now, and keep a lookout for the
black helicopters.
2000-02-26 Federico Mena Quintero <federico@helixcode.com>
* README: We don't require libgif/ungif nor libXpm.
* NEWS: This was outdated, so updated it.
2000-02-25 Federico Mena Quintero <federico@helixcode.com>
* gdk-pixbuf.m4: Use the correct name for
gdk-pixbuf/gdk-pixbuf.h. Thanks to Jacob Berkman for pointing
this out.
Iain sent me a xpm that didn't load. It used "g" instead of "c" in it's
color table.
I thought that was borked until I saw Imlib, xv, and Gimp load it up w/o
problem...
So, fixed that (less than one line fix). HOWEVER, if this is correct,
then the gdk XPM loader in gtk+ also has the same problem.
Owen, got an opinion on this?
Mark
2000-02-03 Federico Mena Quintero <federico@helixcode.com>
* 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 <federico@helixcode.com>
* gdk-pixbuf/io-gif.c (gif_get_lzw): Removed debugging g_print.
Thanks to John Sullivan <sullivan@eazel.com> 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 <davidw@linuxcare.com> for pointing this out.
Misc. cleanups to the rest of the file.
2000-02-01 Federico Mena Quintero <federico@helixcode.com>
* 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 <kruuse@home.se> for
pointing this out.
Mon Jan 31 12:38:50 2000 Owen Taylor <otaylor@redhat.com>
* gdk-pixbuf/pixops/pixops.c (scale_line): Fix from Peter
Wainwright to fix 4a => 4a scaling.
I dated telsa to break gdk-pixbuf.
I didn't think she can do it.
She somehow did, with Alan's help
Fixed it (it was a build bug)
Now, it should be 1000% telsa-proofed.
Mark
2000-01-22 Federico Mena Quintero <federico@helixcode.com>
* 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 <rossigee@bigfoot.com> 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 <federico@helixcode.com>
* 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 <federico@helixcode.com>
* 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 Federico Mena Quintero <federico@helixcode.com>
* 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 <jrb@redhat.com>
* gdk-pixbuf/gdk-pixbuf-render.c (gdk_pixbuf_render_pixmap): new
function to let you create a gdk_pixmap from a gdk_pixbuf.
* No more libart/gdk-pixbuf as part of gnome-libs
* Everything: Install header files & *Conf.sh in new per-interface-version locations.
Include interface version in library names.
2000-01-05 Owen Taylor <otaylor@redhat.com>
* gdk-pixbuf/pixops/pixops.c: Fixed src_channels/dest_channels
confusion. (Again caught by Tomas Ogren's Purify)
2000-01-07 Jonathan Blandford <jrb@redhat.com>
* 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.
I think progressive animation loading all works now. It's all
documented too, if anyone wants to play with it.
2000-01-05 Owen Taylor <otaylor@redhat.com>
* 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)
Fixed bug sent directly to me. Basically, we weren't checking a failure case
from load_module, and returning junk to the application. Bad.
See ChangeLog for more info.
2000-01-05 Jonathan Blandford <jrb@redhat.com>
* gdk-pixbuf/gdk-pixbuf-io.h: Change the order of the update func
to make it more compatible with the rest of GTK. Added animation
framework for progressive loading.
* gdk-pixbuf/io-bmp.c (image_begin_load): Modified to handle new
system.
* gdk-pixbuf/io-ico.c (image_begin_load): ditto
* gdk-pixbuf/io-png.c (image_begin_load): ditto
* gdk-pixbuf/io-ras.c (image_begin_load): ditto
* gdk-pixbuf/io-jpeg.c (image_begin_load): ditto
* gdk-pixbuf/io-pnm.c (image_begin_load): ditto
* gdk-pixbuf/io-tiff.c (image_begin_load): ditto
* gdk-pixbuf/io-gif.c (image_begin_load): ditto
2000-01-05 Owen Taylor <otaylor@redhat.com>
* 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.