[gtk-vnc] Mandate the use of Cairo for all drawing
- From: Daniel P. Berrange <dberrange src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk-vnc] Mandate the use of Cairo for all drawing
- Date: Fri, 20 Aug 2010 17:28:23 +0000 (UTC)
commit 01461f75f2ec1f8019af163146470ebf5739345e
Author: Daniel P. Berrange <berrange redhat com>
Date: Fri Aug 20 12:08:02 2010 +0100
Mandate the use of Cairo for all drawing
Cairo has been used for GTK drawing for a long time and is now
mandatory in GTK3. Drop support for non-Cairo drawing ops since
they're obsolete.
* configure.ac: Check for Cairo
* src/vncdisplay.c: Drop non-cairo drawing
configure.ac | 20 ++++----------------
src/vncdisplay.c | 52 ----------------------------------------------------
2 files changed, 4 insertions(+), 68 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 864b431..1254196 100644
--- a/configure.ac
+++ b/configure.ac
@@ -39,6 +39,7 @@ PYGTK_REQUIRED=2.0.0
VIEW_REQUIRED=0.6.0
GTHREAD_REQUIRED=2.0.0
PYTHON_REQUIRED=2.4
+CAIRO_REQUIRED=1.2.0
FIREFOX_PLUGIN_REQUIRED=2.0.0
MOZILLA_PLUGIN_REQUIRED=1.8
@@ -169,15 +170,9 @@ PKG_CHECK_MODULES(X11, x11,,AC_MSG_NOTICE([Not building against X11]))
AC_SUBST(X11_CFLAGS)
AC_SUBST(X11_LIBS)
-save_CFLAGS="$CFLAGS"
-save_LIBS="$LIBS"
-CFLAGS="$CFLAGS $GTK_CFLAGS"
-LIBS="$LIBS $GTK_LIBS"
-AC_CHECK_FUNC([gdk_cairo_create], [WITH_GTK_CAIRO=1], [WITH_GTK_CAIRO=0])
-CFLAGS="$save_CFLAGS"
-LIBS="$save_LIBS"
-
-AC_DEFINE_UNQUOTED(WITH_GTK_CAIRO, [$WITH_GTK_CAIRO], [Whether to use cairo for GTK rendering])
+PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_REQUIRED)
+AC_SUBST(CAIRO_CFLAGS)
+AC_SUBST(CAIRO_LIBS)
AC_ARG_WITH(libview,
@@ -396,12 +391,6 @@ AC_CONFIG_FILES(
AC_OUTPUT
-if [ test "$WITH_GTK_CAIRO" = 1 ]; then
- with_scaling=yes
-else
- with_scaling=no
-fi
-
echo "
Configure summary:
@@ -413,7 +402,6 @@ Configure summary:
Python binding .............: ${WITH_PYTHON}
Install example programs ...: ${WITH_EXAMPLES}
Browser plugin .............: ${enable_plugin}
- Scaling support.............: ${with_scaling}
SASL support................: ${enable_sasl}
GTK+ version................: ${GTK_API_VERSION}
"
diff --git a/src/vncdisplay.c b/src/vncdisplay.c
index 3c522cc..60a25fd 100644
--- a/src/vncdisplay.c
+++ b/src/vncdisplay.c
@@ -279,13 +279,7 @@ static gboolean expose_event(GtkWidget *widget, GdkEventExpose *expose)
VncDisplayPrivate *priv = obj->priv;
int ww, wh;
int mx = 0, my = 0;
-#if WITH_GTK_CAIRO
cairo_t *cr;
-#else
- int x, y, w, h;
- GdkRectangle drawn;
- GdkRegion *clear, *copy;
-#endif
int fbw = 0, fbh = 0;
if (priv->fb) {
@@ -306,7 +300,6 @@ static gboolean expose_event(GtkWidget *widget, GdkEventExpose *expose)
if (wh > fbh)
my = (wh - fbh) / 2;
-#if WITH_GTK_CAIRO
cr = gdk_cairo_create(gtk_widget_get_window(GTK_WIDGET(obj)));
cairo_rectangle(cr,
expose->area.x,
@@ -351,43 +344,6 @@ static gboolean expose_event(GtkWidget *widget, GdkEventExpose *expose)
}
cairo_destroy(cr);
-#else
- x = MIN(expose->area.x - mx, fbw);
- y = MIN(expose->area.y - my, fbh);
- w = MIN(expose->area.x + expose->area.width - mx, fbw);
- h = MIN(expose->area.y + expose->area.height - my, fbh);
- x = MAX(0, x);
- y = MAX(0, y);
- w = MAX(0, w);
- h = MAX(0, h);
-
- w -= x;
- h -= y;
-
- drawn.x = x + mx;
- drawn.y = y + my;
- drawn.width = w;
- drawn.height = h;
-
- clear = gdk_region_rectangle(&expose->area);
- copy = gdk_region_rectangle(&drawn);
- gdk_region_subtract(clear, copy);
-
- if (priv->pixmap != NULL) {
- gdk_gc_set_clip_region(priv->gc, copy);
- gdk_draw_drawable(widget->window, priv->gc, priv->pixmap,
- x, y, x + mx, y + my, w, h);
- }
-
- gdk_gc_set_clip_region(priv->gc, clear);
- gdk_draw_rectangle(widget->window, priv->gc, TRUE,
- expose->area.x, expose->area.y,
- expose->area.width, expose->area.height);
-
- gdk_region_destroy(clear);
- gdk_region_destroy(copy);
-#endif
-
return TRUE;
}
@@ -2084,7 +2040,6 @@ void vnc_display_set_shared_flag(VncDisplay *obj, gboolean shared)
obj->priv->shared_flag = shared;
}
-#if WITH_GTK_CAIRO
gboolean vnc_display_set_scaling(VncDisplay *obj,
gboolean enable)
{
@@ -2099,13 +2054,6 @@ gboolean vnc_display_set_scaling(VncDisplay *obj,
return TRUE;
}
-#else
-gboolean vnc_display_set_scaling(VncDisplay *obj G_GNUC_UNUSED,
- gboolean enable G_GNUC_UNUSED)
-{
- return FALSE;
-}
-#endif
void vnc_display_set_force_size(VncDisplay *obj, gboolean enabled)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]