QEGLPlatformContext: Add accessors for display and config.

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>
This commit is contained in:
Friedemann Kleint 2012-05-23 15:04:16 +02:00 committed by Qt by Nokia
parent f3ad57e90e
commit 47e8352a00
2 changed files with 18 additions and 8 deletions

View 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;
}

View 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