From ee88ed8fab9ddd4d470050da7ab5583982e810f2 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Fri, 20 Jun 2014 20:37:20 +0200 Subject: [PATCH] Include the ES3 headers on iOS The config test correctly recognizes if GLES 3.0 is available, however qopengl.h still includes the ES2 headers. This causes issues for the new GLES3 support patches. Change-Id: Ia97f556cc207f7d828918f493fe1adab93cf31ec Reviewed-by: Gunnar Sletta --- src/gui/opengl/qopengl.h | 9 +++++++-- src/gui/opengl/qopenglframebufferobject.cpp | 4 ++++ src/gui/opengl/qopenglfunctions.cpp | 6 ++++++ src/opengl/qglframebufferobject.cpp | 4 ++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/gui/opengl/qopengl.h b/src/gui/opengl/qopengl.h index 09bb6adf9a9..f0f19a5a85f 100644 --- a/src/gui/opengl/qopengl.h +++ b/src/gui/opengl/qopengl.h @@ -67,8 +67,13 @@ #if defined(QT_OPENGL_ES_2) # if defined(Q_OS_MAC) // iOS -# include -# include +# if defined(QT_OPENGL_ES_3) +# include +# include +# else +# include +# include +# endif /* OES_EGL_image_external is not included in the Apple provided diff --git a/src/gui/opengl/qopenglframebufferobject.cpp b/src/gui/opengl/qopenglframebufferobject.cpp index 231e4751117..75f5a9fbfb7 100644 --- a/src/gui/opengl/qopenglframebufferobject.cpp +++ b/src/gui/opengl/qopenglframebufferobject.cpp @@ -88,6 +88,10 @@ QT_BEGIN_NAMESPACE #define GL_DEPTH_COMPONENT24 0x81A6 #endif +#ifndef GL_DEPTH_COMPONENT24_OES +#define GL_DEPTH_COMPONENT24_OES 0x81A6 +#endif + #ifndef GL_READ_FRAMEBUFFER #define GL_READ_FRAMEBUFFER 0x8CA8 #endif diff --git a/src/gui/opengl/qopenglfunctions.cpp b/src/gui/opengl/qopenglfunctions.cpp index a0d17750407..a616ae7a5e8 100644 --- a/src/gui/opengl/qopenglfunctions.cpp +++ b/src/gui/opengl/qopenglfunctions.cpp @@ -370,6 +370,12 @@ static int qt_gl_resolve_extensions() if (ctx->isOpenGLES()) { if (format.majorVersion() >= 2) extensions |= QOpenGLExtensions::GenerateMipmap; + + if (format.majorVersion() >= 3) + extensions |= QOpenGLExtensions::PackedDepthStencil + | QOpenGLExtensions::Depth24 + | QOpenGLExtensions::ElementIndexUint; + if (extensionMatcher.match("GL_OES_mapbuffer")) extensions |= QOpenGLExtensions::MapBuffer; if (extensionMatcher.match("GL_OES_packed_depth_stencil")) diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp index cf8b75ce84c..57498f89298 100644 --- a/src/opengl/qglframebufferobject.cpp +++ b/src/opengl/qglframebufferobject.cpp @@ -94,6 +94,10 @@ extern QImage qt_gl_read_frame_buffer(const QSize&, bool, bool); #define GL_DEPTH_COMPONENT24 0x81A6 #endif +#ifndef GL_DEPTH_COMPONENT24_OES +#define GL_DEPTH_COMPONENT24_OES 0x81A6 +#endif + #ifndef GL_READ_FRAMEBUFFER #define GL_READ_FRAMEBUFFER 0x8CA8 #endif