[gtk+/rendering-cleanup: 111/141] gdk: Create paint surfaces of the same content as the window
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/rendering-cleanup: 111/141] gdk: Create paint surfaces of the same content as the window
- Date: Mon, 13 Sep 2010 23:54:14 +0000 (UTC)
commit 7cd5d48659f847564e3d777ca9cdc3b18ed37e61
Author: Benjamin Otte <otte redhat com>
Date: Sat Aug 28 22:26:48 2010 +0200
gdk: Create paint surfaces of the same content as the window
Previously, we failed to create RGBA double buffers for RGBA windows.
gdk/gdkwindow.c | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 68a7cfb..bdf2c42 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -2644,6 +2644,20 @@ gdk_window_get_state (GdkWindow *window)
return private->state;
}
+static cairo_content_t
+gdk_window_get_content (GdkWindow *window)
+{
+ cairo_surface_t *surface;
+ cairo_content_t content;
+
+ g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
+
+ surface = _gdk_drawable_ref_cairo_surface (window);
+ content = cairo_surface_get_content (surface);
+ cairo_surface_destroy (surface);
+
+ return content;
+}
/* This creates an empty "implicit" paint region for the impl window.
* By itself this does nothing, but real paints to this window
@@ -2690,7 +2704,7 @@ gdk_window_begin_implicit_paint (GdkWindow *window, GdkRectangle *rect)
paint->uses_implicit = FALSE;
paint->flushed = FALSE;
paint->surface = gdk_window_create_similar_surface (window,
- CAIRO_CONTENT_COLOR,
+ gdk_window_get_content (window),
MAX (rect->width, 1),
MAX (rect->height, 1));
cairo_surface_set_device_offset (paint->surface, -rect->x, -rect->y);
@@ -2914,7 +2928,7 @@ gdk_window_begin_paint_region (GdkWindow *window,
{
paint->uses_implicit = FALSE;
paint->surface = gdk_window_create_similar_surface (window,
- CAIRO_CONTENT_COLOR,
+ gdk_window_get_content (window),
MAX (clip_box.width, 1),
MAX (clip_box.height, 1));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]