epoxy/egl.h header is not provided by mingw-epoxy package. Let's avoid egl usage when building using mingw then. Signed-off-by: Fabiano Fidêncio <fidencio@xxxxxxxxxx> --- configure.ac | 1 - src/Makefile.am | 2 ++ src/spice-widget-priv.h | 4 ++++ src/spice-widget.c | 27 ++++++++++++++++++++++++++- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 24fddc1..4227fd8 100644 --- a/configure.ac +++ b/configure.ac @@ -593,7 +593,6 @@ AC_MSG_NOTICE([ DBus: ${have_dbus} WebDAV support: ${have_phodav} LZ4 support: ${enable_lz4} - epoxy: ${have_epoxy} Now type 'make' to build $PACKAGE diff --git a/src/Makefile.am b/src/Makefile.am index e393913..240d256 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -147,7 +147,9 @@ nodist_SPICE_GTK_SOURCES_COMMON = \ SPICE_GTK_SOURCES_COMMON += \ spice-widget-cairo.c \ +if !OS_WIN32 spice-widget-egl.c \ +endif $(NULL) if WITH_GTK diff --git a/src/spice-widget-priv.h b/src/spice-widget-priv.h index 0d1c3ae..2f7e39e 100644 --- a/src/spice-widget-priv.h +++ b/src/spice-widget-priv.h @@ -24,7 +24,9 @@ #include <windows.h> #endif +#ifndef G_OS_WIN32 #include <epoxy/egl.h> +#endif #include "spice-widget.h" #include "spice-common.h" @@ -125,6 +127,7 @@ struct _SpiceDisplayPrivate { int x11_accel_denominator; int x11_threshold; #endif +#ifndef G_OS_WIN32 struct { gboolean enabled; EGLSurface surface; @@ -140,6 +143,7 @@ struct _SpiceDisplayPrivate { gboolean call_draw_done; SpiceGlScanout scanout; } egl; +#endif }; int spicex_image_create (SpiceDisplay *display); diff --git a/src/spice-widget.c b/src/spice-widget.c index a9c7869..e329809 100644 --- a/src/spice-widget.c +++ b/src/spice-widget.c @@ -530,6 +530,7 @@ static void grab_notify(SpiceDisplay *display, gboolean was_grabbed) } #if GTK_CHECK_VERSION(3,16,0) +#ifndef G_OS_WIN32 static gboolean gl_area_render(GtkGLArea *area, GdkGLContext *context, gpointer user_data) { @@ -562,6 +563,7 @@ gl_area_realize(GtkGLArea *area, gpointer user_data) } } #endif +#endif static void drawing_area_realize(GtkWidget *area, gpointer user_data) @@ -578,11 +580,13 @@ drawing_area_realize(GtkWidget *area, gpointer user_data) g_clear_error(&err); } +#ifndef G_OS_WIN32 if (!spice_egl_realize_display(display, gtk_widget_get_window(area), &err)) { g_critical("egl realize failed: %s", err->message); g_clear_error(&err); } #endif +#endif } static void spice_display_init(SpiceDisplay *display) @@ -604,6 +608,7 @@ static void spice_display_init(SpiceDisplay *display) gtk_stack_set_visible_child(GTK_STACK(widget), area); #if GTK_CHECK_VERSION(3,16,0) +#ifndef G_OS_WIN32 area = gtk_gl_area_new(); gtk_gl_area_set_required_version(GTK_GL_AREA(area), 3, 2); gtk_gl_area_set_auto_render(GTK_GL_AREA(area), false); @@ -614,6 +619,7 @@ static void spice_display_init(SpiceDisplay *display) gtk_stack_add_named(GTK_STACK(widget), area, "gl-area"); gtk_widget_show_all(widget); #endif +#endif g_signal_connect(display, "grab-broken-event", G_CALLBACK(grab_broken), NULL); g_signal_connect(display, "grab-notify", G_CALLBACK(grab_notify), NULL); @@ -1182,6 +1188,7 @@ static gboolean do_color_convert(SpiceDisplay *display, GdkRectangle *r) return true; } +#ifndef G_OS_WIN32 static void set_egl_enabled(SpiceDisplay *display, bool enabled) { SpiceDisplayPrivate *d = display->priv; @@ -1211,6 +1218,7 @@ static void set_egl_enabled(SpiceDisplay *display, bool enabled) d->egl.enabled = enabled; } +#endif static gboolean draw_event(GtkWidget *widget, cairo_t *cr, gpointer data) { @@ -1218,11 +1226,13 @@ 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 (d->egl.enabled && g_str_equal(gtk_stack_get_visible_child_name(GTK_STACK(display)), "draw-area")) { spice_egl_update_display(display); return false; } +#endif if (d->mark == 0 || d->data == NULL || d->area.width == 0 || d->area.height == 0) @@ -1826,8 +1836,10 @@ 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 (d->egl.enabled) spice_egl_resize_display(display, conf->width, conf->height); +#endif } d->mx = conf->x; @@ -1867,7 +1879,9 @@ static void realize(GtkWidget *widget) static void unrealize(GtkWidget *widget) { spicex_image_destroy(SPICE_DISPLAY(widget)); +#ifndef G_OS_WIN32 spice_egl_unrealize_display(SPICE_DISPLAY(widget)); +#endif GTK_WIDGET_CLASS(spice_display_parent_class)->unrealize(widget); } @@ -2250,7 +2264,9 @@ static void invalidate(SpiceChannel *channel, .height = h }; +#ifndef G_OS_WIN32 set_egl_enabled(display, false); +#endif if (!gtk_widget_get_window(GTK_WIDGET(display))) return; @@ -2315,7 +2331,9 @@ static void cursor_set(SpiceCursorChannel *channel, } else g_warn_if_reached(); +#ifndef G_OS_WIN32 spice_egl_cursor_set(display); +#endif if (d->show_cursor) { /* unhide */ gdk_cursor_unref(d->show_cursor); @@ -2463,6 +2481,7 @@ static void cursor_reset(SpiceCursorChannel *channel, gpointer data) gdk_window_set_cursor(window, NULL); } +#ifndef G_OS_WIN32 static void gl_scanout(SpiceDisplay *display) { SpiceDisplayPrivate *d = display->priv; @@ -2502,6 +2521,7 @@ static void gl_draw(SpiceDisplay *display, spice_display_gl_draw_done(SPICE_DISPLAY_CHANNEL(d->display)); } } +#endif static void channel_new(SpiceSession *s, SpiceChannel *channel, gpointer data) { @@ -2538,10 +2558,12 @@ static void channel_new(SpiceSession *s, SpiceChannel *channel, gpointer data) primary.stride, primary.shmid, primary.data, display); mark(display, primary.marked); } +#ifndef G_OS_WIN32 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; @@ -2693,6 +2715,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 (d->egl.enabled) { GdkPixbuf *tmp; @@ -2707,7 +2730,9 @@ GdkPixbuf *spice_display_get_pixbuf(SpiceDisplay *display) (GdkPixbufDestroyNotify)g_free, NULL); pixbuf = gdk_pixbuf_flip(tmp, false); g_object_unref(tmp); - } else { + } else +#endif + { guchar *src, *dest; int x, y; -- 2.5.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel