[Spice-devel] [PATCH 7/9] gtk: require gtk+ 3.16

Fabiano Fidêncio fidencio at redhat.com
Tue Feb 16 16:44:52 UTC 2016


On Tue, Feb 16, 2016 at 3:49 PM, Marc-André Lureau
<marcandre.lureau at gmail.com> wrote:
> 3.16 is the minimal version for GtkGLArea widget, used in following
> patches.
>
> Drop conditionnal epoxy, as it is now also required by gtk+.

Not exactly sure about bumping the Gtk mininal version dep to 3.16 to be honest.
It will make spice-gtk not buildable on any major distro but Fedora. :-\

>
> Signed-off-by: Marc-André Lureau <marcandre.lureau at gmail.com>
> ---
>  configure.ac            | 29 ++---------------------------
>  src/Makefile.am         |  9 +--------
>  src/spice-widget-priv.h |  4 ----
>  src/spice-widget.c      | 28 ++++------------------------
>  4 files changed, 7 insertions(+), 63 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 7fb984f..6376532 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -124,7 +124,7 @@ AC_ARG_WITH([gtk],
>    [with_gtk=3.0])
>
>  case "$with_gtk" in
> -  3.0) GTK_REQUIRED=2.91.3
> +  3.0) GTK_REQUIRED=3.16
>         ;;
>    no)
>         AS_IF([test x$enable_gtk_doc = xyes],
> @@ -138,7 +138,7 @@ AS_IF([test "x$with_gtk" != "xno"],
>        [PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQUIRED)])
>  AC_SUBST(GTK_CFLAGS)
>  AC_SUBST(GTK_LIBS)
> -SPICE_GTK_REQUIRES="${SPICE_GTK_REQUIRES} gtk+-3.0 >= $GTK_REQUIRED"
> +SPICE_GTK_REQUIRES="${SPICE_GTK_REQUIRES} gtk+-3.0 >= $GTK_REQUIRED epoxy"
>
>  PKG_CHECK_EXISTS([gtk+-quartz-$with_gtk], [have_quartz=yes], [have_quartz=no])
>  AS_IF([test "x$have_quartz" = "xyes"], [AC_DEFINE([HAVE_QUARTZ], 1, [Have Quartz?])])
> @@ -209,31 +209,6 @@ AS_IF([test "x$have_phodav" = "xyes"],
>
>  AM_CONDITIONAL([WITH_PHODAV], [test "x$have_phodav" = "xyes"])
>
> -# FIXME: remove with gtk2
> -AC_ARG_ENABLE([epoxy],
> -  AS_HELP_STRING([--enable-epoxy=@<:@auto/yes/no@:>@],
> -  [Enable egl/epoxy support @<:@default=auto@:>@]),
> -  [],
> -  [enable_epoxy="auto"])
> -
> -if test "x$enable_epoxy" = "xno"; then
> -  have_epoxy="no"
> -else
> -  PKG_CHECK_MODULES(EPOXY, [epoxy], [have_epoxy=yes], [have_epoxy=no])
> -  AC_SUBST(EPOXY_CFLAGS)
> -  AC_SUBST(EPOXY_LIBS)
> -  if test "x$have_epoxy" = "xyes"; then
> -    AC_CHECK_HEADER([epoxy/egl.h],,have_epoxy=no)
> -  fi
> -  if test "x$have_epoxy" = "xno" && test "x$enable_epoxy" = "xyes"; then
> -    AC_MSG_ERROR([epoxy support explicitly requested, but required package is not available])
> -  fi
> -fi
> -AS_IF([test "x$have_epoxy" = "xyes"],
> -  AC_DEFINE(USE_EPOXY, [1], [Define if supporting epoxy]))
> -
> -AM_CONDITIONAL([WITH_EPOXY], [test "x$have_epoxy" = "xyes"])
> -
>  AC_ARG_WITH([audio],
>    AS_HELP_STRING([--with-audio=@<:@gstreamer/pulse/auto/no@:>@], [For legacy compatibility only]),
>    [SPICE_WARNING([--with-audio is deprecated. Use --enable-pulse and/or --enable-gstaudio instead])
> diff --git a/src/Makefile.am b/src/Makefile.am
> index ffc98b9..2e7aa3b 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -118,7 +118,6 @@ SPICE_GTK_LIBADD_COMMON =           \
>         libspice-client-glib-2.0.la     \
>         $(GTK_LIBS)                     \
>         $(CAIRO_LIBS)                   \
> -       $(EPOXY_LIBS)                   \
>         $(LIBM)                         \
>         $(NULL)
>
> @@ -149,20 +148,14 @@ nodist_SPICE_GTK_SOURCES_COMMON = \
>
>  SPICE_GTK_SOURCES_COMMON +=            \
>         spice-widget-cairo.c            \
> -       $(NULL)
> -
> -if WITH_GTK
> -if WITH_EPOXY
> -SPICE_GTK_SOURCES_COMMON +=            \
>         spice-widget-egl.c              \
>         $(NULL)
> -endif
>
> +if WITH_GTK
>  libspice_client_gtk_3_0_la_DEPEDENCIES = $(GTK_SYMBOLS_FILE)
>  libspice_client_gtk_3_0_la_LDFLAGS = $(SPICE_GTK_LDFLAGS_COMMON)
>  libspice_client_gtk_3_0_la_LIBADD = $(SPICE_GTK_LIBADD_COMMON)
>  libspice_client_gtk_3_0_la_SOURCES = $(SPICE_GTK_SOURCES_COMMON)
> -libspice_client_gtk_3_0_la_CFLAGS = $(EPOXY_CFLAGS)
>  nodist_libspice_client_gtk_3_0_la_SOURCES = $(nodist_SPICE_GTK_SOURCES_COMMON)
>
>  libspice_client_gtkincludedir = $(includedir)/spice-client-gtk-3.0
> diff --git a/src/spice-widget-priv.h b/src/spice-widget-priv.h
> index d28328d..cbedfc7 100644
> --- a/src/spice-widget-priv.h
> +++ b/src/spice-widget-priv.h
> @@ -24,9 +24,7 @@
>  #include <windows.h>
>  #endif
>
> -#ifdef USE_EPOXY
>  #include <epoxy/egl.h>
> -#endif
>
>  #include "spice-widget.h"
>  #include "spice-common.h"
> @@ -127,7 +125,6 @@ struct _SpiceDisplayPrivate {
>      int                     x11_accel_denominator;
>      int                     x11_threshold;
>  #endif
> -#ifdef USE_EPOXY
>      struct {
>          gboolean            enabled;
>          EGLSurface          surface;
> @@ -142,7 +139,6 @@ struct _SpiceDisplayPrivate {
>          EGLImageKHR         image;
>          SpiceGlScanout      scanout;
>      } egl;
> -#endif
>  };
>
>  int      spicex_image_create                 (SpiceDisplay *display);
> diff --git a/src/spice-widget.c b/src/spice-widget.c
> index 1225f5f..74060ed 100644
> --- a/src/spice-widget.c
> +++ b/src/spice-widget.c
> @@ -543,7 +543,7 @@ static void spice_display_init(SpiceDisplay *display)
>      GtkWidget *widget = GTK_WIDGET(display);
>      SpiceDisplayPrivate *d;
>      GtkTargetEntry targets = { "text/uri-list", 0, 0 };
> -    G_GNUC_UNUSED GError *err = NULL;
> +    GError *err = NULL;
>
>      d = display->priv = SPICE_DISPLAY_GET_PRIVATE(display);
>
> @@ -571,12 +571,10 @@ static void spice_display_init(SpiceDisplay *display)
>
>      d->mouse_cursor = get_blank_cursor();
>
> -#ifdef USE_EPOXY
>      if (!spice_egl_init(display, &err)) {
>          g_critical("egl init failed: %s", err->message);
>          g_clear_error(&err);
>      }
> -#endif
>  }
>
>  static GObject *
> @@ -1128,7 +1126,6 @@ static gboolean do_color_convert(SpiceDisplay *display, GdkRectangle *r)
>
>  static void set_egl_enabled(SpiceDisplay *display, bool enabled)
>  {
> -#ifdef USE_EPOXY
>      SpiceDisplayPrivate *d = display->priv;
>
>      if (d->egl.enabled != enabled) {
> @@ -1138,7 +1135,6 @@ static void set_egl_enabled(SpiceDisplay *display, bool enabled)
>           * resized. */
>          gtk_widget_set_double_buffered(GTK_WIDGET(display), !enabled);
>      }
> -#endif
>  }
>
>  static gboolean draw_event(GtkWidget *widget, cairo_t *cr)
> @@ -1147,12 +1143,10 @@ static gboolean draw_event(GtkWidget *widget, cairo_t *cr)
>      SpiceDisplayPrivate *d = display->priv;
>      g_return_val_if_fail(d != NULL, false);
>
> -#ifdef USE_EPOXY
>      if (d->egl.enabled) {
>          spice_egl_update_display(display);
>          return false;
>      }
> -#endif
>
>      if (d->mark == 0 || d->data == NULL ||
>          d->area.width == 0 || d->area.height == 0)
> @@ -1756,10 +1750,8 @@ static void size_allocate(GtkWidget *widget, GtkAllocation *conf, gpointer data)
>          d->ww = conf->width;
>          d->wh = conf->height;
>          recalc_geometry(widget);
> -#ifdef USE_EPOXY
>          if (d->egl.enabled)
>              spice_egl_resize_display(display, conf->width, conf->height);
> -#endif
>      }
>
>      d->mx = conf->x;
> @@ -1786,7 +1778,7 @@ static void realize(GtkWidget *widget)
>  {
>      SpiceDisplay *display = SPICE_DISPLAY(widget);
>      SpiceDisplayPrivate *d = display->priv;
> -    G_GNUC_UNUSED GError *err = NULL;
> +    GError *err = NULL;
>
>      GTK_WIDGET_CLASS(spice_display_parent_class)->realize(widget);
>
> @@ -1794,21 +1786,18 @@ static void realize(GtkWidget *widget)
>          vnc_display_keymap_gdk2xtkbd_table(gtk_widget_get_window(widget),
>                                             &d->keycode_maplen);
>
> -#ifdef USE_EPOXY
>      if (!spice_egl_realize_display(display, gtk_widget_get_window(GTK_WIDGET(display)), &err)) {
>          g_critical("egl realize failed: %s", err->message);
>          g_clear_error(&err);
>      }
> -#endif
> +
>      update_image(display);
>  }
>
>  static void unrealize(GtkWidget *widget)
>  {
>      spicex_image_destroy(SPICE_DISPLAY(widget));
> -#ifdef USE_EPOXY
>      spice_egl_unrealize_display(SPICE_DISPLAY(widget));
> -#endif
>
>      GTK_WIDGET_CLASS(spice_display_parent_class)->unrealize(widget);
>  }
> @@ -2257,9 +2246,7 @@ static void cursor_set(SpiceCursorChannel *channel,
>      } else
>          g_warn_if_reached();
>
> -#ifdef USE_EPOXY
>      spice_egl_cursor_set(display);
> -#endif
>      if (d->show_cursor) {
>          /* unhide */
>          gdk_cursor_unref(d->show_cursor);
> @@ -2407,7 +2394,6 @@ static void cursor_reset(SpiceCursorChannel *channel, gpointer data)
>      gdk_window_set_cursor(window, NULL);
>  }
>
> -#ifdef USE_EPOXY
>  static void gl_scanout(SpiceDisplay *display)
>  {
>      SpiceDisplayPrivate *d = display->priv;
> @@ -2437,7 +2423,6 @@ static void gl_draw(SpiceDisplay *display,
>      spice_egl_update_display(display);
>      spice_display_gl_draw_done(SPICE_DISPLAY_CHANNEL(d->display));
>  }
> -#endif
>
>  static void channel_new(SpiceSession *s, SpiceChannel *channel, gpointer data)
>  {
> @@ -2474,12 +2459,10 @@ static void channel_new(SpiceSession *s, SpiceChannel *channel, gpointer data)
>                             primary.stride, primary.shmid, primary.data, display);
>              mark(display, primary.marked);
>          }
> -#ifdef USE_EPOXY
>          spice_g_signal_connect_object(channel, "notify::gl-scanout",
>                                        G_CALLBACK(gl_scanout), display, G_CONNECT_SWAPPED);
>          spice_g_signal_connect_object(channel, "gl-draw",
>                                        G_CALLBACK(gl_draw), display, G_CONNECT_SWAPPED);
> -#endif
>
>          spice_channel_connect(channel);
>          return;
> @@ -2631,7 +2614,6 @@ GdkPixbuf *spice_display_get_pixbuf(SpiceDisplay *display)
>      g_return_val_if_fail(d != NULL, NULL);
>      g_return_val_if_fail(d->display != NULL, NULL);
>
> -#ifdef USE_EPOXY
>      if (d->egl.enabled) {
>          GdkPixbuf *tmp;
>
> @@ -2646,9 +2628,7 @@ GdkPixbuf *spice_display_get_pixbuf(SpiceDisplay *display)
>                                         (GdkPixbufDestroyNotify)g_free, NULL);
>          pixbuf = gdk_pixbuf_flip(tmp, false);
>          g_object_unref(tmp);
> -    } else
> -#endif
> -    {
> +    } else {
>          guchar *src, *dest;
>          int x, y;
>
> --
> 2.5.0
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list