From 29291cb47cdaa72d1142a008fef3301dcb86dfac Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 16 Jun 2022 14:43:24 +0200 Subject: render/texture: drop wlr_texture_is_opaque Whether a texture is opaque or not doesn't depend on the renderer at all, it just depends on the source buffer. Instead of forcing all renderers to implement wlr_texture_impl.is_opaque, let's move this in common code and use the wlr_buffer format to know whether a texture will be opaque. --- include/wlr/render/interface.h | 1 - include/wlr/render/wlr_texture.h | 5 ----- include/wlr/types/wlr_compositor.h | 2 ++ 3 files changed, 2 insertions(+), 6 deletions(-) (limited to 'include/wlr') diff --git a/include/wlr/render/interface.h b/include/wlr/render/interface.h index 4207bd30..7e923353 100644 --- a/include/wlr/render/interface.h +++ b/include/wlr/render/interface.h @@ -54,7 +54,6 @@ void wlr_renderer_init(struct wlr_renderer *renderer, const struct wlr_renderer_impl *impl); struct wlr_texture_impl { - bool (*is_opaque)(struct wlr_texture *texture); bool (*write_pixels)(struct wlr_texture *texture, uint32_t stride, uint32_t width, uint32_t height, uint32_t src_x, uint32_t src_y, uint32_t dst_x, uint32_t dst_y, diff --git a/include/wlr/render/wlr_texture.h b/include/wlr/render/wlr_texture.h index 93fc221c..0f39b8a8 100644 --- a/include/wlr/render/wlr_texture.h +++ b/include/wlr/render/wlr_texture.h @@ -36,11 +36,6 @@ struct wlr_texture *wlr_texture_from_pixels(struct wlr_renderer *renderer, struct wlr_texture *wlr_texture_from_dmabuf(struct wlr_renderer *renderer, struct wlr_dmabuf_attributes *attribs); -/** - * Returns true if this texture is using a fully opaque format. - */ -bool wlr_texture_is_opaque(struct wlr_texture *texture); - /** * Update a texture with raw pixels. The texture must be mutable, and the input * data must have the same pixel format that the texture was created with. diff --git a/include/wlr/types/wlr_compositor.h b/include/wlr/types/wlr_compositor.h index bff6bc83..034b075b 100644 --- a/include/wlr/types/wlr_compositor.h +++ b/include/wlr/types/wlr_compositor.h @@ -162,6 +162,8 @@ struct wlr_surface { int width, height; int buffer_width, buffer_height; } previous; + + bool opaque; }; struct wlr_renderer; -- cgit v1.2.3