API: remove gdk_drawable_get_image()

This commit is contained in:
Benjamin Otte 2010-07-13 23:10:33 +02:00
parent a1a1b135ac
commit 2a72ffd4de
6 changed files with 16 additions and 130 deletions

View File

@ -392,7 +392,6 @@ gdk_draw_layout_with_colors
<SUBSECTION>
gdk_draw_drawable
gdk_drawable_get_image
gdk_drawable_copy_to_image
<SUBSECTION Standard>

View File

@ -354,19 +354,6 @@ bottom edges.
@height:
<!-- ##### FUNCTION gdk_drawable_get_image ##### -->
<para>
</para>
@drawable:
@x:
@y:
@width:
@height:
@Returns:
<!-- ##### FUNCTION gdk_drawable_copy_to_image ##### -->
<para>

View File

@ -83,3 +83,19 @@ pixbufs, see the #GdkPixbuf API documentation.
@Returns:
<!-- ##### FUNCTION gdk_pixbuf_get_from_surface ##### -->
<para>
</para>
@dest:
@surface:
@src_x:
@src_y:
@dest_x:
@dest_y:
@width:
@height:
@Returns:

View File

@ -545,7 +545,6 @@ gdk_drawable_get_clip_region
gdk_drawable_get_colormap
gdk_drawable_get_depth
gdk_drawable_get_display
gdk_drawable_get_image
gdk_drawable_get_screen
gdk_drawable_get_size
gdk_drawable_get_type G_GNUC_CONST

View File

@ -36,11 +36,6 @@
#include "gdkpixbuf.h"
static GdkImage* gdk_drawable_real_get_image (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height);
static GdkDrawable* gdk_drawable_real_get_composite_drawable (GdkDrawable *drawable,
gint x,
gint y,
@ -65,7 +60,6 @@ G_DEFINE_ABSTRACT_TYPE (GdkDrawable, gdk_drawable, G_TYPE_OBJECT)
static void
gdk_drawable_class_init (GdkDrawableClass *klass)
{
klass->get_image = gdk_drawable_real_get_image;
klass->get_composite_drawable = gdk_drawable_real_get_composite_drawable;
/* Default implementation for clip and visible region is the same */
klass->get_clip_region = gdk_drawable_real_get_visible_region;
@ -813,104 +807,6 @@ gdk_drawable_copy_to_image (GdkDrawable *drawable,
return retval;
}
/**
* gdk_drawable_get_image:
* @drawable: a #GdkDrawable
* @x: x coordinate on @drawable
* @y: y coordinate on @drawable
* @width: width of region to get
* @height: height or region to get
*
* A #GdkImage stores client-side image data (pixels). In contrast,
* #GdkPixmap and #GdkWindow are server-side
* objects. gdk_drawable_get_image() obtains the pixels from a
* server-side drawable as a client-side #GdkImage. The format of a
* #GdkImage depends on the #GdkVisual of the current display, which
* makes manipulating #GdkImage extremely difficult; therefore, in
* most cases you should use gdk_pixbuf_get_from_drawable() instead of
* this lower-level function. A #GdkPixbuf contains image data in a
* canonicalized RGB format, rather than a display-dependent format.
* Of course, there's a convenience vs. speed tradeoff here, so you'll
* want to think about what makes sense for your application.
*
* @x, @y, @width, and @height define the region of @drawable to
* obtain as an image.
*
* You would usually copy image data to the client side if you intend
* to examine the values of individual pixels, for example to darken
* an image or add a red tint. It would be prohibitively slow to
* make a round-trip request to the windowing system for each pixel,
* so instead you get all of them at once, modify them, then copy
* them all back at once.
*
* If the X server or other windowing system backend is on the local
* machine, this function may use shared memory to avoid copying
* the image data.
*
* If the source drawable is a #GdkWindow and partially offscreen
* or obscured, then the obscured portions of the returned image
* will contain undefined data.
*
* Return value: a #GdkImage containing the contents of @drawable
**/
GdkImage*
gdk_drawable_get_image (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height)
{
GdkDrawable *composite;
gint composite_x_offset = 0;
gint composite_y_offset = 0;
GdkImage *retval;
GdkColormap *cmap;
g_return_val_if_fail (GDK_IS_DRAWABLE (drawable), NULL);
g_return_val_if_fail (x >= 0, NULL);
g_return_val_if_fail (y >= 0, NULL);
/* FIXME? Note race condition since we get the size then
* get the image, and the size may have changed.
*/
if (width < 0 || height < 0)
gdk_drawable_get_size (drawable,
width < 0 ? &width : NULL,
height < 0 ? &height : NULL);
composite =
GDK_DRAWABLE_GET_CLASS (drawable)->get_composite_drawable (drawable,
x, y,
width, height,
&composite_x_offset,
&composite_y_offset);
retval = GDK_DRAWABLE_GET_CLASS (composite)->get_image (composite,
x - composite_x_offset,
y - composite_y_offset,
width, height);
g_object_unref (composite);
cmap = gdk_drawable_get_colormap (drawable);
if (retval && cmap)
gdk_image_set_colormap (retval, cmap);
return retval;
}
static GdkImage*
gdk_drawable_real_get_image (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height)
{
return gdk_drawable_copy_to_image (drawable, NULL, x, y, 0, 0, width, height);
}
static GdkDrawable *
gdk_drawable_real_get_composite_drawable (GdkDrawable *drawable,
gint x,

View File

@ -123,12 +123,6 @@ struct _GdkDrawableClass
GdkVisual* (*get_visual) (GdkDrawable *drawable);
GdkScreen* (*get_screen) (GdkDrawable *drawable);
GdkImage* (*get_image) (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height);
cairo_region_t* (*get_clip_region) (GdkDrawable *drawable);
cairo_region_t* (*get_visible_region) (GdkDrawable *drawable);
@ -314,11 +308,6 @@ void gdk_draw_trapezoids (GdkDrawable *drawable,
gint n_trapezoids);
GdkImage* gdk_drawable_get_image (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height);
GdkImage *gdk_drawable_copy_to_image (GdkDrawable *drawable,
GdkImage *image,
gint src_x,