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>
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user