[vlc-devel] [PATCH 2/2] opengl: do not store a copy of fmt in renderer

Romain Vimont rom1v at videolabs.io
Wed Jun 17 21:28:50 CEST 2020


The renderer format is, by definition, the one of its sampler. There is
no need to copy it.
---
 modules/video_output/opengl/renderer.c | 16 +++++++++-------
 modules/video_output/opengl/renderer.h |  2 --
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/modules/video_output/opengl/renderer.c b/modules/video_output/opengl/renderer.c
index 1419927891ca..335ca27e4841 100644
--- a/modules/video_output/opengl/renderer.c
+++ b/modules/video_output/opengl/renderer.c
@@ -347,8 +347,6 @@ vlc_gl_renderer_New(vlc_gl_t *gl, const struct vlc_gl_api *api,
 
     getViewpointMatrixes(renderer, fmt->projection_mode);
 
-    renderer->fmt = *fmt;
-
     /* */
     vt->Disable(GL_BLEND);
     vt->Disable(GL_DEPTH_TEST);
@@ -421,7 +419,8 @@ vlc_gl_renderer_SetViewpoint(struct vlc_gl_renderer *renderer,
         UpdateFOVy(renderer);
         UpdateZ(renderer);
     }
-    getViewpointMatrixes(renderer, renderer->fmt.projection_mode);
+    const video_format_t *fmt = renderer->sampler->fmt;
+    getViewpointMatrixes(renderer, fmt->projection_mode);
 
     return VLC_SUCCESS;
 }
@@ -436,7 +435,9 @@ vlc_gl_renderer_SetWindowAspectRatio(struct vlc_gl_renderer *renderer,
     renderer->f_sar = f_sar;
     UpdateFOVy(renderer);
     UpdateZ(renderer);
-    getViewpointMatrixes(renderer, renderer->fmt.projection_mode);
+
+    const video_format_t *fmt = renderer->sampler->fmt;
+    getViewpointMatrixes(renderer, fmt->projection_mode);
 }
 
 static int BuildSphere(GLfloat **vertexCoord, GLfloat **textureCoord, unsigned *nbVertices,
@@ -680,13 +681,14 @@ static int BuildRectangle(GLfloat **vertexCoord, GLfloat **textureCoord, unsigne
 static int SetupCoords(struct vlc_gl_renderer *renderer)
 {
     const opengl_vtable_t *vt = renderer->vt;
+    const video_format_t *fmt = renderer->sampler->fmt;
 
     GLfloat *vertexCoord, *textureCoord;
     GLushort *indices;
     unsigned nbVertices, nbIndices;
 
     int i_ret;
-    switch (renderer->fmt.projection_mode)
+    switch (fmt->projection_mode)
     {
     case PROJECTION_MODE_RECTANGULAR:
         i_ret = BuildRectangle(&vertexCoord, &textureCoord, &nbVertices,
@@ -697,8 +699,8 @@ static int SetupCoords(struct vlc_gl_renderer *renderer)
                             &indices, &nbIndices);
         break;
     case PROJECTION_MODE_CUBEMAP_LAYOUT_STANDARD:
-        i_ret = BuildCube((float)renderer->fmt.i_cubemap_padding / renderer->fmt.i_width,
-                          (float)renderer->fmt.i_cubemap_padding / renderer->fmt.i_height,
+        i_ret = BuildCube((float)fmt->i_cubemap_padding / fmt->i_width,
+                          (float)fmt->i_cubemap_padding / fmt->i_height,
                           &vertexCoord, &textureCoord, &nbVertices,
                           &indices, &nbIndices);
         break;
diff --git a/modules/video_output/opengl/renderer.h b/modules/video_output/opengl/renderer.h
index af2dbd538ff3..6f4029504fb2 100644
--- a/modules/video_output/opengl/renderer.h
+++ b/modules/video_output/opengl/renderer.h
@@ -79,8 +79,6 @@ struct vlc_gl_renderer
 
     struct vlc_gl_sampler *sampler;
 
-    video_format_t fmt;
-
     unsigned nb_indices;
     GLuint vertex_buffer_object;
     GLuint index_buffer_object;
-- 
2.27.0



More information about the vlc-devel mailing list