aboutsummaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-02-16 19:20:00 +0100
committerSimon Ser <contact@emersion.fr>2021-02-23 16:09:26 +0100
commitddfee63055d53b975039e768cdb5ee3ea92ab5ab (patch)
tree0679d0b6a24a411437b58dbc2250c46483f5b7af /render
parent549435aee52164b925716283ce38597de85bc2bf (diff)
render: use DRM formats in wlr_renderer_get_shm_texture_formats
Diffstat (limited to 'render')
-rw-r--r--render/gles2/pixel_format.c9
-rw-r--r--render/gles2/renderer.c4
-rw-r--r--render/wlr_renderer.c13
3 files changed, 13 insertions, 13 deletions
diff --git a/render/gles2/pixel_format.c b/render/gles2/pixel_format.c
index d7711caa..4ca98fe9 100644
--- a/render/gles2/pixel_format.c
+++ b/render/gles2/pixel_format.c
@@ -2,7 +2,6 @@
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include "render/gles2.h"
-#include "render/shm_format.h"
/*
* The DRM formats are little endian while the GL formats are big endian,
@@ -66,11 +65,11 @@ const struct wlr_gles2_pixel_format *get_gles2_format_from_gl(
return NULL;
}
-const enum wl_shm_format *get_gles2_wl_formats(size_t *len) {
- static enum wl_shm_format wl_formats[sizeof(formats) / sizeof(formats[0])];
+const uint32_t *get_gles2_shm_formats(size_t *len) {
+ static uint32_t shm_formats[sizeof(formats) / sizeof(formats[0])];
*len = sizeof(formats) / sizeof(formats[0]);
for (size_t i = 0; i < sizeof(formats) / sizeof(formats[0]); i++) {
- wl_formats[i] = convert_drm_format_to_wl_shm(formats[i].drm_format);
+ shm_formats[i] = formats[i].drm_format;
}
- return wl_formats;
+ return shm_formats;
}
diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c
index fa7bc6c7..d6dc8dbc 100644
--- a/render/gles2/renderer.c
+++ b/render/gles2/renderer.c
@@ -389,9 +389,9 @@ static void gles2_render_ellipse_with_matrix(struct wlr_renderer *wlr_renderer,
pop_gles2_debug(renderer);
}
-static const enum wl_shm_format *gles2_get_shm_texture_formats(
+static const uint32_t *gles2_get_shm_texture_formats(
struct wlr_renderer *wlr_renderer, size_t *len) {
- return get_gles2_wl_formats(len);
+ return get_gles2_shm_formats(len);
}
static bool gles2_resource_is_wl_drm_buffer(struct wlr_renderer *wlr_renderer,
diff --git a/render/wlr_renderer.c b/render/wlr_renderer.c
index 4bbbaf59..cc97c20d 100644
--- a/render/wlr_renderer.c
+++ b/render/wlr_renderer.c
@@ -9,6 +9,7 @@
#include <wlr/types/wlr_matrix.h>
#include <wlr/util/log.h>
#include "util/signal.h"
+#include "render/shm_format.h"
#include "render/wlr_renderer.h"
#include "backend/backend.h"
@@ -151,8 +152,8 @@ void wlr_render_ellipse_with_matrix(struct wlr_renderer *r,
r->impl->render_ellipse_with_matrix(r, color, matrix);
}
-const enum wl_shm_format *wlr_renderer_get_shm_texture_formats(
- struct wlr_renderer *r, size_t *len) {
+const uint32_t *wlr_renderer_get_shm_texture_formats(struct wlr_renderer *r,
+ size_t *len) {
return r->impl->get_shm_texture_formats(r, len);
}
@@ -217,8 +218,7 @@ bool wlr_renderer_init_wl_display(struct wlr_renderer *r,
}
size_t len;
- const enum wl_shm_format *formats =
- wlr_renderer_get_shm_texture_formats(r, &len);
+ const uint32_t *formats = wlr_renderer_get_shm_texture_formats(r, &len);
if (formats == NULL) {
wlr_log(WLR_ERROR, "Failed to initialize shm: cannot get formats");
return false;
@@ -228,7 +228,8 @@ bool wlr_renderer_init_wl_display(struct wlr_renderer *r,
for (size_t i = 0; i < len; ++i) {
// ARGB8888 and XRGB8888 must be supported and are implicitly
// advertised by wl_display_init_shm
- switch (formats[i]) {
+ enum wl_shm_format fmt = convert_drm_format_to_wl_shm(formats[i]);
+ switch (fmt) {
case WL_SHM_FORMAT_ARGB8888:
argb8888 = true;
break;
@@ -236,7 +237,7 @@ bool wlr_renderer_init_wl_display(struct wlr_renderer *r,
xrgb8888 = true;
break;
default:
- wl_display_add_shm_format(wl_display, formats[i]);
+ wl_display_add_shm_format(wl_display, fmt);
}
}
assert(argb8888 && xrgb8888);