diff --git a/hw/kdrive/ephyr/Makefile.am b/hw/kdrive/ephyr/Makefile.am index 349e86dca..7e10d6b79 100644 --- a/hw/kdrive/ephyr/Makefile.am +++ b/hw/kdrive/ephyr/Makefile.am @@ -24,8 +24,7 @@ bin_PROGRAMS = Xephyr HOSTX_SRCS = \ hostx.c \ - hostx.h \ - ephyr_host_glamor.c + hostx.h HOSTVIDEO_SRCS = \ ephyrvideo.c \ diff --git a/hw/kdrive/ephyr/ephyr_host_glamor.c b/hw/kdrive/ephyr/ephyr_host_glamor.c deleted file mode 100644 index f652bd00e..000000000 --- a/hw/kdrive/ephyr/ephyr_host_glamor.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright © 2008 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Eric Anholt - * - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include "GL/glx.h" - -#include "hostx.h" - -void -ephyr_glamor_host_create_context(EphyrScreenInfo ephyr_screen) -{ - Display *dpy = hostx_get_display(); - int attribs[] = {GLX_RGBA, - GLX_RED_SIZE, 1, - GLX_GREEN_SIZE, 1, - GLX_BLUE_SIZE, 1, - None}; - XVisualInfo *visual_info; - GLXContext ctx; - - visual_info = glXChooseVisual(dpy, DefaultScreen(dpy), attribs); - if (visual_info == NULL) - errx(1, "Couldn't get RGB visual\n"); - - ctx = glXCreateContext(dpy, visual_info, NULL, True); - if (ctx == NULL) - errx(1, "glXCreateContext failed\n"); - - glXMakeCurrent(dpy, hostx_get_window(DefaultScreen(dpy)), ctx); - - XFree(visual_info); -} diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c index 4caf4516d..a854c881d 100644 --- a/hw/kdrive/ephyr/hostx.c +++ b/hw/kdrive/ephyr/hostx.c @@ -46,6 +46,7 @@ #include #include /* for memset */ #include +#include #include #include @@ -61,6 +62,7 @@ #include #endif /* XF86DRI */ #include "ephyrlog.h" +#include "GL/glx.h" #ifdef XF86DRI extern Bool XF86DRIQueryExtension (Display *dpy, @@ -1445,3 +1447,36 @@ hostx_has_glx (void) } #endif /* XF86DRI */ + +void +ephyr_glamor_host_create_context(EphyrScreenInfo ephyr_screen) +{ + Display *dpy = hostx_get_display(); + int attribs[] = {GLX_RGBA, + GLX_RED_SIZE, 1, + GLX_GREEN_SIZE, 1, + GLX_BLUE_SIZE, 1, + None}; + XVisualInfo *visual_info; + GLXContext ctx; + struct EphyrHostScreen *host_screen; + int event_base = 0, error_base = 0; + + host_screen = host_screen_from_screen_info(ephyr_screen); + + if (!glXQueryExtension (dpy, &event_base, &error_base)) + errx(1, "Couldn't find GLX extension\n"); + + visual_info = glXChooseVisual(dpy, DefaultScreen(dpy), attribs); + if (visual_info == NULL) + errx(1, "Couldn't get RGB visual\n"); + + ctx = glXCreateContext(dpy, visual_info, NULL, True); + if (ctx == NULL) + errx(1, "glXCreateContext failed\n"); + + if (!glXMakeCurrent(dpy, host_screen->win, ctx)) + errx(1, "glXMakeCurrent failed\n"); + + XFree(visual_info); +}