Wed Jun 21 16:38:13 2000 Owen Taylor <otaylor@redhat.com>
* gdk-pixbuf/* docs/reference/gdk-pixbuf/*: Welcome aboard,
gdk-pixbuf.
* gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init):
fixups for GObject.
* gdk/Makefile.am gdk/gdkpixbuf-render.[ch] gdk/gdkpixbuf.[ch]: Bits of
gdk-pixbuf with GDK dependencies moved into GDK.
* gtk/Makefile.am gtk/gdk-pixbuf-loader.[ch]: Temporarily
move gdk-pixbuf-loader here until GObject has signals.
* demos/: New directory of demos. Move demos from
gdk-pixbuf here.
* demos/pixbuf-init.c: Small bit of code to check for
loaders in ../gdk-pixbuf/.libs/gdk-pixbuf, and if found,
set GDK_PIXBUF_MODULEDIR appropriately.
* gdk/gdkcompat.h: Remove GDK_DRAWABLE_PIXMAP compat
define which no longer makes sense.
2000-06-10 Federico Mena Quintero <federico@helixcode.com>
* 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 <lewing@helixcode.com>
* 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 <lewing@helixcode.com>
* 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_frame_done): cycle over the frames to calculate
bbox since only now do we have all the offset information for each
frame.
2000-05-30 Not Zed <NotZed@HelixCode.com>
* gdk-pixbuf/io-jpeg.c (gdk_pixbuf__jpeg_image_begin_load):
Initialise the error handler exit routine to our own. Note this
means that every function that accesses the jpeg lib on this
object MUST do a setjmp.
(gdk_pixbuf__jpeg_image_stop_load): setjmp before accessing jpeg
lib for handling fatal error.
(gdk_pixbuf__jpeg_image_load_increment): And here too. So now
your applications dont quit if there's a jpeg error!
2000-05-30 Federico Mena Quintero <federico@helixcode.com>
* gdk-pixbuf.spec.in: Include all the loader libraries. Patch
from Frank de Lange <frank@unternet.org>.
Fri May 5 12:16:32 2000 Owen Taylor <otaylor@redhat.com>
* 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.
CvS: Added Files:
* 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.
* 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 James Henstridge <james@daa.com.au>
* 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-14 Tomasz Kopczko <kloczek@pld.org.pl>
* gdk-pixbuf/pixops/makefile.am: $(LIBART_CFLAGS) replaced by
$(GTK_CFLAGS) - now gdk-pixbuf compiles correctly.
2000-04-13 James Henstridge <james@daa.com.au>
* 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.
Your eyes are bloodshot.
Your mouth starts to foam.
Your hands are shaking.
You know your need your fix.
NEED MORE ABSTRACTION!
2000-04-12 Federico Mena Quintero <federico@helixcode.com>
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-<format>.so" instead of
"libpixbuf-<format>.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-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