gdk: remove get_composite_drawable vfunc

The vfunc is not used anymore.
This commit is contained in:
Benjamin Otte 2010-07-21 21:13:23 +02:00
parent 61d4a019f8
commit 4c16995868
4 changed files with 0 additions and 184 deletions

View File

@ -36,13 +36,6 @@
#include "gdkpixbuf.h"
static GdkDrawable* gdk_drawable_real_get_composite_drawable (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height,
gint *composite_x_offset,
gint *composite_y_offset);
static cairo_region_t * gdk_drawable_real_get_visible_region (GdkDrawable *drawable);
@ -51,7 +44,6 @@ G_DEFINE_ABSTRACT_TYPE (GdkDrawable, gdk_drawable, G_TYPE_OBJECT)
static void
gdk_drawable_class_init (GdkDrawableClass *klass)
{
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;
klass->get_visible_region = gdk_drawable_real_get_visible_region;
@ -201,23 +193,6 @@ gdk_drawable_get_colormap (GdkDrawable *drawable)
return GDK_DRAWABLE_GET_CLASS (drawable)->get_colormap (drawable);
}
static GdkDrawable *
gdk_drawable_real_get_composite_drawable (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height,
gint *composite_x_offset,
gint *composite_y_offset)
{
g_return_val_if_fail (GDK_IS_DRAWABLE (drawable), NULL);
*composite_x_offset = 0;
*composite_y_offset = 0;
return g_object_ref (drawable);
}
/**
* gdk_drawable_get_clip_region:
* @drawable: a #GdkDrawable

View File

@ -76,14 +76,6 @@ struct _GdkDrawableClass
cairo_region_t* (*get_clip_region) (GdkDrawable *drawable);
cairo_region_t* (*get_visible_region) (GdkDrawable *drawable);
GdkDrawable* (*get_composite_drawable) (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height,
gint *composite_x_offset,
gint *composite_y_offset);
cairo_surface_t *(*ref_cairo_surface) (GdkDrawable *drawable);
GdkDrawable *(*get_source_drawable) (GdkDrawable *drawable);

View File

@ -204,20 +204,6 @@ gdk_offscreen_window_get_source_drawable (GdkDrawable *drawable)
return _gdk_drawable_get_source_drawable (offscreen->pixmap);
}
static GdkDrawable *
gdk_offscreen_window_get_composite_drawable (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height,
gint *composite_x_offset,
gint *composite_y_offset)
{
GdkOffscreenWindow *offscreen = GDK_OFFSCREEN_WINDOW (drawable);
return g_object_ref (offscreen->pixmap);
}
static GdkScreen*
gdk_offscreen_window_get_screen (GdkDrawable *drawable)
{
@ -921,7 +907,6 @@ gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
drawable_class->get_screen = gdk_offscreen_window_get_screen;
drawable_class->get_visual = gdk_offscreen_window_get_visual;
drawable_class->get_source_drawable = gdk_offscreen_window_get_source_drawable;
drawable_class->get_composite_drawable = gdk_offscreen_window_get_composite_drawable;
}
static void

View File

@ -418,7 +418,6 @@ gdk_window_class_init (GdkWindowObjectClass *klass)
drawable_class->set_cairo_clip = gdk_window_set_cairo_clip;
drawable_class->get_clip_region = gdk_window_get_clip_region;
drawable_class->get_visible_region = gdk_window_get_visible_region;
drawable_class->get_composite_drawable = gdk_window_get_composite_drawable;
drawable_class->get_source_drawable = gdk_window_get_source_drawable;
quark_pointer_window = g_quark_from_static_string ("gtk-pointer-window");
@ -3850,141 +3849,6 @@ gdk_window_get_source_drawable (GdkDrawable *drawable)
return drawable;
}
static GdkDrawable *
gdk_window_get_composite_drawable (GdkDrawable *drawable,
gint x,
gint y,
gint width,
gint height,
gint *composite_x_offset,
gint *composite_y_offset)
{
GdkWindowObject *private = (GdkWindowObject *)drawable;
GSList *list;
GdkPixmap *tmp_pixmap;
GdkRectangle rect;
gboolean overlap_buffer;
GdkDrawable *source;
GdkWindowObject *impl_window;
GdkWindowPaint *implicit_paint;
cairo_t *cr;
*composite_x_offset = -private->abs_x;
*composite_y_offset = -private->abs_y;
if ((GDK_IS_WINDOW (drawable) && GDK_WINDOW_DESTROYED (drawable)))
return g_object_ref (_gdk_drawable_get_source_drawable (drawable));
/* See if any buffered part is overlapping the part we want
* to get
*/
rect.x = x;
rect.y = y;
rect.width = width;
rect.height = height;
overlap_buffer = FALSE;
for (list = private->paint_stack; list != NULL; list = list->next)
{
GdkWindowPaint *paint = list->data;
cairo_region_overlap_t overlap;
overlap = cairo_region_contains_rectangle (paint->region, &rect);
if (overlap == CAIRO_REGION_OVERLAP_IN)
{
*composite_x_offset = paint->x_offset;
*composite_y_offset = paint->y_offset;
return g_object_ref (paint->pixmap);
}
else if (overlap == CAIRO_REGION_OVERLAP_PART)
{
overlap_buffer = TRUE;
break;
}
}
impl_window = gdk_window_get_impl_window (private);
implicit_paint = impl_window->implicit_paint;
if (implicit_paint)
{
cairo_region_overlap_t overlap;
rect.x += private->abs_x;
rect.y += private->abs_y;
overlap = cairo_region_contains_rectangle (implicit_paint->region, &rect);
if (overlap == CAIRO_REGION_OVERLAP_IN)
{
*composite_x_offset = -private->abs_x + implicit_paint->x_offset;
*composite_y_offset = -private->abs_y + implicit_paint->y_offset;
return g_object_ref (implicit_paint->pixmap);
}
else if (overlap == CAIRO_REGION_OVERLAP_PART)
overlap_buffer = TRUE;
}
if (!overlap_buffer)
return g_object_ref (_gdk_drawable_get_source_drawable (drawable));
tmp_pixmap = gdk_pixmap_new (drawable, width, height, -1);
cr = gdk_cairo_create (tmp_pixmap);
source = _gdk_drawable_get_source_drawable (drawable);
gdk_cairo_set_source_pixmap (cr, source,
x - *composite_x_offset,
y - *composite_y_offset);
cairo_paint (cr);
/* paint the backing stores */
if (implicit_paint)
{
GdkWindowPaint *paint = list->data;
cairo_save (cr);
gdk_cairo_set_source_pixmap (cr, paint->pixmap,
x - paint->x_offset,
y - paint->y_offset);
cairo_translate (cr, -x - paint->x_offset, -y - paint->y_offset);
gdk_cairo_region (cr, paint->region);
cairo_fill (cr);
cairo_restore (cr);
}
for (list = private->paint_stack; list != NULL; list = list->next)
{
GdkWindowPaint *paint = list->data;
if (paint->uses_implicit)
continue; /* We already copied this above */
cairo_save (cr);
gdk_cairo_set_source_pixmap (cr, paint->pixmap,
x - paint->x_offset,
y - paint->y_offset);
cairo_translate (cr, -x, -y);
gdk_cairo_region (cr, paint->region);
cairo_fill (cr);
cairo_restore (cr);
}
cairo_destroy (cr);
/* Set these to location of tmp_pixmap within the window */
*composite_x_offset = x;
*composite_y_offset = y;
return tmp_pixmap;
}
static cairo_region_t*
gdk_window_get_clip_region (GdkDrawable *drawable)
{