From a9fbb54c7832765b761880ac99b36b98d47383bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= <tomi.korpipaa@digia.com> Date: Thu, 6 Nov 2014 09:07:34 +0200 Subject: [PATCH] Removed obsolete QT_OPENGL_ES_2 flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Check for ES using isOpenGLES() instead. The method was introduced in Qt 5.3. Change-Id: Id21659fcaa1e1854c07df38147ad666207778cb2 Reviewed-by: Pasi Keränen <pasi.keranen@digia.com> --- src/canvas3d.cpp | 27 +++++++++++++++------------ src/canvas3d_p.h | 1 + src/context3d.cpp | 13 +++++++------ src/context3d_p.h | 3 ++- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/canvas3d.cpp b/src/canvas3d.cpp index dad073e..39b458a 100644 --- a/src/canvas3d.cpp +++ b/src/canvas3d.cpp @@ -90,12 +90,9 @@ Canvas::Canvas(QQuickItem *parent): m_glContext(0), m_glContextQt(0), m_contextWindow(0), - #if defined(QT_OPENGL_ES_2) m_maxSamples(0), - #else - m_maxSamples(4), - #endif m_devicePixelRatio(1.0f), + m_isOpenGLES2(false), m_isSoftwareRendered(false), m_isContextAttribsSet(false), m_antialiasFbo(0), @@ -320,12 +317,13 @@ CanvasContext *Canvas::getContext(const QString &type, const QVariantMap &option } QSurfaceFormat surfaceFormat = m_glContextQt->format(); -#if defined(QT_OPENGL_ES_2) - surfaceFormat.setMajorVersion(2); - surfaceFormat.setMinorVersion(0); -#endif - surfaceFormat.setSwapBehavior(QSurfaceFormat::SingleBuffer); - surfaceFormat.setSwapInterval(0); + if (m_isOpenGLES2) { + surfaceFormat.setMajorVersion(2); + surfaceFormat.setMinorVersion(0); + } else { + surfaceFormat.setSwapBehavior(QSurfaceFormat::SingleBuffer); + surfaceFormat.setSwapInterval(0); + } if (m_contextAttribs.antialias() && !m_isSoftwareRendered) surfaceFormat.setSamples(m_maxSamples); @@ -382,8 +380,10 @@ CanvasContext *Canvas::getContext(const QString &type, const QVariantMap &option m_antialiasFbo = new QOpenGLFramebufferObject(m_initialisedSize, antialiasFboFormat); } - m_context3D = new CanvasContext(m_glContext, m_offscreenSurface, m_initialisedSize.width() * m_devicePixelRatio, - m_initialisedSize.height() * m_devicePixelRatio); + m_context3D = new CanvasContext(m_glContext, m_offscreenSurface, + m_initialisedSize.width() * m_devicePixelRatio, + m_initialisedSize.height() * m_devicePixelRatio, + m_isOpenGLES2); m_context3D->setCanvas(this); m_context3D->setDevicePixelRatio(m_devicePixelRatio); m_context3D->setContextAttributes(m_contextAttribs); @@ -513,6 +513,9 @@ QSGNode *Canvas::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data) if (!m_glContextQt) { m_glContextQt = window()->openglContext(); + m_isOpenGLES2 = m_glContextQt->isOpenGLES(); + if (!m_isOpenGLES2) + m_maxSamples = 4; ready(); return 0; } diff --git a/src/canvas3d_p.h b/src/canvas3d_p.h index fec9f80..b5179d3 100644 --- a/src/canvas3d_p.h +++ b/src/canvas3d_p.h @@ -127,6 +127,7 @@ private: int m_maxSamples; float m_devicePixelRatio; + bool m_isOpenGLES2; bool m_isSoftwareRendered; bool m_runningInDesigner; CanvasContextAttributes m_contextAttribs; diff --git a/src/context3d.cpp b/src/context3d.cpp index e7013d6..9a11442 100644 --- a/src/context3d.cpp +++ b/src/context3d.cpp @@ -77,7 +77,7 @@ // Owned by the SG Render Thread! CanvasContext::CanvasContext(QOpenGLContext *context, QSurface *surface, - int width, int height, QObject *parent) : + int width, int height, bool isES2, QObject *parent) : CanvasAbstractObject(parent), QOpenGLFunctions(context), m_unpackFlipYEnabled(false), @@ -95,7 +95,8 @@ CanvasContext::CanvasContext(QOpenGLContext *context, QSurface *surface, m_currentFramebuffer(0), m_map(EnumToStringMap::newInstance()), m_canvas(0), - m_maxVertexAttribs(0) + m_maxVertexAttribs(0), + m_isOpenGLES2(isES2) { int value = 0; glGetIntegerv(MAX_VERTEX_ATTRIBS, &value); @@ -2390,11 +2391,11 @@ void CanvasContext::deleteShader(CanvasShader *shader) */ void CanvasContext::shaderSource(CanvasShader *shader, const QString &shaderSource) { -#if defined(QT_OPENGL_ES_2) - QString modSource = shaderSource; -#else QString modSource = "#version 120 \n#define precision \n"+ shaderSource; -#endif + + if (m_isOpenGLES2) + modSource = shaderSource; + if (m_logAllCalls) qDebug() << "Context3D::" << __FUNCTION__ << "(shader:" << shader << ", shaderSource" diff --git a/src/context3d_p.h b/src/context3d_p.h index 344356e..a18207b 100644 --- a/src/context3d_p.h +++ b/src/context3d_p.h @@ -940,7 +940,7 @@ public: ENUM_AS_PROPERTY(BROWSER_DEFAULT_WEBGL) CanvasContext(QOpenGLContext *context, QSurface *surface, - int width, int height, QObject *parent = 0); + int width, int height, bool isES2, QObject *parent = 0); ~CanvasContext(); void setCanvas(Canvas *canvas); @@ -1231,6 +1231,7 @@ private: Canvas *m_canvas; uint m_maxVertexAttribs; float **m_vertexAttribPointers; + bool m_isOpenGLES2; }; #endif // CONTEXT3D_P_H -- GitLab