diff options
author | emersion <contact@emersion.fr> | 2018-10-31 17:20:27 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2018-11-04 09:00:51 +0100 |
commit | 62d646f2b8b560ce9b64e6a840ac7bdc8d60bbb8 (patch) | |
tree | 93ade3587593f8e17ef1ddaab19b934edc4604e7 /include/render | |
parent | 675cf8457ef3493112def366d7090731172ee872 (diff) |
render/gles2: remove assumptions about supported formats
We were assuming GL_BGRA_EXT was always supported.
We now check that it's supported for rendering. We fail if it isn't because
this format is specified as "always supported" by the Wayland protocol.
We also check if it's supported for reading pixels. A new preferred_read_format
function returns the preferred format that can be used to read pixels. This is
used by the screencopy protocol.
Diffstat (limited to 'include/render')
-rw-r--r-- | include/render/gles2.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/render/gles2.h b/include/render/gles2.h index 7ff2f174..063ed20a 100644 --- a/include/render/gles2.h +++ b/include/render/gles2.h @@ -40,6 +40,11 @@ struct wlr_gles2_renderer { const char *exts_str; struct { + bool read_format_bgra_ext; + bool debug_khr; + } exts; + + struct { struct { GLuint program; GLint proj; @@ -87,7 +92,9 @@ struct wlr_gles2_texture { const struct wlr_gles2_pixel_format *get_gles2_format_from_wl( enum wl_shm_format fmt); -const enum wl_shm_format *get_gles2_formats(size_t *len); +const struct wlr_gles2_pixel_format *get_gles2_format_from_gl( + GLint gl_format, GLint gl_type, bool alpha); +const enum wl_shm_format *get_gles2_wl_formats(size_t *len); struct wlr_gles2_texture *gles2_get_texture( struct wlr_texture *wlr_texture); |