[vlc-devel] [PATCH 00/24] Refactor OpenGL renderers

Romain Vimont rom1v at videolabs.io
Mon Jan 27 21:19:50 CET 2020


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.

For your convenience, here is a branch:

    https://code.videolan.org/rom1v/vlc/commits/glrenderer

Romain Vimont (24):
  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: extract subpictures rendering
  opengl: expose GetAlignedSize()
  opengl: expose GenTextures() and DelTextures()
  opengl: move interop functions to interop.c
  opengl: implement subpictures renderer
  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

 modules/video_output/Makefile.am              |    8 +-
 .../video_output/opengl/fragment_shaders.c    |  189 +--
 modules/video_output/opengl/gl_common.h       |   13 +
 modules/video_output/opengl/internal.h        |    4 +-
 modules/video_output/opengl/interop.c         |  137 ++
 modules/video_output/opengl/interop.h         |   25 +-
 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        | 1029 ++++++++++++
 .../opengl/{converter.h => renderer.h}        |  130 +-
 modules/video_output/opengl/sub_renderer.c    |  451 ++++++
 modules/video_output/opengl/sub_renderer.h    |   79 +
 modules/video_output/opengl/vout_helper.c     | 1416 +----------------
 modules/video_output/opengl/vout_helper.h     |   10 +-
 17 files changed, 2017 insertions(+), 1533 deletions(-)
 create mode 100644 modules/video_output/opengl/renderer.c
 rename modules/video_output/opengl/{converter.h => renderer.h} (50%)
 create mode 100644 modules/video_output/opengl/sub_renderer.c
 create mode 100644 modules/video_output/opengl/sub_renderer.h

-- 
2.25.0



More information about the vlc-devel mailing list