[PATCH 0/9] Groundwork for moving EGL/GL state into gles2-renderer
John Kåre Alsaker
john.kare.alsaker at gmail.com
Sat Sep 15 11:33:58 PDT 2012
This patch series is the groundwork for moving the compositor's EGL and GL state into gles2-renderer.c.
The biggest change is the extension of the gles2-renderer API which the backends use.
This is API is added for 3 reasons:
- To allow the EGL state to be moved to gles2-renderer
- To give gles2-renderer enough events so that it can manage per-output state.
- To remove duplicate EGL code in the backends.
A gles2_renderer_init_without_config call followed by a gles2_renderer_select_config call is a
replacement for the gles2_renderer_init function. This allows backends to select their own EGL config
which currently the Android backend does (which looks like a hack to select a display).
gles2_renderer_use_rgba_shader is used in the wayland backend to select a shader suitable to draw
a border. This could perhaps be replaced with a function which draws the entire border.
It also addes 3 new function pointers to weston_renderer:
- read_pixels: Used for screenshooting and recording to read from the current framebuffer of a output.
- create_surface: Used in conjunction with destroy_surface to create and destroy per-surface renderer state.
- surface_set_color: Used to set a surface to output a solid color.
I'd like to hold off on moving all the EGL and GL state until these patches are merged and Kristian gives
me a freeze on the gles2-renderer.c file since doing that would pretty much touch the entire file.
John Kåre Alsaker (9):
gles2-renderer: Provide an API for backends to use.
gles2-renderer: Adds function to select the RGBA shader for the
compositor: Add a create_surface callback to weston_renderer.
compositor: Add per output and per surface renderer state.
compositor: Change API to better handle mode switches. Also moves
EGLSurface into gles2-renderer.
gles2-renderer: Adds an utility function which calls eglMakeCurrent.
compositor: Add a renderer function to read out pixels and remove the
GL calls from screenshooter.
compositor: Move arrays used by wayland backend rendering into the
compositor: Add a function to set surface color in weston_renderer
and move color state to gles2-renderer.
src/compositor-android.c | 72 ++++-------
src/compositor-drm.c | 87 ++++---------
src/compositor-wayland.c | 88 ++++---------
src/compositor-x11.c | 71 ++---------
src/compositor.c | 12 +-
src/compositor.h | 39 +++++-
src/gles2-renderer.c | 323 ++++++++++++++++++++++++++++++++++++++++++-----
src/screenshooter.c | 27 ++--
8 files changed, 427 insertions(+), 292 deletions(-)
More information about the wayland-devel