From e4be72d0ca1099173869e4aa1b9604773dcae7b8 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Tue, 22 Jun 2021 16:46:50 +0300 Subject: qcam: viewfinder_gl: Set the vertex shader file name in selectFormat() In preparation to extend the supported formats, make it possible to use different vertex fragment files depending on the format. Make "identity.vert" the default choice. Signed-off-by: Andrey Konovalov Reviewed-by: Paul Elder Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart --- src/qcam/viewfinder_gl.cpp | 5 ++++- src/qcam/viewfinder_gl.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp index a6aa2b44..6d1d80bd 100644 --- a/src/qcam/viewfinder_gl.cpp +++ b/src/qcam/viewfinder_gl.cpp @@ -131,6 +131,9 @@ bool ViewFinderGL::selectFormat(const libcamera::PixelFormat &format) /* Set min/mag filters to GL_LINEAR by default. */ textureMinMagFilters_ = GL_LINEAR; + /* Use identity.vert as the default vertex shader. */ + vertexShaderFile_ = ":identity.vert"; + fragmentShaderDefines_.clear(); switch (format) { @@ -292,7 +295,7 @@ bool ViewFinderGL::createVertexShader() vertexShader_ = std::make_unique(QOpenGLShader::Vertex, this); /* Compile the vertex shader */ - if (!vertexShader_->compileSourceFile(":identity.vert")) { + if (!vertexShader_->compileSourceFile(vertexShaderFile_)) { qWarning() << "[ViewFinderGL]:" << vertexShader_->log(); return false; } diff --git a/src/qcam/viewfinder_gl.h b/src/qcam/viewfinder_gl.h index 508155b1..bce94c87 100644 --- a/src/qcam/viewfinder_gl.h +++ b/src/qcam/viewfinder_gl.h @@ -73,6 +73,7 @@ private: QOpenGLShaderProgram shaderProgram_; std::unique_ptr vertexShader_; std::unique_ptr fragmentShader_; + QString vertexShaderFile_; QString fragmentShaderFile_; QStringList fragmentShaderDefines_; -- cgit v1.2.1