aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/render/gles2.h1
-rw-r--r--include/wlr/render/gles2.h2
-rw-r--r--render/gles2/renderer.c8
3 files changed, 11 insertions, 0 deletions
diff --git a/include/render/gles2.h b/include/render/gles2.h
index 817ec62d..858960d5 100644
--- a/include/render/gles2.h
+++ b/include/render/gles2.h
@@ -44,6 +44,7 @@ struct wlr_gles2_renderer {
struct wlr_egl *egl;
+ const char *exts_str;
struct {
bool read_format_bgra_ext;
bool debug_khr;
diff --git a/include/wlr/render/gles2.h b/include/wlr/render/gles2.h
index c53353d3..631b11a2 100644
--- a/include/wlr/render/gles2.h
+++ b/include/wlr/render/gles2.h
@@ -18,6 +18,8 @@ struct wlr_egl;
struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl);
struct wlr_egl *wlr_gles2_renderer_get_egl(struct wlr_renderer *renderer);
+bool wlr_gles2_renderer_check_ext(struct wlr_renderer *renderer,
+ const char *ext);
struct wlr_texture *wlr_gles2_texture_from_pixels(struct wlr_egl *egl,
enum wl_shm_format wl_fmt, uint32_t stride, uint32_t width, uint32_t height,
diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c
index cba338a1..8d197f42 100644
--- a/render/gles2/renderer.c
+++ b/render/gles2/renderer.c
@@ -575,6 +575,8 @@ struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl) {
return NULL;
}
+ renderer->exts_str = exts_str;
+
wlr_log(WLR_INFO, "Using %s", glGetString(GL_VERSION));
wlr_log(WLR_INFO, "GL vendor: %s", glGetString(GL_VENDOR));
wlr_log(WLR_INFO, "GL renderer: %s", glGetString(GL_RENDERER));
@@ -687,3 +689,9 @@ error:
free(renderer);
return NULL;
}
+
+bool wlr_gles2_renderer_check_ext(struct wlr_renderer *wlr_renderer,
+ const char *ext) {
+ struct wlr_gles2_renderer *renderer = gles2_get_renderer(wlr_renderer);
+ return check_gl_ext(renderer->exts_str, ext);
+}