diff options
author | Kim Motoyoshi Kalland <[email protected]> | 2012-07-03 16:05:13 +0200 |
---|---|---|
committer | Qt by Nokia <[email protected]> | 2012-07-04 11:57:06 +0200 |
commit | 1d7471d93b4463657f2721074f2a63a12ea18752 (patch) | |
tree | 33c6b1db9e0aaf33e375eb36c117b7ef9326de99 /src/quick/items/qquickshadereffectsource.cpp | |
parent | 937bccd0e108e41eee55489d13af86f1683cfb73 (diff) |
Let ShaderEffectSource use same multisample count as GL context.
Change-Id: I9b772a2c405c2fab13dfee3527212117de16e9c0
Reviewed-by: Gunnar Sletta <[email protected]>
Diffstat (limited to 'src/quick/items/qquickshadereffectsource.cpp')
-rw-r--r-- | src/quick/items/qquickshadereffectsource.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/quick/items/qquickshadereffectsource.cpp b/src/quick/items/qquickshadereffectsource.cpp index 71a0aafe4b..3f36c86d0c 100644 --- a/src/quick/items/qquickshadereffectsource.cpp +++ b/src/quick/items/qquickshadereffectsource.cpp @@ -140,7 +140,7 @@ QQuickShaderEffectTexture::QQuickShaderEffectTexture(QQuickItem *shaderSource) , m_live(true) , m_recursive(false) , m_dirtyTexture(true) - , m_multisamplingSupportChecked(false) + , m_multisamplingChecked(false) , m_multisampling(false) , m_grab(false) { @@ -316,11 +316,15 @@ void QQuickShaderEffectTexture::grab() if (!m_fbo || m_fbo->size() != m_size || m_fbo->format().internalTextureFormat() != m_format || (!m_fbo->format().mipmap() && m_mipmap)) { - if (!m_multisamplingSupportChecked) { - QList<QByteArray> extensions = QByteArray((const char *)glGetString(GL_EXTENSIONS)).split(' '); - m_multisampling = extensions.contains("GL_EXT_framebuffer_multisample") - && extensions.contains("GL_EXT_framebuffer_blit"); - m_multisamplingSupportChecked = true; + if (!m_multisamplingChecked) { + if (m_context->glContext()->format().samples() <= 1) { + m_multisampling = false; + } else { + QList<QByteArray> extensions = QByteArray((const char *)glGetString(GL_EXTENSIONS)).split(' '); + m_multisampling = extensions.contains("GL_EXT_framebuffer_multisample") + && extensions.contains("GL_EXT_framebuffer_blit"); + } + m_multisamplingChecked = true; } if (m_multisampling) { // Don't delete the FBO right away in case it is used recursively. @@ -329,7 +333,7 @@ void QQuickShaderEffectTexture::grab() QOpenGLFramebufferObjectFormat format; format.setInternalTextureFormat(m_format); - format.setSamples(8); + format.setSamples(m_context->glContext()->format().samples()); m_secondaryFbo = new QOpenGLFramebufferObject(m_size, format); m_depthStencilBuffer = m_context->depthStencilBufferForFbo(m_secondaryFbo); } else { |