[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