Merge pull request #800 from emersion/untie-gles2-renderer-texture

Untie wlr_gles2_renderer and wlr_gles2_texture
This commit is contained in:
Drew DeVault 2018-04-02 10:32:04 -04:00 committed by GitHub
commit 1f4a4a8641
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 60 additions and 33 deletions

View file

@ -10,6 +10,7 @@
#include <string.h>
#include <wlr/backend.h>
#include <wlr/render/egl.h>
#include <wlr/render/gles2.h>
#include <wlr/render/interface.h>
#include <wlr/render/wlr_renderer.h>
#include <wlr/render/wlr_texture.h>
@ -49,7 +50,7 @@ enum wlr_gles2_texture_type {
struct wlr_gles2_texture {
struct wlr_texture wlr_texture;
struct wlr_gles2_renderer *renderer;
struct wlr_egl *egl;
enum wlr_gles2_texture_type type;
int width, height;
bool has_alpha;
@ -68,20 +69,8 @@ struct wlr_gles2_texture {
const struct gles2_pixel_format *gles2_format_from_wl(enum wl_shm_format fmt);
const enum wl_shm_format *gles2_formats(size_t *len);
struct wlr_gles2_renderer *gles2_get_renderer(
struct wlr_renderer *wlr_renderer);
struct wlr_gles2_renderer *gles2_get_renderer_in_context(
struct wlr_renderer *wlr_renderer);
struct wlr_gles2_texture *gles2_get_texture_in_context(
struct wlr_texture *wlr_texture);
struct wlr_texture *gles2_texture_from_pixels(struct wlr_renderer *wlr_renderer,
enum wl_shm_format wl_fmt, uint32_t stride, uint32_t width, uint32_t height,
const void *data);
struct wlr_texture *gles2_texture_from_wl_drm(struct wlr_renderer *wlr_renderer,
struct wl_resource *data);
struct wlr_texture *gles2_texture_from_dmabuf(struct wlr_renderer *wlr_renderer,
struct wlr_dmabuf_buffer_attribs *attribs);
void gles2_push_marker(const char *file, const char *func);
void gles2_pop_marker(void);

View file

@ -93,6 +93,8 @@ bool wlr_egl_destroy_image(struct wlr_egl *egl, EGLImageKHR image);
bool wlr_egl_make_current(struct wlr_egl *egl, EGLSurface surface,
int *buffer_age);
bool wlr_egl_is_current(struct wlr_egl *egl);
bool wlr_egl_swap_buffers(struct wlr_egl *egl, EGLSurface surface,
pixman_region32_t *damage);

View file

@ -8,4 +8,12 @@ struct wlr_egl;
struct wlr_renderer *wlr_gles2_renderer_create(struct wlr_egl *egl);
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,
const void *data);
struct wlr_texture *wlr_gles2_texture_from_wl_drm(struct wlr_egl *egl,
struct wl_resource *data);
struct wlr_texture *wlr_gles2_texture_from_dmabuf(struct wlr_egl *egl,
struct wlr_dmabuf_buffer_attribs *attribs);
#endif