From cd28637187149a0f90429e63408bacd98033e59f Mon Sep 17 00:00:00 2001 From: nyorain Date: Mon, 15 Oct 2018 23:56:56 +0200 Subject: Remove fmt parameter from wlr_texture_write_pixels It's not allowed to change the format of a texture so remove the confusing parameter. --- include/render/gles2.h | 1 + include/wlr/render/interface.h | 6 +++--- include/wlr/render/wlr_texture.h | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/render/gles2.h b/include/render/gles2.h index f649f3e2..04a73e27 100644 --- a/include/render/gles2.h +++ b/include/render/gles2.h @@ -72,6 +72,7 @@ struct wlr_gles2_texture { enum wlr_gles2_texture_type type; int width, height; bool has_alpha; + uint32_t wl_format; // used to interpret upload data bool inverted_y; // Not set if WLR_GLES2_TEXTURE_GLTEX diff --git a/include/wlr/render/interface.h b/include/wlr/render/interface.h index 63f4265c..905d419f 100644 --- a/include/wlr/render/interface.h +++ b/include/wlr/render/interface.h @@ -66,9 +66,9 @@ struct wlr_texture_impl { void (*get_size)(struct wlr_texture *texture, int *width, int *height); bool (*is_opaque)(struct wlr_texture *texture); bool (*write_pixels)(struct wlr_texture *texture, - enum wl_shm_format wl_fmt, 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, const void *data); + 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, + const void *data); bool (*to_dmabuf)(struct wlr_texture *texture, struct wlr_dmabuf_attributes *attribs); void (*destroy)(struct wlr_texture *texture); diff --git a/include/wlr/render/wlr_texture.h b/include/wlr/render/wlr_texture.h index dbfabfee..2eb5d6aa 100644 --- a/include/wlr/render/wlr_texture.h +++ b/include/wlr/render/wlr_texture.h @@ -55,9 +55,11 @@ bool wlr_texture_is_opaque(struct wlr_texture *texture); /** * Update a texture with raw pixels. The texture must be mutable. + * The given data is interpreted as being in the format the + * texture was created with. */ bool wlr_texture_write_pixels(struct wlr_texture *texture, - enum wl_shm_format wl_fmt, uint32_t stride, uint32_t width, uint32_t height, + 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, const void *data); -- cgit v1.2.3 From cb03a41a3b73e35b3bd6295fc413900874d611bb Mon Sep 17 00:00:00 2001 From: nyorain Date: Tue, 16 Oct 2018 09:35:28 +0200 Subject: Use enum wl_shm_format for gles2 texture formats Also rephrase the write_pixels comment. --- include/render/gles2.h | 4 ++-- include/wlr/render/wlr_texture.h | 7 +++---- render/gles2/texture.c | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/render/gles2.h b/include/render/gles2.h index 04a73e27..7ff2f174 100644 --- a/include/render/gles2.h +++ b/include/render/gles2.h @@ -19,7 +19,7 @@ extern PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOES; struct wlr_gles2_pixel_format { - uint32_t wl_format; + enum wl_shm_format wl_format; GLint gl_format, gl_type; int depth, bpp; bool has_alpha; @@ -72,7 +72,7 @@ struct wlr_gles2_texture { enum wlr_gles2_texture_type type; int width, height; bool has_alpha; - uint32_t wl_format; // used to interpret upload data + enum wl_shm_format wl_format; // used to interpret upload data bool inverted_y; // Not set if WLR_GLES2_TEXTURE_GLTEX diff --git a/include/wlr/render/wlr_texture.h b/include/wlr/render/wlr_texture.h index 2eb5d6aa..f210717a 100644 --- a/include/wlr/render/wlr_texture.h +++ b/include/wlr/render/wlr_texture.h @@ -54,10 +54,9 @@ void wlr_texture_get_size(struct wlr_texture *texture, int *width, int *height); bool wlr_texture_is_opaque(struct wlr_texture *texture); /** - * Update a texture with raw pixels. The texture must be mutable. - * The given data is interpreted as being in the format the - * texture was created with. - */ + * 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. + */ bool wlr_texture_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/render/gles2/texture.c b/render/gles2/texture.c index d32cd458..d035841e 100644 --- a/render/gles2/texture.c +++ b/render/gles2/texture.c @@ -55,8 +55,8 @@ static bool gles2_texture_write_pixels(struct wlr_texture *wlr_texture, return false; } - const struct wlr_gles2_pixel_format *fmt = get_gles2_format_from_wl( - texture->wl_format); + const struct wlr_gles2_pixel_format *fmt = + get_gles2_format_from_wl(texture->wl_format); assert(fmt); // TODO: what if the unpack subimage extension isn't supported? -- cgit v1.2.3