Hi ----- Original Message ----- > 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) > This is invalid and will fail to build egl widget on !win32. > 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 > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel