diff --git a/imagescrollareagl.cpp b/imagescrollareagl.cpp index 52f2381..8e57155 100644 --- a/imagescrollareagl.cpp +++ b/imagescrollareagl.cpp @@ -225,6 +225,7 @@ void ImageWidget::allocateThumbnails(const QStringList &paths) m_thumbnailTexture->setLayers(std::min((int)paths.size(), m_maxArrayLayers)); m_thumbnailTexture->setAutoMipMapGenerationEnabled(false); m_thumbnailTexture->setWrapMode(QOpenGLTexture::ClampToEdge); + m_thumbnailTexture->setMipLevelRange(0, 0); m_thumbnailTexture->setMinMagFilters(QOpenGLTexture::Linear, QOpenGLTexture::Linear); m_thumbnailTexture->allocateStorage(); } @@ -419,11 +420,14 @@ void ImageWidget::paintGL() } else { + m_vao->bind(); debayer(); - m_vao->bind(); if(m_superpixel && m_debayerTex) + { + f->glActiveTexture(GL_TEXTURE0); f->glBindTexture(GL_TEXTURE_2D, m_debayerTex); + } else m_image->bind(0); @@ -760,7 +764,7 @@ void ImageWidget::debayer() { if(m_debayerTex > 0 || !m_superpixel || !m_bwImg || m_imgWidth < 0)return; - QOpenGLFramebufferObject fbo(m_imgWidth, m_imgHeight, QOpenGLFramebufferObject::NoAttachment, GL_TEXTURE_2D, GL_RGBA16); + QOpenGLFramebufferObject fbo(m_imgWidth, m_imgHeight, QOpenGLFramebufferObject::NoAttachment, GL_TEXTURE_2D, GL_RGBA16F); fbo.bind(); f->glViewport(0, 0, m_imgWidth, m_imgHeight); @@ -774,9 +778,9 @@ void ImageWidget::debayer() f->glViewport(0, 0, m_width, m_height); m_debayerTex = fbo.takeTexture(); f->glBindTexture(GL_TEXTURE_2D, m_debayerTex); - f->glGenerateMipmap(GL_TEXTURE_2D); f->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); f->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + f->glGenerateMipmap(GL_TEXTURE_2D); } void ImageWidget::updateScrollBars()