[Spice-devel] [PATCH 3/3] Use autoconf rule for epoxy/egl.h (not present on macOS)

Marc-André Lureau marcandre.lureau at redhat.com
Fri Apr 28 11:52:37 UTC 2017



----- Original Message -----
> Hi
> 
> Apparently, it is available on macos:
> https://trac.macports.org/browser/trunk/dports/graphics/libepoxy/Portfile
> 
> but your patch looks correct nonetheless (with the commit summary updated)

Ah it may be just epoxy/egl.h not availale on macos, my bad

> 
> ----- Original Message -----
> > Signed-off-by: Christophe de Dinechin <dinechin at redhat.com>
> > ---
> >  configure.ac            | 13 ++++++++++---
> >  src/Makefile.am         |  2 +-
> >  src/spice-widget-priv.h |  6 +++---
> >  src/spice-widget.c      | 27 ++++++++++++++-------------
> >  4 files changed, 28 insertions(+), 20 deletions(-)
> > 
> > diff --git a/configure.ac b/configure.ac
> > index a6ac2de..caa2dc9 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -74,9 +74,16 @@ esac
> >  AC_MSG_RESULT([$os_mac])
> >  AM_CONDITIONAL([OS_MAC],[test "$os_mac" = "yes"])
> >  
> > -AC_CHECK_HEADERS([sys/socket.h netinet/in.h arpa/inet.h])
> > -AC_CHECK_HEADERS([termios.h])
> > -
> > +AC_CHECK_HEADERS([sys/socket.h netinet/in.h arpa/inet.h termios.h])
> > +AC_CHECK_HEADERS([epoxy/egl.h],
> > +                 [have_egl=yes],
> > +                 [have_egl=no])
> > +AC_MSG_CHECKING([if we can use EGL in libepoxy)])
> > +AC_MSG_RESULT([$have_egl])
> > +AM_CONDITIONAL([HAVE_EGL],[test "$have_egl" = "yes"])
> > +AS_IF([test "$have_egl" = "yes"],
> > +       AC_DEFINE([HAVE_EGL], [1], [Define if supporting EGL]))
> > +
> >  AC_CHECK_LIBM
> >  AC_SUBST(LIBM)
> >  
> > diff --git a/src/Makefile.am b/src/Makefile.am
> > index 4fa7357..bb7ad6c 100644
> > --- a/src/Makefile.am
> > +++ b/src/Makefile.am
> > @@ -145,7 +145,7 @@ SPICE_GTK_SOURCES_COMMON +=		\
> >  	spice-widget-cairo.c		\
> >  	$(NULL)
> >  
> > -if !OS_WIN32
> > +if HAVE_EGL
> >  SPICE_GTK_SOURCES_COMMON +=		\
> >  	spice-widget-egl.c		\
> >  	$(NULL)
> > diff --git a/src/spice-widget-priv.h b/src/spice-widget-priv.h
> > index e29e1b7..5b3216f 100644
> > --- a/src/spice-widget-priv.h
> > +++ b/src/spice-widget-priv.h
> > @@ -24,7 +24,7 @@
> >  #include <windows.h>
> >  #endif
> >  
> > -#ifndef G_OS_WIN32
> > +#ifdef HAVE_EPOXY_EGL_H
> >  #include <epoxy/egl.h>
> >  #endif
> >  
> > @@ -133,7 +133,7 @@ struct _SpiceDisplayPrivate {
> >      int                     x11_accel_denominator;
> >      int                     x11_threshold;
> >  #endif
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >      struct {
> >          gboolean            context_ready;
> >          gboolean            enabled;
> > @@ -150,7 +150,7 @@ struct _SpiceDisplayPrivate {
> >          gboolean            call_draw_done;
> >          SpiceGlScanout      scanout;
> >      } egl;
> > -#endif
> > +#endif // HAVE_EGL
> >  };
> >  
> >  int      spice_cairo_image_create                 (SpiceDisplay *display);
> > diff --git a/src/spice-widget.c b/src/spice-widget.c
> > index 5bbba8f..91aed58 100644
> > --- a/src/spice-widget.c
> > +++ b/src/spice-widget.c
> > @@ -235,7 +235,7 @@ static gint get_display_id(SpiceDisplay *display)
> >  
> >  static bool egl_enabled(SpiceDisplayPrivate *d)
> >  {
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >      return d->egl.enabled;
> >  #else
> >      return false;
> > @@ -574,7 +574,7 @@ static void grab_notify(SpiceDisplay *display, gboolean
> > was_grabbed)
> >  }
> >  
> >  #if GTK_CHECK_VERSION(3,16,0)
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >  /* Ignore GLib's too-new warnings */
> >  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> >  static gboolean
> > @@ -646,7 +646,7 @@ static void spice_display_init(SpiceDisplay *display)
> >      gtk_stack_set_visible_child(d->stack, area);
> >  
> >  #if GTK_CHECK_VERSION(3,16,0)
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >  /* Ignore GLib's too-new warnings */
> >  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> >      area = gtk_gl_area_new();
> > @@ -977,6 +977,7 @@ static void set_mouse_accel(SpiceDisplay *display,
> > gboolean enabled)
> >      }
> >  #else
> >      g_warning("Mouse acceleration code missing for your platform");
> > +    (void) d;
> >  #endif
> >  }
> >  
> > @@ -1305,7 +1306,7 @@ static gboolean do_color_convert(SpiceDisplay
> > *display,
> > GdkRectangle *r)
> >      return true;
> >  }
> >  
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >  static void set_egl_enabled(SpiceDisplay *display, bool enabled)
> >  {
> >      SpiceDisplayPrivate *d = display->priv;
> > @@ -1341,7 +1342,7 @@ static gboolean draw_event(GtkWidget *widget, cairo_t
> > *cr, gpointer data)
> >      SpiceDisplayPrivate *d = display->priv;
> >      g_return_val_if_fail(d != NULL, false);
> >  
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >      if (egl_enabled(d) &&
> >          g_str_equal(gtk_stack_get_visible_child_name(d->stack),
> >          "draw-area")) {
> >          spice_egl_update_display(display);
> > @@ -2101,7 +2102,7 @@ static void size_allocate(GtkWidget *widget,
> > GtkAllocation *conf, gpointer data)
> >          d->ww = conf->width;
> >          d->wh = conf->height;
> >          recalc_geometry(widget);
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >          if (egl_enabled(d))
> >              spice_egl_resize_display(display, conf->width, conf->height);
> >  #endif
> > @@ -2144,7 +2145,7 @@ static void realize(GtkWidget *widget)
> >  static void unrealize(GtkWidget *widget)
> >  {
> >      spice_cairo_image_destroy(SPICE_DISPLAY(widget));
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >      spice_egl_unrealize_display(SPICE_DISPLAY(widget));
> >  #endif
> >  
> > @@ -2500,7 +2501,7 @@ static void update_area(SpiceDisplay *display,
> >          .height = height
> >      };
> >  
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >      if (egl_enabled(d)) {
> >          const SpiceGlScanout *so =
> >              spice_display_get_gl_scanout(SPICE_DISPLAY_CHANNEL(d->display));
> > @@ -2597,7 +2598,7 @@ static void invalidate(SpiceChannel *channel,
> >          .height = h
> >      };
> >  
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >      set_egl_enabled(display, false);
> >  #endif
> >  
> > @@ -2661,7 +2662,7 @@ static void cursor_set(SpiceCursorChannel *channel,
> >      } else
> >          g_warn_if_reached();
> >  
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >      if (egl_enabled(d))
> >          spice_egl_cursor_set(display);
> >  #endif
> > @@ -2833,7 +2834,7 @@ static void inputs_channel_event(SpiceChannel
> > *channel,
> > SpiceChannelEvent event,
> >      spice_display_set_keypress_delay(display, delay);
> >  }
> >  
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >  G_GNUC_INTERNAL
> >  void spice_display_widget_gl_scanout(SpiceDisplay *display)
> >  {
> > @@ -2942,7 +2943,7 @@ static void channel_new(SpiceSession *s, SpiceChannel
> > *channel, gpointer data)
> >              mark(display, primary.marked);
> >          }
> >  
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >          spice_g_signal_connect_object(channel, "notify::gl-scanout",
> >                                        G_CALLBACK(spice_display_widget_gl_scanout),
> >                                        display, G_CONNECT_SWAPPED);
> > @@ -3102,7 +3103,7 @@ GdkPixbuf *spice_display_get_pixbuf(SpiceDisplay
> > *display)
> >      g_return_val_if_fail(d != NULL, NULL);
> >      g_return_val_if_fail(d->display != NULL, NULL);
> >  
> > -#ifndef G_OS_WIN32
> > +#if HAVE_EGL
> >      if (egl_enabled(d)) {
> >          GdkPixbuf *tmp;
> >  
> > --
> > 2.11.0 (Apple Git-81)
> > 
> > _______________________________________________
> > 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