Correctly render BW image
This commit is contained in:
@@ -5,10 +5,12 @@ varying vec2 qt_TexCoord0;
|
|||||||
uniform vec2 scale;
|
uniform vec2 scale;
|
||||||
uniform float a;
|
uniform float a;
|
||||||
uniform int stretch;
|
uniform int stretch;
|
||||||
|
uniform bool bw;
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
vec4 color = texture2D(qt_Texture0, qt_TexCoord0);
|
vec4 color = texture2D(qt_Texture0, qt_TexCoord0);
|
||||||
|
if(bw)color = color.rrra;
|
||||||
color = color*scale.x + scale.y;
|
color = color*scale.x + scale.y;
|
||||||
max(color, vec4(0.0f));
|
max(color, vec4(0.0f));
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ void ImageWidget::setImage(RawImage *image)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_image->generateMipMaps();
|
m_image->generateMipMaps();
|
||||||
|
m_bwImg = true;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,6 +80,7 @@ void ImageWidget::setImage(const QPixmap &pixmap)
|
|||||||
m_image->setMinMagFilters(QOpenGLTexture::LinearMipMapLinear, QOpenGLTexture::Linear);
|
m_image->setMinMagFilters(QOpenGLTexture::LinearMipMapLinear, QOpenGLTexture::Linear);
|
||||||
m_image->setWrapMode(QOpenGLTexture::ClampToBorder);
|
m_image->setWrapMode(QOpenGLTexture::ClampToBorder);
|
||||||
m_image->setBorderColor(0, 0, 0, 0);
|
m_image->setBorderColor(0, 0, 0, 0);
|
||||||
|
m_bwImg = false;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,6 +169,7 @@ void ImageWidget::paintGL()
|
|||||||
m_program->setUniformValue("stretch", m_stretch);
|
m_program->setUniformValue("stretch", m_stretch);
|
||||||
m_program->setUniformValue("a", m_param);
|
m_program->setUniformValue("a", m_param);
|
||||||
m_program->setUniformValue("zoom", 1.0f/m_scale);
|
m_program->setUniformValue("zoom", 1.0f/m_scale);
|
||||||
|
m_program->setUniformValue("bw", m_bwImg);
|
||||||
|
|
||||||
m_image->bind(0);
|
m_image->bind(0);
|
||||||
f->glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
|
f->glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ class ImageWidget : public QOpenGLWidget
|
|||||||
float m_scale;
|
float m_scale;
|
||||||
float m_param;
|
float m_param;
|
||||||
bool m_blockRepaint;
|
bool m_blockRepaint;
|
||||||
|
bool m_bwImg;
|
||||||
public:
|
public:
|
||||||
explicit ImageWidget(QWidget *parent = nullptr);
|
explicit ImageWidget(QWidget *parent = nullptr);
|
||||||
~ImageWidget();
|
~ImageWidget();
|
||||||
|
|||||||
Reference in New Issue
Block a user