summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2010-06-11 00:17:10 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2010-06-11 00:17:10 -0700
commit30c92210f82323ae9ef03ee01035b1ed00ccca84 (patch)
tree94f1af268fccb6d56658d2d3199826eeeb5a636b
parenta261c9e5a17b502e3ef03d6cfee7bc65b973ed18 (diff)
Startup fixes for Wayland
- check for right GL API - initialize event dispatcher - add error checking
-rw-r--r--src/gui/kernel/qapplication_wayland.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/gui/kernel/qapplication_wayland.cpp b/src/gui/kernel/qapplication_wayland.cpp
index 32f8bb6a52..517e87a1a1 100644
--- a/src/gui/kernel/qapplication_wayland.cpp
+++ b/src/gui/kernel/qapplication_wayland.cpp
@@ -104,16 +104,14 @@ Q_GUI_EXPORT QWaylandData *qWayland = 0;
void QApplicationPrivate::createEventDispatcher()
{
-#if 0
Q_Q(QApplication);
if (!QEventDispatcherGlib::versionSupported())
qFatal("glib version not supported\n");
eventDispatcher = (q->type() != QApplication::Tty
- ? new QEventDispatcherWayland(q) :
- new QEventDispatcherGlib(q))
-#endif
+ ? new QWaylandEventDispatcherGlib(q)
+ : new QEventDispatcherGlib(q));
}
void QApplicationPrivate::initializeWidgetPaletteHash()
@@ -205,8 +203,12 @@ void qt_init(QApplicationPrivate *priv, int type)
static const EGLint config_attribs[] = {
EGL_SURFACE_TYPE, 0,
- EGL_NO_SURFACE_CAPABLE_MESA, EGL_OPENGL_ES_BIT,
- EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
+ EGL_NO_SURFACE_CAPABLE_MESA, EGL_OPENGL_ES2_BIT,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_NONE
+ };
+ static const EGLint context_attribs[] = {
+ EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
@@ -229,6 +231,11 @@ void qt_init(QApplicationPrivate *priv, int type)
}
dpy = get_typed_display_mesa(EGL_DRM_DISPLAY_TYPE_MESA, (void *) fd);
+ if (!dpy) {
+ close(fd);
+ qFatal("failed to get DRM display\n");
+ }
+
if (!eglInitialize(dpy, &major, &minor)) {
close(fd);
qFatal("failed to initialize EGL\n");
@@ -242,7 +249,7 @@ void qt_init(QApplicationPrivate *priv, int type)
eglBindAPI(EGL_OPENGL_ES_API);
- ctx = eglCreateContext(dpy, config, EGL_NO_CONTEXT, NULL);
+ ctx = eglCreateContext(dpy, config, EGL_NO_CONTEXT, context_attribs);
if (ctx == NULL) {
close(fd);
qFatal("failed to create EGL context\n");
@@ -285,6 +292,9 @@ void qt_init(QApplicationPrivate *priv, int type)
QApplicationPrivate::graphics_system =
QGraphicsSystemFactory::create("opengl");
+ if (!QApplicationPrivate::graphics_system)
+ qFatal("failed to init opengl graphics system\n");
+
QColormap::initialize();
QFont::initialize();
QCursorData::initialize();