1 #ifndef EXAMPLES_TINYDS_TDM_RENDERER_H
2 #define EXAMPLES_TINYDS_TDM_RENDERER_H
6 #include <tbm_surface_queue.h>
7 #include <tbm_surface.h>
8 #include <wayland-server.h>
10 struct tinyds_renderer
12 tbm_surface_queue_h surface_queue;
14 struct wl_list textures;
16 pthread_t worker_thread;
17 pthread_mutex_t mutex;
20 pixman_image_t *bg_image;
28 struct tinyds_renderer *renderer;
29 pixman_image_t *image;
30 tbm_surface_h surface;
33 struct wl_listener buffer_destroy;
38 bool init_renderer(struct tinyds_renderer *renderer);
39 void fini_renderer(struct tinyds_renderer *renderer);
40 void renderer_set_surface_queue(struct tinyds_renderer *renderer,
42 void renderer_set_bg_color(struct tinyds_renderer *renderer,
43 uint8_t r, uint8_t g, uint8_t b);
44 void renderer_add_texture(struct tinyds_renderer *renderer,
45 tbm_surface_h tbm_surface, int x, int y);
46 void renderer_draw(struct tinyds_renderer *renderer);