From: Kim Motoyoshi Kalland Date: Tue, 3 May 2011 14:50:51 +0000 (+0200) Subject: Code cleanup in QSGShaderEffectTexture. X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=79943c45bf22d28797afcd7a47bc98ad27b171ad;p=konrad%2Fqtdeclarative.git Code cleanup in QSGShaderEffectTexture. --- diff --git a/src/declarative/items/qsgshadereffectsource.cpp b/src/declarative/items/qsgshadereffectsource.cpp index e5b79a6..e7e2482 100644 --- a/src/declarative/items/qsgshadereffectsource.cpp +++ b/src/declarative/items/qsgshadereffectsource.cpp @@ -65,6 +65,7 @@ QSGShaderEffectTexture::QSGShaderEffectTexture(QSGItem *shaderSource) #ifdef QSG_DEBUG_FBO_OVERLAY , m_debugOverlay(0) #endif + , m_mipmap(false) , m_live(true) , m_dirtyTexture(true) , m_multisamplingSupportChecked(false) @@ -95,7 +96,7 @@ bool QSGShaderEffectTexture::hasAlphaChannel() const bool QSGShaderEffectTexture::hasMipmaps() const { - return m_mipmapFiltering; + return m_mipmap; } @@ -114,12 +115,12 @@ bool QSGShaderEffectTexture::updateTexture() return false; } -void QSGShaderEffectTexture::setHasMipmaps(QSGTexture::Filtering filtering) +void QSGShaderEffectTexture::setHasMipmaps(bool mipmap) { - if (filtering == m_mipmapFiltering) + if (mipmap == m_mipmap) return; - m_mipmapFiltering = filtering; - if (filtering != None && m_fbo && !m_fbo->format().mipmap()) + m_mipmap = mipmap; + if (m_mipmap && m_fbo && !m_fbo->format().mipmap()) markDirtyTexture(); } @@ -196,9 +197,8 @@ void QSGShaderEffectTexture::grab() } m_renderer->setRootNode(static_cast(root)); - bool mipmap = m_mipmapFiltering != None; if (!m_fbo || m_fbo->size() != m_size || m_fbo->format().internalTextureFormat() != m_format - || (!m_fbo->format().mipmap() && mipmap)) + || (!m_fbo->format().mipmap() && m_mipmap)) { if (!m_multisamplingSupportChecked) { QList extensions = QByteArray((const char *)glGetString(GL_EXTENSIONS)).split(' '); @@ -217,7 +217,7 @@ void QSGShaderEffectTexture::grab() m_multisampledFbo = new QGLFramebufferObject(m_size, format); format.setAttachment(QGLFramebufferObject::NoAttachment); - format.setMipmap(m_mipmapFiltering); + format.setMipmap(m_mipmap); format.setSamples(0); m_fbo = new QGLFramebufferObject(m_size, format); @@ -226,7 +226,7 @@ void QSGShaderEffectTexture::grab() QGLFramebufferObjectFormat format; format.setAttachment(QGLFramebufferObject::CombinedDepthStencil); format.setInternalTextureFormat(m_format); - format.setMipmap(m_mipmapFiltering); + format.setMipmap(m_mipmap); m_fbo = new QGLFramebufferObject(m_size, format); } } @@ -267,7 +267,7 @@ void QSGShaderEffectTexture::grab() m_renderer->renderScene(BindableFbo(m_fbo)); } - if (mipmap) { + if (m_mipmap) { glBindTexture(GL_TEXTURE_2D, textureId()); ctx->functions()->glGenerateMipmap(GL_TEXTURE_2D); } @@ -461,6 +461,8 @@ static void get_wrap_mode(QSGShaderEffectSource::WrapMode mode, QSGTexture::Wrap *hWrap = *vWrap = QSGTexture::Repeat; break; default: + // QSGShaderEffectSource::ClampToEdge + *hWrap = *vWrap = QSGTexture::ClampToEdge; break; } } @@ -504,12 +506,12 @@ QSGNode *QSGShaderEffectSource::updatePaintNode(QSGNode *oldNode, UpdatePaintNod tex->setSize(textureSize); tex->setLive(m_live); tex->setFormat(GLenum(m_format)); + tex->setHasMipmaps(m_mipmap); QSGTexture::Filtering filtering = QSGItemPrivate::get(this)->smooth ? QSGTexture::Linear : QSGTexture::Nearest; QSGTexture::Filtering mmFiltering = m_mipmap ? filtering : QSGTexture::None; - tex->setHasMipmaps(mmFiltering); node->setMipmapFiltering(mmFiltering); node->setFiltering(filtering); diff --git a/src/declarative/items/qsgshadereffectsource_p.h b/src/declarative/items/qsgshadereffectsource_p.h index 1b6e1b5..5d571ed 100644 --- a/src/declarative/items/qsgshadereffectsource_p.h +++ b/src/declarative/items/qsgshadereffectsource_p.h @@ -82,7 +82,7 @@ public: QSize size() const { return m_size; } void setSize(const QSize &size); - void setHasMipmaps(QSGTexture::Filtering filtering); + void setHasMipmaps(bool mipmap); void bind(); @@ -120,11 +120,7 @@ private: QSGRectangleNode *m_debugOverlay; #endif - uint m_hWrapMode : 1; - uint m_vWrapMode : 1; - uint m_filtering : 2; - uint m_mipmapFiltering : 2; - + uint m_mipmap : 1; uint m_live : 1; uint m_dirtyTexture : 1; uint m_multisamplingSupportChecked : 1;