summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/qcam/assets/shader/YUV_2_planes.frag4
-rw-r--r--src/qcam/viewfinder_gl.cpp40
2 files changed, 22 insertions, 22 deletions
diff --git a/src/qcam/assets/shader/YUV_2_planes.frag b/src/qcam/assets/shader/YUV_2_planes.frag
index 125f1c85..254463c0 100644
--- a/src/qcam/assets/shader/YUV_2_planes.frag
+++ b/src/qcam/assets/shader/YUV_2_planes.frag
@@ -26,9 +26,9 @@ void main(void)
yuv.x = texture2D(tex_y, textureOut).r - 0.063;
#if defined(YUV_PATTERN_UV)
yuv.y = texture2D(tex_u, textureOut).r - 0.500;
- yuv.z = texture2D(tex_u, textureOut).g - 0.500;
+ yuv.z = texture2D(tex_u, textureOut).a - 0.500;
#elif defined(YUV_PATTERN_VU)
- yuv.y = texture2D(tex_u, textureOut).g - 0.500;
+ yuv.y = texture2D(tex_u, textureOut).a - 0.500;
yuv.z = texture2D(tex_u, textureOut).r - 0.500;
#else
#error Invalid pattern
diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp
index e7c8620c..add87db8 100644
--- a/src/qcam/viewfinder_gl.cpp
+++ b/src/qcam/viewfinder_gl.cpp
@@ -481,11 +481,11 @@ void ViewFinderGL::doRender()
configureTexture(*textures_[0]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RED,
+ GL_LUMINANCE,
size_.width(),
size_.height(),
0,
- GL_RED,
+ GL_LUMINANCE,
GL_UNSIGNED_BYTE,
data_);
shaderProgram_.setUniformValue(textureUniformY_, 0);
@@ -495,11 +495,11 @@ void ViewFinderGL::doRender()
configureTexture(*textures_[1]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RG,
+ GL_LUMINANCE_ALPHA,
size_.width() / horzSubSample_,
size_.height() / vertSubSample_,
0,
- GL_RG,
+ GL_LUMINANCE_ALPHA,
GL_UNSIGNED_BYTE,
data_ + size_.width() * size_.height());
shaderProgram_.setUniformValue(textureUniformU_, 1);
@@ -511,11 +511,11 @@ void ViewFinderGL::doRender()
configureTexture(*textures_[0]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RED,
+ GL_LUMINANCE,
size_.width(),
size_.height(),
0,
- GL_RED,
+ GL_LUMINANCE,
GL_UNSIGNED_BYTE,
data_);
shaderProgram_.setUniformValue(textureUniformY_, 0);
@@ -525,11 +525,11 @@ void ViewFinderGL::doRender()
configureTexture(*textures_[1]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RED,
+ GL_LUMINANCE,
size_.width() / horzSubSample_,
size_.height() / vertSubSample_,
0,
- GL_RED,
+ GL_LUMINANCE,
GL_UNSIGNED_BYTE,
data_ + size_.width() * size_.height());
shaderProgram_.setUniformValue(textureUniformU_, 1);
@@ -539,11 +539,11 @@ void ViewFinderGL::doRender()
configureTexture(*textures_[2]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RED,
+ GL_LUMINANCE,
size_.width() / horzSubSample_,
size_.height() / vertSubSample_,
0,
- GL_RED,
+ GL_LUMINANCE,
GL_UNSIGNED_BYTE,
data_ + size_.width() * size_.height() * 5 / 4);
shaderProgram_.setUniformValue(textureUniformV_, 2);
@@ -555,11 +555,11 @@ void ViewFinderGL::doRender()
configureTexture(*textures_[0]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RED,
+ GL_LUMINANCE,
size_.width(),
size_.height(),
0,
- GL_RED,
+ GL_LUMINANCE,
GL_UNSIGNED_BYTE,
data_);
shaderProgram_.setUniformValue(textureUniformY_, 0);
@@ -569,11 +569,11 @@ void ViewFinderGL::doRender()
configureTexture(*textures_[2]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RED,
+ GL_LUMINANCE,
size_.width() / horzSubSample_,
size_.height() / vertSubSample_,
0,
- GL_RED,
+ GL_LUMINANCE,
GL_UNSIGNED_BYTE,
data_ + size_.width() * size_.height());
shaderProgram_.setUniformValue(textureUniformV_, 2);
@@ -583,11 +583,11 @@ void ViewFinderGL::doRender()
configureTexture(*textures_[1]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RED,
+ GL_LUMINANCE,
size_.width() / horzSubSample_,
size_.height() / vertSubSample_,
0,
- GL_RED,
+ GL_LUMINANCE,
GL_UNSIGNED_BYTE,
data_ + size_.width() * size_.height() * 5 / 4);
shaderProgram_.setUniformValue(textureUniformU_, 1);
@@ -674,18 +674,18 @@ void ViewFinderGL::doRender()
case libcamera::formats::SRGGB12_CSI2P:
/*
* Raw Bayer 8-bit, and packed raw Bayer 10-bit/12-bit formats
- * are stored in GL_RED texture.
- * The texture width is equal to the stride.
+ * are stored in a GL_LUMINANCE texture. The texture width is
+ * equal to the stride.
*/
glActiveTexture(GL_TEXTURE0);
configureTexture(*textures_[0]);
glTexImage2D(GL_TEXTURE_2D,
0,
- GL_RED,
+ GL_LUMINANCE,
stride_,
size_.height(),
0,
- GL_RED,
+ GL_LUMINANCE,
GL_UNSIGNED_BYTE,
data_);
shaderProgram_.setUniformValue(textureUniformY_, 0);