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

Message ID 20200916145254.1644-4-laurent.pinchart@ideasonboard.com
State Accepted
Commit 079afd17e7d8775efc809ec9ca4c6a3fcb4d2763
Headers show
Series
  • qcam: Accelerate packed YUV rendering with OpenGL
Related show

Commit Message

Laurent Pinchart Sept. 16, 2020, 2:52 p.m. UTC
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@ideasonboard.com>
---
 src/qcam/viewfinder_gl.cpp | 10 +---------
 src/qcam/viewfinder_gl.h   |  3 +--
 2 files changed, 2 insertions(+), 11 deletions(-)

Comments

Niklas Söderlund Sept. 16, 2020, 3:04 p.m. UTC | #1
Hi Laurent,

Thanks for your work.

On 2020-09-16 17:52:50 +0300, Laurent Pinchart wrote:
> 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@ideasonboard.com>

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

> ---
>  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
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch

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_;