Add wlr_renderer and move quad rendering there

This commit is contained in:
Drew DeVault 2017-06-08 12:02:51 -04:00
parent 211488131f
commit 83f8864f0a
7 changed files with 215 additions and 130 deletions

View file

@ -6,7 +6,8 @@
#include <GLES3/gl3.h>
#include <stdbool.h>
struct wlr_texture {
struct wlr_surface {
bool valid;
GLuint tex_id;
uint32_t format;
int width, height;
@ -17,7 +18,7 @@ struct wlr_shader {
uint32_t format;
GLuint vert;
GLuint program;
struct wl_list link;
struct wlr_shader *next;
};
struct wlr_renderer {

View file

@ -4,10 +4,10 @@
#include <wayland-server-protocol.h>
struct wlr_surface;
struct wlr_surface *wlr_surface_create();
void wlr_surface_attach_pixels(struct wlr_surface *tex, uint32_t format,
struct wlr_surface *wlr_surface_init();
void wlr_surface_attach_pixels(struct wlr_surface *surf, uint32_t format,
int width, int height, const unsigned char *pixels);
void wlr_surface_attach_shm(struct wlr_surface *tex, uint32_t format,
void wlr_surface_attach_shm(struct wlr_surface *surf, uint32_t format,
struct wl_shm_buffer *shm);
// TODO: EGL
void wlr_surface_destroy(struct wlr_surface *tex);
@ -23,7 +23,9 @@ struct wlr_renderer;
struct wlr_renderer *wlr_renderer_init();
void wlr_renderer_set_shader(struct wlr_renderer *renderer,
struct wlr_shader *shader);
bool wlr_render_quad(struct wlr_renderer *renderer, struct wlr_surface *tex,
float x, float y, float width, float height);
bool wlr_render_quad(struct wlr_renderer *renderer,
struct wlr_surface *surf, float (*transform)[16],
float x, float y);
void wlr_renderer_destroy(struct wlr_renderer *renderer);
#endif