Fix bug with thumbnails on OpenGL ES
This commit is contained in:
@@ -220,11 +220,12 @@ void ImageWidget::allocateThumbnails(const QStringList &paths)
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_thumbnailTexture->destroy();
|
m_thumbnailTexture->destroy();
|
||||||
m_thumbnailTexture->create();
|
|
||||||
m_thumbnailTexture->setFormat(QOpenGLTexture::RGBA16F);
|
m_thumbnailTexture->setFormat(QOpenGLTexture::RGBA16F);
|
||||||
m_thumbnailTexture->setSize(THUMB_SIZE, THUMB_SIZE);
|
m_thumbnailTexture->setSize(THUMB_SIZE, THUMB_SIZE);
|
||||||
m_thumbnailTexture->setLayers(std::min((int)paths.size(), m_maxArrayLayers));
|
m_thumbnailTexture->setLayers(std::min((int)paths.size(), m_maxArrayLayers));
|
||||||
|
m_thumbnailTexture->setAutoMipMapGenerationEnabled(false);
|
||||||
m_thumbnailTexture->setWrapMode(QOpenGLTexture::ClampToEdge);
|
m_thumbnailTexture->setWrapMode(QOpenGLTexture::ClampToEdge);
|
||||||
|
m_thumbnailTexture->setMinMagFilters(QOpenGLTexture::Linear, QOpenGLTexture::Linear);
|
||||||
m_thumbnailTexture->allocateStorage();
|
m_thumbnailTexture->allocateStorage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -370,6 +371,7 @@ void ImageWidget::paintGL()
|
|||||||
m_thumbnailProgram->setUniformValueArray("mtf_param", m_mtfParams.blackPoint, 3, 3);
|
m_thumbnailProgram->setUniformValueArray("mtf_param", m_mtfParams.blackPoint, 3, 3);
|
||||||
m_thumbnailProgram->setUniformValue("invert", m_invert);
|
m_thumbnailProgram->setUniformValue("invert", m_invert);
|
||||||
m_thumbnailProgram->setUniformValue("offset", 0, m_dy);
|
m_thumbnailProgram->setUniformValue("offset", 0, m_dy);
|
||||||
|
|
||||||
QMatrix4x4 mvp;
|
QMatrix4x4 mvp;
|
||||||
mvp.ortho(rect());
|
mvp.ortho(rect());
|
||||||
m_thumbnailProgram->setUniformValue("mvp", mvp);
|
m_thumbnailProgram->setUniformValue("mvp", mvp);
|
||||||
@@ -591,12 +593,6 @@ void ImageWidget::initializeGL()
|
|||||||
m_image->setMagnificationFilter(QOpenGLTexture::Linear);
|
m_image->setMagnificationFilter(QOpenGLTexture::Linear);
|
||||||
|
|
||||||
m_thumbnailTexture = std::unique_ptr<QOpenGLTexture>(new QOpenGLTexture(QOpenGLTexture::Target2DArray));
|
m_thumbnailTexture = std::unique_ptr<QOpenGLTexture>(new QOpenGLTexture(QOpenGLTexture::Target2DArray));
|
||||||
m_thumbnailTexture->setFormat(QOpenGLTexture::RGBA16_UNorm);
|
|
||||||
m_thumbnailTexture->setSize(THUMB_SIZE, THUMB_SIZE);
|
|
||||||
m_thumbnailTexture->setLayers(1);
|
|
||||||
m_thumbnailTexture->allocateStorage();
|
|
||||||
m_thumbnailTexture->bind(1);
|
|
||||||
m_thumbnailTexture->setMinMagFilters(QOpenGLTexture::Linear, QOpenGLTexture::Linear);
|
|
||||||
|
|
||||||
m_transferOptions = std::unique_ptr<QOpenGLPixelTransferOptions>(new QOpenGLPixelTransferOptions);
|
m_transferOptions = std::unique_ptr<QOpenGLPixelTransferOptions>(new QOpenGLPixelTransferOptions);
|
||||||
m_transferOptions->setAlignment(1);
|
m_transferOptions->setAlignment(1);
|
||||||
|
|||||||
Reference in New Issue
Block a user