QEGLPlatformContext: Add accessors for display and config.
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Wed, 23 May 2012 13:04:16 +0000 (15:04 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 23 May 2012 21:55:43 +0000 (23:55 +0200)
Change-Id: I4a7c033691ed83698ac161c034f795f1ac3b0ade
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
src/platformsupport/eglconvenience/qeglplatformcontext.cpp
src/platformsupport/eglconvenience/qeglplatformcontext_p.h

index 97b4571..d8ee996 100644 (file)
@@ -51,11 +51,9 @@ QEGLPlatformContext::QEGLPlatformContext(const QSurfaceFormat &format, QPlatform
                                          EGLenum eglApi)
     : m_eglDisplay(display)
     , m_eglApi(eglApi)
-    , m_format(format)
+    , m_eglConfig(q_configFromGLFormat(display, format, true))
+    , m_format(q_glFormatFromConfig(display, m_eglConfig))
 {
-    EGLConfig config = q_configFromGLFormat(display, format, true);
-    m_format = q_glFormatFromConfig(display, config);
-
     m_shareContext = share ? static_cast<QEGLPlatformContext *>(share)->m_eglContext : 0;
 
     QVector<EGLint> contextAttrs;
@@ -64,10 +62,10 @@ QEGLPlatformContext::QEGLPlatformContext(const QSurfaceFormat &format, QPlatform
     contextAttrs.append(EGL_NONE);
 
     eglBindAPI(m_eglApi);
-    m_eglContext = eglCreateContext(m_eglDisplay, config, m_shareContext, contextAttrs.constData());
+    m_eglContext = eglCreateContext(m_eglDisplay, m_eglConfig, m_shareContext, contextAttrs.constData());
     if (m_eglContext == EGL_NO_CONTEXT && m_shareContext != EGL_NO_CONTEXT) {
         m_shareContext = 0;
-        m_eglContext = eglCreateContext(m_eglDisplay, config, 0, contextAttrs.constData());
+        m_eglContext = eglCreateContext(m_eglDisplay, m_eglConfig, 0, contextAttrs.constData());
     }
 }
 
@@ -157,3 +155,13 @@ EGLContext QEGLPlatformContext::eglContext() const
 {
     return m_eglContext;
 }
+
+EGLDisplay QEGLPlatformContext::eglDisplay() const
+{
+    return m_eglDisplay;
+}
+
+EGLConfig QEGLPlatformContext::eglConfig() const
+{
+    return m_eglConfig;
+}
index d48d49a..4b7b03c 100644 (file)
@@ -63,6 +63,8 @@ public:
     bool isValid() const { return m_eglContext != EGL_NO_CONTEXT; }
 
     EGLContext eglContext() const;
+    EGLDisplay eglDisplay() const;
+    EGLConfig eglConfig() const;
 
 protected:
     virtual EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface) = 0;
@@ -72,8 +74,8 @@ private:
     EGLContext m_shareContext;
     EGLDisplay m_eglDisplay;
     EGLenum m_eglApi;
-
-    QSurfaceFormat m_format;
+    EGLConfig m_eglConfig;
+    const QSurfaceFormat m_format;
 };
 
 #endif //QEGLPLATFORMCONTEXT_H