From 94e6e6334ba20ccc45cfa7e09aa787a00c1d29a0 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Mon, 14 Aug 2017 08:25:26 -0400 Subject: Refactor out wlr_texture_state --- include/render/gles2.h | 5 +++-- include/wlr/render.h | 3 +-- include/wlr/render/interface.h | 19 ++++++++++--------- 3 files changed, 14 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/render/gles2.h b/include/render/gles2.h index 3006872c..57e162c0 100644 --- a/include/render/gles2.h +++ b/include/render/gles2.h @@ -26,8 +26,9 @@ struct wlr_renderer_state { struct wlr_egl *egl; }; -struct wlr_texture_state { - struct wlr_texture *wlr_texture; +struct wlr_gles2_texture { + struct wlr_texture wlr_texture; + struct wlr_egl *egl; GLuint tex_id; const struct pixel_format *pixel_format; diff --git a/include/wlr/render.h b/include/wlr/render.h index 5e9f889e..96b61ddf 100644 --- a/include/wlr/render.h +++ b/include/wlr/render.h @@ -54,11 +54,10 @@ bool wlr_renderer_buffer_is_drm(struct wlr_renderer *renderer, void wlr_renderer_destroy(struct wlr_renderer *renderer); struct wlr_texture_impl; -struct wlr_texture_state; struct wlr_texture { struct wlr_texture_impl *impl; - struct wlr_texture_state *state; + bool valid; uint32_t format; int width, height; diff --git a/include/wlr/render/interface.h b/include/wlr/render/interface.h index 69485e21..b6072bff 100644 --- a/include/wlr/render/interface.h +++ b/include/wlr/render/interface.h @@ -34,25 +34,26 @@ struct wlr_renderer *wlr_renderer_init(struct wlr_renderer_state *state, struct wlr_renderer_impl *impl); struct wlr_texture_impl { - bool (*upload_pixels)(struct wlr_texture_state *state, + bool (*upload_pixels)(struct wlr_texture *texture, enum wl_shm_format format, int stride, int width, int height, const unsigned char *pixels); - bool (*update_pixels)(struct wlr_texture_state *state, + bool (*update_pixels)(struct wlr_texture *texture, enum wl_shm_format format, int stride, int x, int y, int width, int height, const unsigned char *pixels); - bool (*upload_shm)(struct wlr_texture_state *state, uint32_t format, + bool (*upload_shm)(struct wlr_texture *texture, uint32_t format, struct wl_shm_buffer *shm); - bool (*update_shm)(struct wlr_texture_state *surf, uint32_t format, + bool (*update_shm)(struct wlr_texture *texture, uint32_t format, int x, int y, int width, int height, struct wl_shm_buffer *shm); - bool (*upload_drm)(struct wlr_texture_state *state, + bool (*upload_drm)(struct wlr_texture *texture, struct wl_resource *drm_buf); - void (*get_matrix)(struct wlr_texture_state *state, + void (*get_matrix)(struct wlr_texture *state, float (*matrix)[16], const float (*projection)[16], int x, int y); - void (*bind)(struct wlr_texture_state *state); - void (*destroy)(struct wlr_texture_state *state); + void (*bind)(struct wlr_texture *texture); + void (*destroy)(struct wlr_texture *texture); }; -struct wlr_texture *wlr_texture_init(); +void wlr_texture_init(struct wlr_texture *texture, + struct wlr_texture_impl *impl); void wlr_texture_bind(struct wlr_texture *texture); #endif -- cgit v1.2.3