[vlc-devel] [PATCH 09/24] opengl: expose GetAlignedSize()

Alexandre Janniaux ajanni at videolabs.io
Tue Jan 28 16:47:49 CET 2020


Hi,

As far as I can tell, this is not opengl-related right ?
Maybe we can make a more general helper to have PoT
texture size in VLC core in general ?

In bonus, we'll get a much shorter name.

Regards,
--
Alexandre Janniaux
Videolabs

On Mon, Jan 27, 2020 at 09:19:59PM +0100, Romain Vimont wrote:
> This util function will be called from other files.
> ---
>  modules/video_output/opengl/vout_helper.c | 15 ++++-----------
>  modules/video_output/opengl/vout_helper.h |  8 ++++++++
>  2 files changed, 12 insertions(+), 11 deletions(-)
>
> diff --git a/modules/video_output/opengl/vout_helper.c b/modules/video_output/opengl/vout_helper.c
> index 80e47b2948..892da547f0 100644
> --- a/modules/video_output/opengl/vout_helper.c
> +++ b/modules/video_output/opengl/vout_helper.c
> @@ -291,13 +291,6 @@ static void getOrientationTransformMatrix(video_orientation_t orientation,
>      }
>  }
>
> -static inline GLsizei GetAlignedSize(unsigned size)
> -{
> -    /* Return the smallest larger or equal power of 2 */
> -    unsigned align = 1 << (8 * sizeof (unsigned) - clz(size));
> -    return ((align >> 1) == size) ? size : align;
> -}
> -
>  static GLuint BuildVertexShader(const opengl_tex_converter_t *tc,
>                                  unsigned plane_count)
>  {
> @@ -814,8 +807,8 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
>              vgl->tex_width[j]  = w;
>              vgl->tex_height[j] = h;
>          } else {
> -            vgl->tex_width[j]  = GetAlignedSize(w);
> -            vgl->tex_height[j] = GetAlignedSize(h);
> +            vgl->tex_width[j]  = vout_display_opengl_GetAlignedSize(w);
> +            vgl->tex_height[j] = vout_display_opengl_GetAlignedSize(h);
>          }
>      }
>
> @@ -1012,8 +1005,8 @@ vout_display_opengl_PrepareSubPicture(vout_display_opengl_t *vgl,
>              glr->width  = r->fmt.i_visible_width;
>              glr->height = r->fmt.i_visible_height;
>              if (!vgl->supports_npot) {
> -                glr->width  = GetAlignedSize(glr->width);
> -                glr->height = GetAlignedSize(glr->height);
> +                glr->width  = vout_display_opengl_GetAlignedSize(glr->width);
> +                glr->height = vout_display_opengl_GetAlignedSize(glr->height);
>                  glr->tex_width  = (float) r->fmt.i_visible_width  / glr->width;
>                  glr->tex_height = (float) r->fmt.i_visible_height / glr->height;
>              } else {
> diff --git a/modules/video_output/opengl/vout_helper.h b/modules/video_output/opengl/vout_helper.h
> index 72895f8747..a03f50297f 100644
> --- a/modules/video_output/opengl/vout_helper.h
> +++ b/modules/video_output/opengl/vout_helper.h
> @@ -29,6 +29,7 @@
>  #ifndef VLC_OPENGL_VOUT_HELPER_H
>  #define VLC_OPENGL_VOUT_HELPER_H
>
> +#include <vlc_common.h>
>  #include "converter.h"
>
>  #ifdef HAVE_LIBPLACEBO
> @@ -106,4 +107,11 @@ int vout_display_opengl_Prepare(vout_display_opengl_t *vgl,
>  int vout_display_opengl_Display(vout_display_opengl_t *vgl,
>                                  const video_format_t *source);
>
> +static inline GLsizei vout_display_opengl_GetAlignedSize(unsigned size)
> +{
> +    /* Return the smallest larger or equal power of 2 */
> +    unsigned align = 1 << (8 * sizeof (unsigned) - clz(size));
> +    return ((align >> 1) == size) ? size : align;
> +}
> +
>  #endif
> --
> 2.25.0
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list