[libcamera-devel] [PATCH 3/7] qcam: viewfinder_gl: Hardcode the vertex shader file name

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Sep 16 16:52:50 CEST 2020


The GL renderer uses the same vertex shader for all formats. Hardcode
the file name instead of storing it in a member variable.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/qcam/viewfinder_gl.cpp | 10 +---------
 src/qcam/viewfinder_gl.h   |  3 +--
 2 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp
index 18ebe46fe2f9..76e4a900a25a 100644
--- a/src/qcam/viewfinder_gl.cpp
+++ b/src/qcam/viewfinder_gl.cpp
@@ -101,49 +101,41 @@ bool ViewFinderGL::selectFormat(const libcamera::PixelFormat &format)
 	case libcamera::formats::NV12:
 		horzSubSample_ = 2;
 		vertSubSample_ = 2;
-		vertexShaderSrc_ = ":NV_vertex_shader.glsl";
 		fragmentShaderSrc_ = ":NV_2_planes_UV_f.glsl";
 		break;
 	case libcamera::formats::NV21:
 		horzSubSample_ = 2;
 		vertSubSample_ = 2;
-		vertexShaderSrc_ = ":NV_vertex_shader.glsl";
 		fragmentShaderSrc_ = ":NV_2_planes_VU_f.glsl";
 		break;
 	case libcamera::formats::NV16:
 		horzSubSample_ = 2;
 		vertSubSample_ = 1;
-		vertexShaderSrc_ = ":NV_vertex_shader.glsl";
 		fragmentShaderSrc_ = ":NV_2_planes_UV_f.glsl";
 		break;
 	case libcamera::formats::NV61:
 		horzSubSample_ = 2;
 		vertSubSample_ = 1;
-		vertexShaderSrc_ = ":NV_vertex_shader.glsl";
 		fragmentShaderSrc_ = ":NV_2_planes_VU_f.glsl";
 		break;
 	case libcamera::formats::NV24:
 		horzSubSample_ = 1;
 		vertSubSample_ = 1;
-		vertexShaderSrc_ = ":NV_vertex_shader.glsl";
 		fragmentShaderSrc_ = ":NV_2_planes_UV_f.glsl";
 		break;
 	case libcamera::formats::NV42:
 		horzSubSample_ = 1;
 		vertSubSample_ = 1;
-		vertexShaderSrc_ = ":NV_vertex_shader.glsl";
 		fragmentShaderSrc_ = ":NV_2_planes_VU_f.glsl";
 		break;
 	case libcamera::formats::YUV420:
 		horzSubSample_ = 2;
 		vertSubSample_ = 2;
-		vertexShaderSrc_ = ":NV_vertex_shader.glsl";
 		fragmentShaderSrc_ = ":NV_3_planes_f.glsl";
 		break;
 	case libcamera::formats::YVU420:
 		horzSubSample_ = 2;
 		vertSubSample_ = 2;
-		vertexShaderSrc_ = ":NV_vertex_shader.glsl";
 		fragmentShaderSrc_ = ":NV_3_planes_f.glsl";
 		break;
 	default:
@@ -162,7 +154,7 @@ bool ViewFinderGL::createVertexShader()
 	vertexShader_ = new QOpenGLShader(QOpenGLShader::Vertex, this);
 
 	/* Compile the vertex shader */
-	if (!vertexShader_->compileSourceFile(vertexShaderSrc_)) {
+	if (!vertexShader_->compileSourceFile(":NV_vertex_shader.glsl")) {
 		qWarning() << "[ViewFinderGL]:" << vertexShader_->log();
 		return false;
 	}
diff --git a/src/qcam/viewfinder_gl.h b/src/qcam/viewfinder_gl.h
index 825af1c13cb7..7675d0a06351 100644
--- a/src/qcam/viewfinder_gl.h
+++ b/src/qcam/viewfinder_gl.h
@@ -73,9 +73,8 @@ private:
 	/* Vertex buffer */
 	QOpenGLBuffer vertexBuffer_;
 
-	/* Fragment and Vertex shader file name */
+	/* Fragment shader file name */
 	QString fragmentShaderSrc_;
-	QString vertexShaderSrc_;
 
 	/* YUV texture planars and parameters */
 	GLuint textureUniformU_;
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list