[vlc-devel] [PATCH v2 00/29] Refactor OpenGL renderers
Alexandre Janniaux
ajanni at videolabs.io
Thu Feb 6 16:37:16 CET 2020
Hi,
LGTM for merging this current version.
Regards,
--
Alexandre Janniaux
Videolabs
On Thu, Feb 06, 2020 at 02:17:29PM +0100, Romain Vimont wrote:
> The rendering of both video pictures and SPU was handled in vout_helper (using
> some data from opengl_tex_converter_t).
>
> In order to separate concerns, implement a main renderer and a SPU renderer as
> separate "components".
>
> As a result of this patchset:
>
> - there is no opengl_tex_converter_t anymore;
> - there is a vlc_gl_renderer (renderer.c) which draws the main pictures;
> - there is a vlc_gl_sub_renderer (sub_renderer.c) which draws the SPU;
> - the vout_helper just delegates _Prepare() and _Display() to the renderers.
>
> Here are the changes from the first version of this patchset:
> - patches 1 and 2 are new, they fix a bug and a typo
> - remove a useless assert in patch 4
> - in patch 5, specify that the function pointer may be NULL
> - patch 10 is new, to be able to call GL_ASSERT_NOERROR in patch 11
> - in patch 12, vout_display_opengl_GetAlignedSize() is replaced by a new
> function vlc_align_pot() in gl_util.h
> - in patch 13, replace GenTextures and DelTextures by GenerateTextures and
> DeleteTextures
> - in patches 15 and 28, copy the copyright header from vout_helper.c to
> renderer.c and sub_renderer.c
> - patch 16 is new, to support semi-transparent SPU
> - patch 29 is new, it just reorders the initialization
>
> Here is a branch containing these patches:
>
> https://code.videolan.org/rom1v/vlc/commits/glrenderer.v2
>
> Romain Vimont (29):
> opengl: apply transform matrix on all planes
> opengl: fix typo
> opengl: move compat definition to gl_common.h
> opengl: make fragment shader local
> opengl: add interop close() callback
> opengl: fix indentation
> opengl: simplify opengl_init_program() call
> opengl: extract interop creation
> opengl: expose interop constructor and destructor
> opengl: move GL_ASSERT_NOERROR macro to header
> opengl: extract subpictures rendering
> opengl: expose GetAlignedSize()
> opengl: expose GenTextures() and DelTextures()
> opengl: move interop functions to interop.c
> opengl: implement subpictures renderer
> opengl: apply subpictures alpha
> opengl: simplify opengl_init_program()
> opengl: make supports_npot local
> opengl: rename tex converter to renderer
> opengl: rename renderer callbacks
> opengl: merge prgm into vlc_gl_renderer
> opengl: move renderer-related fields
> opengl: rename "texture" to "textures"
> opengl: use vlc_gl_renderer when possible
> opengl: refactor renderer creation and destruction
> opengl: move renderer init to CreateRenderer()
> opengl: move renderer clean up to DeleteRenderer()
> opengl: implement renderer
> opengl: reorder renderers initialization
>
> modules/video_output/Makefile.am | 12 +-
> modules/video_output/opengl/converter.h | 111 --
> .../video_output/opengl/fragment_shaders.c | 189 +--
> modules/video_output/opengl/gl_common.h | 40 +
> modules/video_output/opengl/gl_util.h | 37 +
> modules/video_output/opengl/internal.h | 4 +-
> modules/video_output/opengl/interop.c | 137 ++
> modules/video_output/opengl/interop.h | 35 +-
> modules/video_output/opengl/interop_android.c | 6 +-
> modules/video_output/opengl/interop_cvpx.c | 6 +-
> modules/video_output/opengl/interop_sw.c | 33 +-
> modules/video_output/opengl/interop_vaapi.c | 6 +-
> modules/video_output/opengl/interop_vdpau.c | 8 +-
> modules/video_output/opengl/renderer.c | 1037 ++++++++++++
> modules/video_output/opengl/renderer.h | 204 +++
> modules/video_output/opengl/sub_renderer.c | 474 ++++++
> modules/video_output/opengl/sub_renderer.h | 79 +
> modules/video_output/opengl/vout_helper.c | 1445 +----------------
> modules/video_output/opengl/vout_helper.h | 2 +-
> 19 files changed, 2210 insertions(+), 1655 deletions(-)
> delete mode 100644 modules/video_output/opengl/converter.h
> create mode 100644 modules/video_output/opengl/gl_util.h
> create mode 100644 modules/video_output/opengl/renderer.c
> create mode 100644 modules/video_output/opengl/renderer.h
> create mode 100644 modules/video_output/opengl/sub_renderer.c
> create mode 100644 modules/video_output/opengl/sub_renderer.h
>
> --
> 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