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 K³opczko <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
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.
2000-01-05 Owen Taylor <otaylor@redhat.com>
* 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-01 Federico Mena Quintero <federico@helixcode.com>
* 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-23 Havoc Pennington <hp@pobox.com>
* 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 <jrb@redhat.com>
* 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 <jrb@redhat.com>
* 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-16 Federico Mena Quintero <federico@redhat.com>
* doc/tmpl/rendering.sgml: Added notice about initializing GdkRGB
before using the GdkPixbuf rendering functions. Thanks to Joe
Shaw <joe@off.net> for pointing this out.
1999-12-13 Federico Mena Quintero <federico@redhat.com>
* 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 <federico@redhat.com>
* 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 <jrb@redhat.com>
* 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.
1999-12-10 Jonathan Blandford <jrb@redhat.com>
* 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.
ones can't be.
1999-12-09 Michael Zucchi <zucchi@zedzone.mmc.com.au>
* gdk-pixbuf/gdk-pixbuf-drawable.c
(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.
1999-12-09 Michael Zucchi <zucchi@zedzone.mmc.com.au>
* 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.
* 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
<arjan@fenrus.demon.nl>
* 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 <federico@redhat.com>
* 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 <federico@redhat.com>
* doc/tmpl/gnome-canvas-pixbuf.sgml: Added clarification about
reference counting for GdkPixbuf structures.
1999-12-05 Arjan van de Ven
<arjan@fenrus.demon.nl>
Added missing "include <string.h>" to:
* gdk-pixbuf/io-ras.c
* gdk-pixbuf/io-bmp.c
* gdk-pixbuf/io-ico.c
1999-12-05 Federico Mena Quintero <federico@redhat.com>
* 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-04 Arjan van de Ven <arjan@fenrus.demon.nl>
* 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-02 Federico Mena Quintero <federico@redhat.com>
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 <federico@redhat.com>
* src/testpixbuf.c: #include <config.h>, and fix includes.
* src/testpixbuf-drawable.c: #include <config.h>, and fix includes.
* src/io-xpm.c: Fix includes.
* src/io-tiff.c: Fix includes.
* src/io-ras.c: Fix includes, and do not include more stuff than needed.
* src/io-pnm.c: Fix inlcudes, and do not include more stuff than needed.
* src/io-png.c: Fix includes.
* src/io-ico.c: Fix includes, and do not include more stuff than needed.
* src/io-gif.c: Fix includes, and do not include more stuff than needed.
* src/io-bmp.c: Fix includes, and do not include more stuff than needed.
* src/gnome-canvas-pixbuf.c: Fix includes.
* src/gdk-pixbuf.c: Fix includes.
* src/gdk-pixbuf-util.c: Fix includes.
* src/gdk-pixbuf-render.c: Fix includes.
* src/gdk-pixbuf-io.h: Fix includes.
* src/gdk-pixbuf-drawable.c: Fix includes.
* src/gdk-pixbuf-drawable.h: Use angle brackets for the gdk-pixbuf
include files.
* src/gdk-pixbuf-data.c: Fix includes.
* src/gdk-pixbuf-loader.c: #include <config.h>
* src/gdk-pixbuf-loader.h: Use angle brackets for the gdk-pixbuf
include files.
* src/Makefile.am: Commented out the gdk-pixbuf-drawable stuff,
since it is not finished.
1999-11-29 Owen Taylor <otaylor@redhat.com>
* 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-29 Federico Mena Quintero <federico@redhat.com>
* src/Makefile.am: Uncomment the GnomeCanvasPixbuf sources. This
should be made conditional, not blindly commented out.
1999-11-24 James Henstridge <james@daa.com.au>
* Makefile.am (SUBDIRS): libart must be built before gdk-pixbuf.
[ in gdk-pixbuf ]
1999-11-24 James Henstridge <james@daa.com.au>
* 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-22 Federico Mena Quintero <federico@redhat.com>
* 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 Havoc Pennington <hp@pobox.com>
* src/Makefile.am (GDK_PIXBUF_LIBS): Patch from Paul Fisher
<pnfisher@redhat.com> 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 <hp@pobox.com>
* 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-22 Jonathan Blandford <jrb@redhat.com>
* configure.in (GDK_PIXBUF_DIR): make the symlink. Does not work
for srcdir != buildir != . Beats me why; I can't figure it out.
AC_OUTPUT_COMMANDS doesn't seem to let me substitute it correctly.
1999-11-20 Michael Zucchi <zucchi@zedzone.mmc.com.au>
* 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 <lewing@gimp.org>
* 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.
Mon Nov 15 17:18:28 1999 George Lebl <jirka@5z.com>
* 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-10 Federico Mena Quintero <federico@redhat.com>
* 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-09 Michael Fulbright <drmike@redhat.com>
* src/io-jpeg.c: Slight cosmetic cleanup.
* src/io-pnm.c: Fixed raw PNM loading bug. Also discovered that ASCII
PBM loading has a similar problem and will address tomorrow.
1999-11-09 Michael Fulbright <drmike@redhat.com>
* src/io-jpeg.c (image_load_increment): Figured out problem with
loading Progressive JPEG's progressively (say that 10 times fast).
Currently for Progressive JPEG's the entire image is loaded before
it is displayed. libjpeg supports a fancier mechanism which I may
implement later.
With these changes all JPEG formats appear to load properly for me.
1999-11-08 Michael Fulbright <drmike@redhat.com>
* 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 <drmike@redhat.com>
* 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 <federico@redhat.com>
* doc/tmpl/gnome-canvas-pixbuf.sgml: Finished detailed explanation
of the width, height, x, and y setting and pixels arguments.
1999-11-05 Federico Mena Quintero <federico@redhat.com>
* 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 <drmike@redhat.com>
* 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.
999-11-04 Michael Fulbright <drmike@redhat.com>
* src/io-jpeg.c: Prettied up code slightly.
* src/io-pnm.c: Start of pnm loader (from file and progressively).
Doesn't do much yet (will finish tomorrow).
* src/gdk-pixbuf-io.c: Added pnm to structure of known types.
1999-11-04 Havoc Pennington <hp@pobox.com>
* 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 <hp@pobox.com>
* 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-03 Jonathan Blandford <jrb@redhat.com>
* src/Makefile.am (libpixbuf_gif_la_LIBADD): Remove dependency on
lib*gif!!!!
Also, some code cleanups to io-gif
1999-11-03 Michael Fulbright <msf@redhat.com>
* src/io-jpeg.c (image_load_increment): Further removal of
bugginess in local buffering code. Handles grayscale jpegs
correctly now.
* src/io-jpeg.c (image_load_stop): Was freeing local context
for jpeg library before calling jpeg_decompres_finish ().
1999-11-03 Federico Mena Quintero <federico@redhat.com>
* 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 Larry Ewing <lewing@gimp.org>
* 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 <federico@redhat.com>
* src/gnome-canvas-pixbuf.c (gnome_canvas_pixbuf_point): I'm a
doofus. Return a distance, not a boolean, for opaque images.
1999-11-03 Federico Mena Quintero <federico@redhat.com>
* 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-02 Jonathan Blandford <jrb@redhat.com>
* src/io-gif.c (gif_fill_in_lines): Fill in the gif's blank areas
for interlacing and progressive loading.
1999-11-02 Federico Mena Quintero <federico@redhat.com>
* 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.
* 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 <federico@redhat.com>
* 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 <jrb@redhat.com>
(ReadImage): lets get the offset right. This will let transparent
gifs work.
Right now, gifs with transparency, both interlaced and non-interlaced,
seem to work perfectly fine. I haven't tried grayscale gifs yet, and I
seem to be getting offset in my RGB buffer with non-alpha gifs. )-:
This leads to pretty, but incorrect, images.
-Jonathan
1999-10-30 <jrb@redhat.com>
* 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.
1999-10-29 Michael Fulbright <drmike@redhat.com>
* 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 Federico Mena Quintero <federico@redhat.com>
* 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 <jrb@redhat.com>
* src/io-tiff.c (image_load_increment): started work on the tiff
non-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 <federico@redhat.com>
* 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 <hp@pobox.com>
* 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 Federico Mena Quintero <federico@redhat.com>
* 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-25 Federico Mena Quintero <federico@redhat.com>
* configure.in (CFLAGS): Patch from Uwe Koloska
<koloska@Rcs1.urz.tu-dresden.de> to fix a stupid typo of mine.
1999-10-22 Havoc Pennington <hp@pobox.com>
* 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 <hp@pobox.com>
* 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 <federico@redhat.com>
* src/io-png.c (image_load): Patch from Kristian Hogsberg
Kristensen <hogsberg@daimi.au.dk> to avoid allocating extra row
buffers; the rows can be read in directly into the main pixel
buffer.
1999-10-20 Federico Mena Quintero <federico@redhat.com>
* 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 <federico@redhat.com>
* src/gdk-pixbuf.h (GdkPixbuf): Removed the unref_fn field. Now
all memory management of the buffer is done by libart.
* src/gdk-pixbuf.c (gdk_pixbuf_unref): Do destruction here.
Removed gdk_pixbuf_destroy, gdk_pixbuf_duplicate.
* src/gdk-pixbuf-data.c (gdk_pixbuf_new_from_data): Implemented in
terms of the libart functions. Removed the old code.
* src/gdk-pixbuf-io.c (image_handler_load): Removed the save
symbols. Saving will not be implemented in GdkPixbuf.
* src/io-gif.c: Removed the saving stub.
(image_load): Fixed memory management to fail gracefully if we run
out of memory while loading the image. Close the gif file when we
are done. This still needs more error handling for the DGif
functions.
* src/io-jpeg.c (image_load): Some robustness fixes.
* src/io-png.c: Removed the saving stuff.
(image_load): Some memory management fixes.
* src/io-tiff.c (image_load): Ditto.
* src/io-xpm.c (pixbuf_create_from_xpm): Ditto.
1999-10-18 Havoc Pennington <hp@pobox.com>
* 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 <federico@redhat.com>
* configure.in: Use $GTK_LIBS as the extra libs when checking for
libgif/libungif, as they need the X libraries. Fixes bug #2472.
Core function now determines whether the requested geometry is on screen
or not. If part of it is not then the request is clamped to geometry that
is on the screen.
1999-09-17 Federico Mena Quintero <federico@redhat.com>
* 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 <federico@nuclecu.unam.mx>
* 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.
1999-07-26 Michael Zucchi <mzucchi@denr.sa.gov.au>
* src/Makefile.am (*_LIB): Only build the relevant loaders which
require extra libraries if we actually have those libraries.
1999-07-23 Richard Hestilow <hestgray@ionet.net>
* 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-18 Larry Ewing <lewing@gimp.org>
* 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.
Ok minor changes.
No longer make a version.h, and cleaned up some code here and there, and added
a quickie dirty-hack rotation function. However, it rotates at the origin.
Is this what we want? Or do we want a rotate w.r.t. the center of the pixbuf?
Anyone.
Mark
1999-07-16 Larry Ewing <lewing@gimp.org>
* 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-15 Larry Ewing <lewing@gimp.org>
* 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