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-03 Michael Fulbright <drmike@redhat.com>
* 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
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/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!
999-10-29 Michael Fulbright <drmike@redhat.com>
* 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 <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 Havoc Pennington <hp@pobox.com>
* 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*
* src/io-png.c: Progressive loading stuff compiles, untested.
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-27 Havoc Pennington <hp@pobox.com>
* src/gdk-pixbuf.c (gdk_pixbuf_new): New function to create a
blank pixbuf.
* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_write): Check all
three progressive load funcs are non-NULL, rather than checking
begin_load three times. Also, check whether begin_load returns
NULL on failure.
1999-10-27 Michael Fulbright <msf@redhat.com>
* 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-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.