diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-06-05 22:26:44 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@digia.com> | 2014-06-05 22:26:44 +0200 |
commit | 0fcce50af009f97efa2a5c5f2c74415c92830962 (patch) | |
tree | f8abf0e4f445fed9480b426b2f856b50911f1210 /src/gui/opengl/qopenglframebufferobject.cpp | |
parent | 74d46a669badc5bf32187686102ca4e644a3c0af (diff) | |
parent | c54f7720d09e7d00f3309736bbeaaa6a81967ec1 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
mkspecs/features/qt.prf
src/plugins/platforms/xcb/qxcbwindow.h
src/tools/qdoc/qdocindexfiles.cpp
src/widgets/kernel/qwidget_qpa.cpp
Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
Diffstat (limited to 'src/gui/opengl/qopenglframebufferobject.cpp')
-rw-r--r-- | src/gui/opengl/qopenglframebufferobject.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gui/opengl/qopenglframebufferobject.cpp b/src/gui/opengl/qopenglframebufferobject.cpp index 9ba429e53a..a6feda8732 100644 --- a/src/gui/opengl/qopenglframebufferobject.cpp +++ b/src/gui/opengl/qopenglframebufferobject.cpp @@ -453,10 +453,19 @@ void QOpenGLFramebufferObjectPrivate::init(QOpenGLFramebufferObject *, const QSi if (samples == 0) { initTexture(texture_target, internal_format, size, mipmap); } else { + GLenum storageFormat = internal_format; +#ifdef GL_RGBA8_OES + // Correct the internal format used by the render buffer when using ANGLE + if (QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGLES && internal_format == GL_RGBA + && strstr((const char *)funcs.glGetString(GL_RENDERER), "ANGLE") != 0) { + storageFormat = GL_RGBA8_OES; + } +#endif + mipmap = false; funcs.glGenRenderbuffers(1, &color_buffer); funcs.glBindRenderbuffer(GL_RENDERBUFFER, color_buffer); - funcs.glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples, internal_format, size.width(), size.height()); + funcs.glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples, storageFormat, size.width(), size.height()); funcs.glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, color_buffer); QT_CHECK_GLERROR(); |