Commit Graph

64 Commits

Author SHA1 Message Date
Alexander Larsson
54f5e4af53 gdk_pixbuf_get_from_surface: Avoid copying if source is image surface
If the source surface is an image surface we don't need to coerce
it to one.
2013-08-07 13:34:10 +02:00
Javier Jardón
9d0febc9a6 Change FSF Address 2012-02-27 17:06:11 +00:00
Matthias Clasen
8291530abf More GDK documentation tweaks 2011-02-09 02:44:19 -05:00
Benjamin Otte
072498ae87 gdk: Make _gdk_window_ref_cairo_surface() protected and use it
... instead of _gdk_drawable_ref_cairo_surface() where appropriate.
Also, don't implement the drawable->create_cairo_surface vfunc anymore.

This is in preparation for the split of GdkWindow from GdkDrawable.
2010-12-02 20:21:02 +01:00
Kristian Rietveld
6e4643de14 Make gdk_pixbuf_get_from_surface() accept negative src_x,y coordinates 2010-10-19 14:07:39 +02:00
Matthias Clasen
bda1f35585 Inclusion cleanups in sources
Try to do inclusions in the same sequence, more or less.
2010-10-14 22:09:36 -04:00
Javier Jardón
9e869af6c5 docs: Move documentation to inline comments: pixbufs 2010-10-04 03:36:12 +02:00
Matthias Clasen
6f3c3c3413 Fix a reference in the gdk_pixbuf_get_from_surface docs 2010-10-01 21:43:23 -04:00
Benjamin Otte
872ef111ec gdk: Make gdk_pixbuf_get_from_*() bindable
The ownership of the return value for gdk_pixbuf_get_from_window() and
gdk_pixbuf_get_from_surface() was determined by the first argument.

Because that is an ugly design and the functions are new to GTK3, we
decided to adapt them.
And that adaptation was quite easy since almost no one passses anything
but NULL as the first argument.
2010-10-02 03:08:24 +02:00
Matthias Clasen
28aa906681 GDK docs: Improve gdk_pixbuf_get_from_window docs 2010-10-01 09:38:36 -04:00
Benjamin Otte
e316157671 API: gdk_pixbuf_get_from_drawable() => gdk_pixbuf_get_from_window()
The Colormap argument needed to be removed, so the renaming is just a
side effect.
2010-09-26 15:11:32 +02:00
Benjamin Otte
f74f9b2766 gdk: Remove GdkPixmap
All iusers of it are gone, so it's now time to let go.
cairo_surface_t is a full replacement, combined with
gdk_window_create_similar_surface().
2010-09-26 15:11:30 +02:00
Benjamin Otte
a1a1b135ac API: remove gdk_pixbuf_get_from_image() 2010-08-10 21:02:26 +02:00
Benjamin Otte
84015d4d3f Implement gdk_pixbuf_get_from_drawable() with Cairo
Use gdk_pixbuf_get_from_surface() instead of
gdk_pixbuf_get_from_image().
2010-08-10 21:02:26 +02:00
Benjamin Otte
39b47eaf25 API: Add gdk_pixbuf_get_from_surface()
New API to copy any cairo surface into a pixbuf.
2010-08-10 21:02:26 +02:00
Javier Jardón
404e7d0e00 gdk/: fully remove gdkalias hacks
https://bugzilla.gnome.org/show_bug.cgi?id=623845
2010-07-10 02:21:31 +02:00
Matthias Clasen
16ecf55832 Make GTK+ use an external gdk-pixbuf 2010-06-26 01:09:05 -04:00
Johan Dahlin
fe85272112 [annotations] Add allow-none
This commit was created using a script that searched for all docstrings
containing a parameter and the string 'or %NULL'.
Gdk backends and demos excluded as they are not part of a public API

https://bugzilla.gnome.org/show_bug.cgi?id=610474
2010-02-19 17:57:51 -02:00
Johan Dahlin
d97cdbdf53 Include "config.h" instead of <config.h> Command used: find -name
2008-06-21  Johan Dahlin  <jdahlin@async.com.br>

    * *.[ch]: Include "config.h" instead of <config.h>
    Command used:
    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
    Rubberstamped by Mitch and Tim


svn path=/trunk/; revision=20669
2008-06-22 14:28:52 +00:00
Matthias Clasen
797c2e6a45 New function to avoid pointless strdups when creating atoms from static
2005-09-11  Matthias Clasen  <mclasen@redhat.com>

	* gdk/gdk.symbols:
	* gdk/gdkproperty.h:
	* gdk/x11/gdkproperty-x11.c (gdk_atom_intern_static_string):
	New function to avoid pointless strdups when creating atoms
	from static strings.

	* gdk/x11/gdkdisplay-x11.c:
	* gdk/x11/gdkdnd-x11.c:
	* gdk/x11/gdkevents-x11.c:
	* gdk/x11/gdkmain-x11.c:
	* gdk/x11/gdkproperty-x11.c:
	* gdk/x11/gdkselection-x11.c:
	* gdk/x11/gdkwindow-x11.c: Use gdk_atom_intern_static_string()
	where appropriate.
2005-09-11 05:39:45 +00:00
Matthias Clasen
2a2d769d42 Make PLT-reduction work with gcc4, and don't include everything in
2005-03-15  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in gdkalias.h:

	* gdk/gdk.symbols: Group symbols by header and source file.
	* gdk/makegdkalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegdkalias.pl -def
	* gdk/Makefile.am (gdkaliasdef.c): Add a rule to generate this
	file.
	* gdk/*.c, gdk/x11/*.c: Include gdkalias.h after the other
	headers, include gdkaliasdef.c at the bottom.
2005-03-16 03:17:27 +00:00
Matthias Clasen
6da29b43a6 gdk/gdkkeyuni.c gdk/gdkpixbuf-drawable.c gdk/gdkrgb.c gdk/x11/gdkdnd-x11.c
2005-03-01  Matthias Clasen  <mclasen@redhat.com>

	* gdk/gdkkeyuni.c
	* gdk/gdkpixbuf-drawable.c
	* gdk/gdkrgb.c
	* gdk/x11/gdkdnd-x11.c
	* gdk/x11/gdkevents-x11.c
	* gdk/x11/gdkproperty-x11.c
	* gdk/x11/gdkvisual-x11.c
	* gdk-pixbuf/gdk-pixbuf.c
	* gtk/gtkaction.c
	* gtk/gtkbindings.c
	* gtk/gtkcolorbutton.c
	* gtk/gtkcombo.c
	* gtk/gtkcontainer.c
	* gtk/gtkfilechooserdefault.c
	* gtk/gtkfilesel.c
	* gtk/gtkgamma.c
	* gtk/gtkiconview.c
	* gtk/gtkinputdialog.c
	* gtk/gtkitemfactory.c
	* gtk/gtkmenu.c
	* gtk/gtktextview.c
	* gtk/gtktooltips.c
	* gtk/gtktreedatalist.c
	* gtk/gtkuimanager.c
	* gtk/tree_minus.xpm
	* gtk/tree_plus.xpm
	* gtk/xdgmime/xdgmime.c
	* gtk/xdgmime/xdgmime.h:
	Move constant data to .rodata.
2005-03-01 06:25:55 +00:00
Matthias Clasen
0742ff3ae3 Add hidden aliases for exported symbols which are used internally in order
Mon Aug  9 15:41:17 2004  Matthias Clasen  <maclas@gmx.de>

	Add hidden aliases for exported symbols which are
	used internally in order to get rid of many PLT
	entries.  (#145519, Arjan van de Ven)

	* gdk/Makefile.am: Add rules to generate gdk.def and
	gdkalias.h from gdk.symbols, and make make check check
	the abi with abicheck.sh.

	* gdk/gdk.symbols: New file. Definition of the GDK ABI.
	The file can be processed by cpp to filter out certain
	subsets of symbols.

	* gdk/abicheck.sh: New file. Script to check the actually
	symbols exported from libgdk-x11.2.0.so against the symbols
	found in gdk.symbols.

	* gdk/makegdkalias.pl: New file. Perl script to generate the
	header containing the alias definitions for internally used
	exported symbols from a list of symbols.

	* gdk/*.c, gdk/x11/*.c: Include gdkalias.h
2004-08-09 20:14:43 +00:00
Matthias Clasen
d3b444a4c5 Fix for #119555, Peter Zelesny:
Tue Nov 18 00:12:55 2003  Matthias Clasen  <maclas@gmx.de>

	Fix for #119555, Peter Zelesny:

	* gdk/gdkdrawable.h: Declare gdk_drawable_copy_to_image.
	* gdk/gdkdraw.c (gdk_drawable_copy_to_image): Make public
	by removing the _ prefix.
	* gdk/gdkdraw.c, gdk/gdkpixbuf-drawable.c, gdk/gdkpixmap.c,
	gdk/gdkwindow.c: Adjust all callers.
2003-11-17 23:16:49 +00:00
Soeren Sandmann
d94c09a118 swap G and B. Fixes (#114669)
Sun Jun  8 18:27:14 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gdk/gdkpixbuf-drawable.c (G8fromRGB565): swap G and B.
	Fixes (#114669)
2003-06-08 16:15:16 +00:00
Owen Taylor
84ebfb7efa #71597, reported by Morten Welinder
Tue Jun  3 17:39:16 2003  Owen Taylor  <otaylor@redhat.com>

        #71597, reported by Morten Welinder

        * gdk/gdkpixbuf-drawable.c (rgb888amsb): Fix and simplify
        (Patch from Christian Petig)

        * gdk/gdkpixbuf-drawable.c (rgb{555,565}{a,}{msb,lsb}):
        Major rewrite of 555 and 565 conversion routines:

        - Move all the bit shifting into a small block of macros,
          eliminating much duplication of complicated arithmetic.
        - Get rid of 2-pixels at a time code, which was buggy,
          hard to maintain, caused unaligned accesses, and
          probably didn't actually perform any better.
        - Simplify cases where different data types were
          used for the little and big endian cases, use
          GUINT16_SWAP_LE_BE() where appropriate.
2003-06-03 22:09:11 +00:00
Sven Neumann
3f01e7e533 fixed my latest change.
2002-09-14  Sven Neumann  <sven@gimp.org>

	* gdk/gdkpixbuf-drawable.c: fixed my latest change.
2002-09-14 17:10:49 +00:00
Sven Neumann
9ceb330eb3 use the most significant bits of the GdkColor components (#89703).
2002-09-13  Sven Neumann  <sven@gimp.org>

	* gdk/gdkpixbuf-drawable.c: use the most significant bits of the
	GdkColor components (#89703).
2002-09-13 16:11:50 +00:00
Shivram U
c8e242f14b Check if depth of the source is not equal to the depth of the colormap
Fri Jul 26 16:34:34 2002  Shivram U  <shivaram.upadhyayula@wipro.com>

	* gdk/gdkpixbuf-drawable.c (gdk_pixbuf_get_from_drawable),
	(gdk_pixbuf_get_from_image), (rgbconvert), (convert_real_slow):
	Check if depth of the source is not equal to the depth of the colormap
	passed. (#75597)
2002-07-26 11:14:13 +00:00
Federico Mena Quintero
8e5a691115 Fixed the LSB -> MSB case. Fixes #79463.
2002-07-16  Federico Mena Quintero  <federico@ximian.com>

	* gdk/gdkpixbuf-drawable.c (rgb565lsb): Fixed the LSB -> MSB case.
	Fixes #79463.
2002-07-16 17:18:09 +00:00
Federico Mena Quintero
dc8e66d35d Fix the MSB -> MSB case. Fixes #79190.
2002-06-03  Federico Mena Quintero  <federico@ximian.com>

	* gdk/gdkpixbuf-drawable.c (rgb565msb): Fix the MSB -> MSB case.
	Fixes #79190.
2002-06-03 17:41:18 +00:00
Owen Taylor
425b9886c9 Start of integration of Erwann Chenede's multihead work from the
Thu Apr 25 16:51:40 2002  Owen Taylor  <otaylor@redhat.com>

        Start of integration of Erwann Chenede's multihead work
        from the gtk-multihead branch.

        * gdk/gdkdisplay.[ch] gdk/gdkscreen.[ch]
        gdk/x11/gdkdisplay-x11.[ch] gdk/x11/gdkscreen-x11.[ch]
        New classes representing a set of screens with attached
        input devices and a single contiguous area, respectively.

        * gdk/gdk.[ch] gdk/gdkinternals.h gdk/x11/gdkmain-x11.c:
        gdk/x11/gdkprivate-x11.h: Make the initialization interface
        simple _gdk_windowing_init() and do the rest in
        gdk_open_display() calls.

        * gdk/gdk.[ch]: Add gdk_parse_args() which can be used
        to do the display-independent part of initialization
        instead of gdk_init_[check].

        * gdk/gdkcursor.h gdk/gdkfont.h gdk/gdkkeys.h gdk/gdkpixmap.h
        gdk/gdkproperty.h gdk/gdkselection.h gdk/gdkwindow.h:
        Add multihead variants (_for_display(), for_screen()) of functions
        getting information specific to a particular screen screen or
        display.

        * gdk/gdkscreen.[ch]: Add gdk_screen__* variants of functions
        like gdk_rgb_get_colormap() that used to get/list global
        objects.

        * gdk/x11/gdkx.h: Add functions for converting GdkScreen
        and GdkDisplay into the X equivalents.

        * gdk/x11/gdkwindow-x11.c: Removed gdk_window_xid_at_coords()
        not in the headers and unused.

        * configure.in gdk/x11/{gxid.c,gxid_lib.[ch],gdkinput-gxi.c}:
        Remove gxid support ... has not been tested for a long time...
        "xfree" support is more portable to non XFree86.

        * gdk/**.h: Add a GDK_MULTIHEAD_SAFE define that can be
        used to turn off functions that are inherently non-multihead
        safe.

        * gdk/**.c: add GDK_NOTE(multihead, ...) calls when functions
        are used in non-multihead-safe ways.

        * gdk/*.c gdk/x11/*.c: Changes to make the internals of GDK
        multihead safe.
2002-04-25 22:29:14 +00:00
Havoc Pennington
4bd76958c2 create the target pixbuf AFTER filling in width/height, so that passing in
2002-04-13  Havoc Pennington  <hp@pobox.com>

	* gdk/gdkpixbuf-drawable.c (gdk_pixbuf_get_from_drawable): create
	the target pixbuf AFTER filling in width/height, so that
	passing in -1 for width/height will work.
2002-04-13 21:14:57 +00:00
Owen Taylor
a504db9e83 Fixes for AIX compilation from Miroslaw Dobrzanski-Neumann, #72182.
Fri Feb 22 18:36:45 2002  Owen Taylor  <otaylor@redhat.com>

	Fixes for AIX compilation from Miroslaw Dobrzanski-Neumann,
	#72182.

	* demos/gtk-demo/main.c gtk/gtktreeview.c gtk/gtktoolbar.c
	gtk/gtkpaned.c gtk/gtkobject.c gtk/gtkcontainer.c
	gtk/gtkcolorsel.c gtk/gtkcellrender.c gdk/x11/xsettings-client.h:
	Squash trailing commas on enumerations.

	* gdk/gdktypes.h: Drop GDK_RELEASE_MASK to 1 << 30 instead
	of 1 << 31 to work around AIX compiler problem. (C standard
	seems to imply that compiler is required to use an unsigned
	type for the enum value in this case.)

	* gdk/gdkpixbuf-drawable.c: Fix lvalue casts.

	* gtk/gtkwindow.h: Fix use of enum types for bitfields ...
	compilers may choose to use a signed type for bitfields.
2002-02-23 00:13:17 +00:00
Federico Mena Quintero
165e970296 Merge from gdk-pixbuf stable.
2002-01-25  Federico Mena Quintero  <federico@ximian.com>

	Merge from gdk-pixbuf stable.

	* gdk/gdkpixbuf-drawable.c (rgb565msb): Fixed the endianness
	conversion --- swap the individual 16 bit values instead of taking
	everying as a 32 bit value.
	(rgb565lsb): Likewise.
	(rgb555lsb): Likewise.
	(rgb555msb): Likewise.
2002-01-25 21:34:18 +00:00
Hans Breuer
ec81d4a8af need to cast image->mem away from void* to avoid 'error C2036: 'void *' :
2002-01-04  Hans Breuer  <hans@breuer.org>

	* gdk/gdkdraw.c gdk/gdkpixbuf-drawable.c :
	need to cast image->mem away from void* to avoid
	'error C2036: 'void *' : unknown size'. Doing pointer
	arithmetics on void pointers is a GCCism afaik.

	* gdk/gdkpixbuf-render.c : #include "gdkinternals.h" for
	_gdk_draw_pixbuf ()

	* gdk/makefile.msc gdk/win32/makefile.msc
        gdk/gtk/makefile.msc.in : use -FI msvc_recommended_pragmas.h

	* gdk/win32/gdkdrawable-win32.c : use _gkd_win32_copy_to_image
	and take care of image->visual possibly NULL.

	* gdk/win32/gdkimage-win32.c : implement _gdk_image_new_for_depth(),
	_gdk_win32_copy_to_image() and _gdk_windowing_bits_for_depth().
	Again take care of image->visual possibly NULL.

	* gdk/win32/gdkprivate-win32.h : declare _gdk_win32_copy_to_image()

	* gdk/win32/gdkevents-win32.c : use gdk_drawable_get_colormap
	instead of private field access

	* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_new) : adapt
	colormap setting to the gdk-X behaviour
2002-01-05 19:07:13 +00:00
Owen Taylor
d12c9702a4 Private function to tell if we have RENDER extension.
Thu Jan  3 22:18:15 2002  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkdrawable-x11.c gdk/x11/gdkprivate-x11.h
	(_gdk_x11_have_render): Private function to tell if we have RENDER
	extension.

	* gdk/x11/gdkgc-x11.c (_gdk_x11_gc_get_fg_picture): Return
	None if we don't have RENDER extension.

	* gdk/x11/gdkpango-x11.c (gdk_pango_context_get): Don't
	use Xft unless we have render extension.

	* gdk/x11/gdkdrawable-x11.c (gdk_x11_drawable_get_picture):
	Handle missing render extension.

	* gdk/gdkdraw.c gdk/gdkdrawable.h gdk/gdkpixmap.c gdk/gdkwindow.c
	gdk/gdkinternals.h: Add a private copy_to_image() virtual function
	to the GdkDrawable vtable that extends get_image() to allow
	copying onto existing images.  Make the default implementation of
	get_image() use this so that backends don't have to implement
	both. Add private wrapper _gdk_drawable_copy_to_image().

	* gdk/x11/gdkimage-x11.c gdk/x11/gdkprivate-x11.c
	gdk/x11/gdkdrawable-x11.c (_gdk_x11_copy_to_image): Implement
	copy_to_image() semantics, speed up by using ShmPixmaps and
	XCopyArea when possible, XFlush() after ungrabbing the server,
	generally redo the logic once again.

	* gdk/gdkinternals.h gdk/x11/gdkimage-x11.c
	_gdk_windowing_bits_per_depth(): Function to convert from depth to
	bits-per-pixel. (We assume only one bpp per depth - X requires
	this.)

	* gdk/gdkinternals.h gdk/gdkrgb.c gdk/gdkimage.c: Move the GdkRGB
	scratch image code into a generic _gdk_image_get_scratch() chunk
	of code that we can use other places we need scratch images.

	* gdk/gdkimage.c gdk/x11/gdkimage.c gdk/gdkinternals.h:
	Add _gdk_image_new_for_depth() as the backend
	to _gdk_image_new() to allowing creating images with
	a depth and no visual.

	* gdk/gdkpixbuf-drawable.c: Fix so that getting
	parts of images not at 0,0 actually works.

	* gdk/gdkdrawable.h gdk/gdkinternals.h gdk/gdkdraw.c
	gdk/gdkwindow.c gdk/gdkpixmap.c gdk/gdkpixbuf-render.c:
	 - Add a new GdkDrawableClass vfunc _draw_pixbuf, and
	  _gdk_draw_pixbuf() [ will be made public later ], to allow
	  backends to accelerate drawing pixbufs.
	 - Move the implementation of gdk_pixbuf_render_to_drawable_alpha()
	   to be the default implementation.
	 - Update docs for gdk_pixbuf_render_to_drawable_alpha().
	 - Optimize the default implementation by using
	   _gdk_image_copy_to_pixmap() and scratch shared images, and
	   special casing the compositing.

	* gdk/x11/gdkdrawable-x11.c: Accelerate _gdk_draw_pixbuf()
	with alpha using the RENDER extension.

        * gdk/gdkpixbuf-drawable.c (gdk_pixbuf_get_from_drawable):
	Optimize by _gdk_image_copy_to_pixmap() and scratch images.

	* tests/testrgb.c: Add test for speed of alpha composition,
	reduce the number of iterations since alpha composition
	can be a bit slow.

	* gdk/x11/gdkimage-x11.c gdk/gdkprivate-x11.h (_gdk_x11_image_get_shm_pixmap):
	Private function to get a ShmPixmap for an image, if possible.
2002-01-04 05:58:01 +00:00
Havoc Pennington
eae09f4d83 remove gtk_menu_* compat defines; these are already in gtkmenu.h, and the
2001-08-24  Havoc Pennington  <hp@pobox.com>

	* gtk/gtkcompat.h: remove gtk_menu_* compat defines;
	these are already in gtkmenu.h, and the copies
	here were broken.

	Also, change GTK_DISABLE_COMPAT_H to GTK_DISABLE_DEPRECATED

	* gdk/gdkpixbuf-drawable.c (gdk_pixbuf_get_from_image):
	special-case bitmaps to allow no colormap
	(bitmap1): implement no-colormap bitmap-getting
	(bitmap1a): implement no-colormap bitmap-getting to pixbuf with
	alpha
	(rgb8): indentation
	(rgb1a, rgb1): change the way we read the data out of the image,
	old way didn't seem to work quite right.

	I'm pretty sure a lot of the rgbconvert code is still broken.

	* gtk/gtkwindow.c (gtk_window_move_resize): move hints comparison
	above position constraint (I really intended to do this before,
	don't know what's up with that)
	(gtk_XParseGeometry): shut up gcc

	* gdk/gdkpixbuf-drawable.c (rgb1a): fix bug where "x1" was used
	and "0" should have been. remove the attempted 4-bytes-at-once
	optimization, it was totally broken.
2001-08-26 02:03:10 +00:00
Havoc Pennington
0bee26c7ba Clip the retrieved image data to the screen, using a server grab to avoid
2001-06-28  Havoc Pennington  <hp@pobox.com>

	* gdk/x11/gdkimage-x11.c (_gdk_x11_get_image): Clip the retrieved
	image data to the screen, using a server grab to avoid race
	conditions.

	* gtk/gtkitemfactory.c (gtk_item_factory_create_item): remove
	check for NULL return from gtk_image_new_from_stock(), it never
	returns NULL.
	(gtk_item_factory_create_item): fix bug where we parsed the stock
	ID as an inline pixbuf

	* gtk/gtktext.c (gtk_text_key_press): numeric keypad support

	* gtk/gtkspinbutton.c (gtk_spin_button_key_press): numeric keypad
	support (should be using binding set here)

	* gtk/gtkoptionmenu.c (gtk_option_menu_key_press): numeric keypad
	support (should be using binding set here)

	* gtk/gtkmenushell.c (gtk_menu_shell_class_init): numeric keypad
	support

	* gtk/gtkmenu.c (gtk_menu_class_init): numeric keypad support

	* gtk/gtkmenubar.c (gtk_menu_bar_class_init): numeric keypad

	* gtk/gtklistitem.c (gtk_list_item_class_init): numeric keypad

	* gtk/gtkimcontextsimple.c
	(gtk_im_context_simple_filter_keypress): keypad

	* gtk/gtkfilesel.c (gtk_file_selection_key_press): keypad

	* gtk/gtkentry.c (gtk_entry_class_init): numeric keypad fixes

	* gtk/gtkctree.c (gtk_ctree_class_init): numeric keypad support

	* gtk/gtkcolorsel.c (palette_activate): keypad support (of course,
	should be binding-setted)

	* gtk/gtkwindow.c (gtk_window_class_init): numeric keypad fixes

	* gtk/gtkclist.c (gtk_clist_class_init): numeric keypad fixes

	* gtk/gtkcalendar.c: numeric keypad fixes

	* gtk/gtktextview.c (gtk_text_view_class_init): numeric keypad
	support

	* gdk/gdkwindow.c (gdk_window_get_clip_region): fix infinite loop
	screwup

	* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha):
	clip the render area to the drawable's clip region in advance,
	so we don't get data from the server that we don't need.

	* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha):
	check return value of gdk_pixbuf_get_from_drawable(), fall back
	to bilevel alpha if we can't get the pixbuf to composite against.

	* gdk/gdkdraw.c (gdk_drawable_get_image): set the image colormap

	* gdk/gdkimage.c (gdk_image_get_colormap): add
	gdk_image_set_colormap, gdk_image_get_colormap

	* gdk/gdkpixbuf-drawable.c (rgbconvert): Change all converters to
	take a region of the image, instead of converting the entire
	image.

	* gtk/gtkwidget.h (struct _GtkWidgetClass): add show_help
	keybinding signal. Add default bindings for it. Add default
	handler for show_help that shows the tooltip for the widget.

	* gtk/gtkdialog.c (gtk_dialog_class_init): add binding set and
	"close" keybinding signal, remove key press handler.

	* gtk/gtktooltips.c (gtk_tooltips_set_colors): Just remove this,
	it's not our usual practice to leave a deprecated function around
	with a runtime warning, plus we don't want it to appear in docs,
	plus if we make them yellow no one will want to change them
	anyhow.
2001-06-29 01:59:02 +00:00
Owen Taylor
a2d1299475 Make gdk_colormap_sync private since it was never exported in a header
Fri Feb  2 17:16:09 2001  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkcolor-x11.c (gdk_colormap_sync): Make
	gdk_colormap_sync private since it was never exported
	in a header file.

	* gdk/x11/gdkcolor-x11.c (gdk_colormap_new): Fill in
	colormap->colors[] for StaticGray, StaticColor colormaps.

	* gdk/gdkpixbuf-drawable.c: Fix problems where image->bpp
	was being used as if it was image->bits_per_pixel.

	* gdk/gdkimage.h, gdk/x11/gdkimage-x11.c: Save the bits-per-pixel
	for the image in the GdkImage structure since it isn't
	reconstructable, and we need it to handle packed types

	* gdk/win32/gdkimage-win32.c: Set image->bits_per_pixel. (I'm making
	the assumption that on Win32 image->bits_per_pixel == image->depth,
	always.

	* gdk/linux-fb/gdkimage-fb.c: Set image->bits_per_pixel.

	* gdk/gdkrgb.c (gdk_rgb_select_conv): Exit with an informative
	warning message if no converter can be found.
2001-02-02 22:19:31 +00:00
Havoc Pennington
fe9f9d03f4 New function to create a pixbuf pointing to a subregion of another pixbuf.
2000-11-01  Havoc Pennington  <hp@pobox.com>

* gdk-pixbuf.c (gdk_pixbuf_new_subpixbuf): New function to create
a pixbuf pointing to a subregion of another pixbuf.

2000-11-01  Havoc Pennington  <hp@pobox.com>

* gtk/gtklabel.c (gtk_label_set_attributes): Set a PangoAttrList
on a label
(gtk_label_finalize): unref the attr list if any.

* gtk/testgtk.c (create_get_image): close test on second click
(make_message_dialog): close dialog if it exists

* gdk/gdkpango.c (gdk_draw_layout): Handle rise attribute

* gdk-2.0.pc.in (Requires): Make it require gdk-pixbuf-2.0 not
gdk-pixbuf

* gtk/gtklabel.c (gtk_label_set_markup): new function to set label
from Pango markup format
(gtk_label_set_markup_with_accel): ditto but with accelerator
parsing

* gtk/gtkimage.c (gtk_image_expose): reformatting.

* gdk/gdkpixbuf-drawable.c (gdk_pixbuf_get_from_drawable): Hack to
reflect current state of GDK - use gdk_drawable_get_colormap, etc.
Check GDK_IS_WINDOW() not !GDK_IS_PIXMAP() to decide whether to
call gdk_window_get_origin().

* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha):
implement GDK_PIXBUF_ALPHA_FULL
2000-11-01 07:07:46 +00:00
Tim Janik
afee2c67c5 applied patch from Andreas Persenius <ndap@swipnet.se> that updates the
Wed Jul 26 12:59:31 2000  Tim Janik  <timj@gtk.org>

        * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
        updates the license headers to the GNU Lesser General Public License,
        as well as updating the copyright year to 2000.
2000-07-26 11:33:08 +00:00
Owen Taylor
ba55612d48 Indentation fixups to GTK+ standard.
Wed Jun 21 19:29:08 2000  Owen Taylor  <otaylor@redhat.com>

	* gdk/gdkpixbuf-render.c gdk/gdkpixbuf-drawable.c: Indentation
	fixups to GTK+ standard.
2000-06-21 23:29:51 +00:00
Owen Taylor
11056f564b Welcome aboard, gdk-pixbuf.
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-21 20:47:22 +00:00
Darin Adler
0e164d5fca 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.
2000-05-09 18:23:29 +00:00
Federico Mena Quintero
829ed02435 Most of this patch is based on a patch by Havoc Pennington (hp@redhat.com)
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-04-11 07:03:25 +00:00
Matt Wilson
06884f05ff s/unsigned long/guint32/g, s/unsigned short/guint16/g, s/unsigned
2000-02-28  Matt Wilson  <msw@redhat.com>

	* gdk-pixbuf/gdk-pixbuf-drawable.c: s/unsigned long/guint32/g,
	s/unsigned short/guint16/g, s/unsigned char/guint8/g
2000-02-29 18:27:44 +00:00
Federico Mena Quintero
6e3522ab2c Added reference counting to animations. A web browser may want to share a
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.
2000-01-02 03:59:22 +00:00
Jonathan Blandford
0b0ebee941 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.
1999-12-10 23:15:20 +00:00
Michael Zucchi
757fc193c4 Should now handle all formats, slow routine used where optimised
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 01:50:18 +00:00