diff --git a/hw/xwayland/xwayland-glx.c b/glamor/glamor_glx_provider.c similarity index 97% rename from hw/xwayland/xwayland-glx.c rename to glamor/glamor_glx_provider.c index 4689b9ed6..77ccc3c8b 100644 --- a/hw/xwayland/xwayland-glx.c +++ b/glamor/glamor_glx_provider.c @@ -30,21 +30,18 @@ * can do, which often does not include things like multisample visuals. */ -#include +#include #define MESA_EGL_NO_X11_HEADERS #define EGL_NO_X11 -// #include #include #include "glxserver.h" #include "glxutil.h" #include "compint.h" #include -#include "glamor_context.h" +#include "glamor_priv.h" #include "glamor.h" -#include "xwayland-screen.h" - /* Can't get these from since it pulls in client headers */ #define GLX_RGBA_BIT 0x00000001 #define GLX_WINDOW_BIT 0x00000001 @@ -364,12 +361,16 @@ static __GLXscreen * egl_screen_probe(ScreenPtr pScreen) { struct egl_screen *screen; - struct xwl_screen *xwl_screen = xwl_screen_get(pScreen); + glamor_screen_private *glamor_screen; __GLXscreen *base; if (enableIndirectGLX) return NULL; /* not implemented */ + glamor_screen = glamor_get_screen_private(pScreen); + if (!glamor_screen) + return NULL; + if (!(screen = calloc(1, sizeof *screen))) return NULL; @@ -378,7 +379,7 @@ egl_screen_probe(ScreenPtr pScreen) base->createDrawable = egl_create_glx_drawable; /* base.swapInterval = NULL; */ - screen->display = xwl_screen->glamor_ctx->display; + screen->display = glamor_screen->ctx.display; __glXInitExtensionEnableBits(screen->base.glx_enable_bits); __glXEnableExtension(base->glx_enable_bits, "GLX_ARB_context_flush_control"); @@ -402,8 +403,8 @@ egl_screen_probe(ScreenPtr pScreen) return NULL; } - if (!screen->base.glvnd && xwl_screen->glvnd_vendor) - screen->base.glvnd = strdup(xwl_screen->glvnd_vendor); + if (!screen->base.glvnd && glamor_screen->glvnd_vendor) + screen->base.glvnd = strdup(glamor_screen->glvnd_vendor); if (!screen->base.glvnd) screen->base.glvnd = strdup("mesa"); diff --git a/hw/xwayland/xwayland-glx.h b/glamor/glamor_glx_provider.h similarity index 94% rename from hw/xwayland/xwayland-glx.h rename to glamor/glamor_glx_provider.h index 62c9fb7ce..b0db90e47 100644 --- a/hw/xwayland/xwayland-glx.h +++ b/glamor/glamor_glx_provider.h @@ -27,11 +27,11 @@ #ifndef XWAYLAND_GLX_H #define XWAYLAND_GLX_H -#include +#include #ifdef GLXEXT #include "glx_extinit.h" -extern __GLXprovider glamor_provider; +extern _X_EXPORT __GLXprovider glamor_provider; #endif #endif /* XWAYLAND_GLX_H */ diff --git a/glamor/meson.build b/glamor/meson.build index 4a3f6241a..d4cb1859a 100644 --- a/glamor/meson.build +++ b/glamor/meson.build @@ -33,6 +33,9 @@ srcs_glamor = [ 'glamor_sync.c', ] +if build_glx + srcs_glamor += 'glamor_glx_provider.c' +endif if build_xv srcs_glamor += 'glamor_xv.c' endif @@ -41,7 +44,7 @@ epoxy_dep = dependency('epoxy') glamor = static_library('glamor', srcs_glamor, - include_directories: inc, + include_directories: [inc, glx_inc], dependencies: [ common_dep, epoxy_dep, diff --git a/hw/xwayland/meson.build b/hw/xwayland/meson.build index 8bda50eab..1106627a9 100644 --- a/hw/xwayland/meson.build +++ b/hw/xwayland/meson.build @@ -7,7 +7,6 @@ srcs = [ 'xwayland-drm-lease.h', 'xwayland-drm-lease.c', 'xwayland-glamor.h', - 'xwayland-glx.h', 'xwayland-pixmap.c', 'xwayland-pixmap.h', 'xwayland-present.h', @@ -105,9 +104,6 @@ xwayland_glamor = [] eglstream_srcs = [] if build_glamor srcs += 'xwayland-glamor.c' - if build_glx - srcs += 'xwayland-glx.c' - endif if gbm_dep.found() srcs += [ 'xwayland-glamor-gbm.c', diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c index b4fba65c0..e962ccc15 100644 --- a/hw/xwayland/xwayland-glamor.c +++ b/hw/xwayland/xwayland-glamor.c @@ -33,6 +33,7 @@ #include #include +#include #ifdef GLXEXT #include "glx_extinit.h" #endif @@ -42,7 +43,6 @@ #include #include "xwayland-glamor.h" -#include "xwayland-glx.h" #include "xwayland-screen.h" #include "xwayland-window.h" #include "xwayland-window-buffers.h"