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

Christophe de Dinechin dinechin at redhat.com
Tue May 9 14:22:34 UTC 2017


Thanks. I had not seen the leftover (void) d (this was to remove an unused-variable warning, but clearly not intended to be in this patch). Was there any other unrelated change?

Thanks again,
Christophe


> On 28 Apr 2017, at 13:52, Marc-André Lureau <marcandre.lureau at redhat.com> wrote:
> 
> 
> 
> ----- 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
>>> 
>> 
> _______________________________________________
> 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