hw/Xwayland: add xwl_glamor_mode_flags enum
This replaces int glamor parameter with a new enum to be more clean and prepare for more glamor options. No functional change. Signed-off-by: Konstantin <ria.freelander@gmail.com>
This commit is contained in:
parent
4fc1500f74
commit
8fd24a121a
|
@ -962,6 +962,11 @@ xwl_glamor_eglstream_init_egl(struct xwl_screen *xwl_screen)
|
|||
};
|
||||
int n;
|
||||
|
||||
if (!(xwl_screen->glamor & XWL_GLAMOR_GL)) {
|
||||
ErrorF("glamor: eglstream backend requires desktop OpenGL\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
xwl_screen->egl_display = glamor_egl_get_display(
|
||||
EGL_PLATFORM_DEVICE_EXT, xwl_eglstream->egl_device);
|
||||
if (!xwl_screen->egl_display)
|
||||
|
|
|
@ -1072,6 +1072,9 @@ xwl_glamor_try_big_gl_api(struct xwl_screen *xwl_screen)
|
|||
};
|
||||
int gl_version;
|
||||
|
||||
if (!(xwl_screen->glamor & XWL_GLAMOR_GL))
|
||||
return FALSE;
|
||||
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
|
||||
xwl_screen->egl_context =
|
||||
|
@ -1112,6 +1115,9 @@ xwl_glamor_try_gles_api(struct xwl_screen *xwl_screen)
|
|||
EGL_NONE,
|
||||
};
|
||||
|
||||
if (!(xwl_screen->glamor & XWL_GLAMOR_GL))
|
||||
return FALSE;
|
||||
|
||||
eglBindAPI(EGL_OPENGL_ES_API);
|
||||
|
||||
xwl_screen->egl_context = eglCreateContext(xwl_screen->egl_display,
|
||||
|
|
|
@ -41,6 +41,11 @@ typedef enum _xwl_egl_backend_flags {
|
|||
XWL_EGL_BACKEND_NEEDS_N_BUFFERING = (1 << 1),
|
||||
} xwl_egl_backend_flags;
|
||||
|
||||
typedef enum _xwl_glamor_mode_flags{
|
||||
XWL_GLAMOR_NONE = 0,
|
||||
XWL_GLAMOR_GL = (1 << 0),
|
||||
} xwl_glamor_mode_flags;
|
||||
|
||||
struct xwl_egl_backend {
|
||||
/* Set by the backend if available */
|
||||
Bool is_available;
|
||||
|
|
|
@ -54,6 +54,9 @@
|
|||
#ifdef XWL_HAS_EI
|
||||
#include "xwayland-xtest.h"
|
||||
#endif
|
||||
#ifdef XWL_HAS_GLAMOR
|
||||
#include "xwayland-glamor.h"
|
||||
#endif
|
||||
|
||||
#ifdef MITSHM
|
||||
#include "shmint.h"
|
||||
|
@ -757,7 +760,7 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
|||
#endif
|
||||
|
||||
#ifdef XWL_HAS_GLAMOR
|
||||
xwl_screen->glamor = 1;
|
||||
xwl_screen->glamor = XWL_GLAMOR_GL;
|
||||
#endif
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
|
@ -778,7 +781,7 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
|||
defaultScreenSaverInterval = 0;
|
||||
}
|
||||
else if (strcmp(argv[i], "-shm") == 0) {
|
||||
xwl_screen->glamor = 0;
|
||||
xwl_screen->glamor = XWL_GLAMOR_NONE;
|
||||
}
|
||||
else if (strcmp(argv[i], "-eglstream") == 0) {
|
||||
#ifdef XWL_HAS_EGLSTREAM
|
||||
|
@ -961,7 +964,7 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
|
|||
|
||||
if (xwl_screen->egl_backend == NULL || !xwl_glamor_init(xwl_screen)) {
|
||||
ErrorF("Failed to initialize glamor, falling back to sw\n");
|
||||
xwl_screen->glamor = 0;
|
||||
xwl_screen->glamor = XWL_GLAMOR_NONE;
|
||||
}
|
||||
}
|
||||
#ifdef GLAMOR_HAS_GBM
|
||||
|
|
|
@ -60,7 +60,7 @@ struct xwl_screen {
|
|||
enum RootClipMode root_clip_mode;
|
||||
|
||||
int rootless;
|
||||
int glamor;
|
||||
xwl_glamor_mode_flags glamor;
|
||||
int present;
|
||||
int force_xrandr_emulation;
|
||||
int fullscreen;
|
||||
|
|
Loading…
Reference in New Issue