summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@digia.com>2014-08-06 16:08:14 +0200
committerLaszlo Agocs <laszlo.agocs@digia.com>2014-08-07 09:03:32 +0200
commit1b1dd22486155c21fc0d10bb07b7bbb4324c2bf9 (patch)
treee875c62d6a69cb72e76135b68edab364bfcfa0d4 /src/gui
parented7894dd77962fb4e5fa58706bd99f69a3f333c3 (diff)
Do not use GLES3 functions in a GLES2 context
Just like the recent fix for VAOs on iOS, where we might deploy a GLES3-enabled binary on a GLES2-only system, the same issue is potentially present for blitFramebuffer and renderbufferStorageMultisample. Handle this properly. Change-Id: I87268478f1de479dc2c106b46d6e9b84e866fcd5 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/opengl/qopenglfunctions.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/gui/opengl/qopenglfunctions.cpp b/src/gui/opengl/qopenglfunctions.cpp
index f3d3d0b47b..877cc6864d 100644
--- a/src/gui/opengl/qopenglfunctions.cpp
+++ b/src/gui/opengl/qopenglfunctions.cpp
@@ -3195,11 +3195,12 @@ static void QOPENGLF_APIENTRY qopenglfResolveBlitFramebuffer(GLint srcX0, GLint
GLbitfield mask, GLenum filter)
{
#ifdef QT_OPENGL_ES_3
- ::glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
-#else
+ if (QOpenGLContext::currentContext()->format().majorVersion() >= 3)
+ ::glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+ else
+#endif
RESOLVE_FUNC_VOID(ResolveEXT | ResolveANGLE | ResolveNV, BlitFramebuffer)
(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
-#endif
}
static void QOPENGLF_APIENTRY qopenglfResolveRenderbufferStorageMultisample(GLenum target, GLsizei samples,
@@ -3207,11 +3208,12 @@ static void QOPENGLF_APIENTRY qopenglfResolveRenderbufferStorageMultisample(GLen
GLsizei width, GLsizei height)
{
#ifdef QT_OPENGL_ES_3
- ::glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
-#else
+ if (QOpenGLContext::currentContext()->format().majorVersion() >= 3)
+ ::glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+ else
+#endif
RESOLVE_FUNC_VOID(ResolveEXT | ResolveANGLE | ResolveNV, RenderbufferStorageMultisample)
(target, samples, internalFormat, width, height);
-#endif
}
static void QOPENGLF_APIENTRY qopenglfResolveGetBufferSubData(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, GLvoid *data)