summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-09-13 03:09:52 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-10-04 22:51:45 +0300
commit52f2581709365992ae54430f2b9563269c2fbfce (patch)
treeb5e1d6cefa630fb6ee9fd1b4f73812a342259ae9
parent11abf52a8ac521c40e306cc3113426606dcc3000 (diff)
qcam: viewfinder_gl: Don't store texture IDs in class members
The texture IDs can easily and cheaply be retrieved from the textures, there's no need to store them in class members. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r--src/qcam/viewfinder_gl.cpp23
-rw-r--r--src/qcam/viewfinder_gl.h5
2 files changed, 11 insertions, 17 deletions
diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp
index fbe21dcf..18ebe46f 100644
--- a/src/qcam/viewfinder_gl.cpp
+++ b/src/qcam/viewfinder_gl.cpp
@@ -229,15 +229,12 @@ bool ViewFinderGL::createFragmentShader()
if (!textureV_.isCreated())
textureV_.create();
- id_y_ = textureY_.textureId();
- id_u_ = textureU_.textureId();
- id_v_ = textureV_.textureId();
return true;
}
-void ViewFinderGL::configureTexture(unsigned int id)
+void ViewFinderGL::configureTexture(QOpenGLTexture &texture)
{
- glBindTexture(GL_TEXTURE_2D, id);
+ glBindTexture(GL_TEXTURE_2D, texture.textureId());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
@@ -303,7 +300,7 @@ void ViewFinderGL::doRender()
case libcamera::formats::NV42:
/* Activate texture Y */
glActiveTexture(GL_TEXTURE0);
- configureTexture(id_y_);
+ configureTexture(textureY_);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RED,
@@ -317,7 +314,7 @@ void ViewFinderGL::doRender()
/* Activate texture UV/VU */
glActiveTexture(GL_TEXTURE1);
- configureTexture(id_u_);
+ configureTexture(textureU_);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RG,
@@ -333,7 +330,7 @@ void ViewFinderGL::doRender()
case libcamera::formats::YUV420:
/* Activate texture Y */
glActiveTexture(GL_TEXTURE0);
- configureTexture(id_y_);
+ configureTexture(textureY_);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RED,
@@ -347,7 +344,7 @@ void ViewFinderGL::doRender()
/* Activate texture U */
glActiveTexture(GL_TEXTURE1);
- configureTexture(id_u_);
+ configureTexture(textureU_);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RED,
@@ -361,7 +358,7 @@ void ViewFinderGL::doRender()
/* Activate texture V */
glActiveTexture(GL_TEXTURE2);
- configureTexture(id_v_);
+ configureTexture(textureV_);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RED,
@@ -377,7 +374,7 @@ void ViewFinderGL::doRender()
case libcamera::formats::YVU420:
/* Activate texture Y */
glActiveTexture(GL_TEXTURE0);
- configureTexture(id_y_);
+ configureTexture(textureY_);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RED,
@@ -391,7 +388,7 @@ void ViewFinderGL::doRender()
/* Activate texture V */
glActiveTexture(GL_TEXTURE2);
- configureTexture(id_v_);
+ configureTexture(textureV_);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RED,
@@ -405,7 +402,7 @@ void ViewFinderGL::doRender()
/* Activate texture U */
glActiveTexture(GL_TEXTURE1);
- configureTexture(id_u_);
+ configureTexture(textureU_);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RED,
diff --git a/src/qcam/viewfinder_gl.h b/src/qcam/viewfinder_gl.h
index 69502b7a..825af1c1 100644
--- a/src/qcam/viewfinder_gl.h
+++ b/src/qcam/viewfinder_gl.h
@@ -53,7 +53,7 @@ protected:
private:
bool selectFormat(const libcamera::PixelFormat &format);
- void configureTexture(unsigned int id);
+ void configureTexture(QOpenGLTexture &texture);
bool createFragmentShader();
bool createVertexShader();
void removeShader();
@@ -78,9 +78,6 @@ private:
QString vertexShaderSrc_;
/* YUV texture planars and parameters */
- GLuint id_u_;
- GLuint id_v_;
- GLuint id_y_;
GLuint textureUniformU_;
GLuint textureUniformV_;
GLuint textureUniformY_;