diff options
| author | Simon Zeni <simon@bl4ckb0ne.ca> | 2021-01-17 23:15:36 -0500 | 
|---|---|---|
| committer | Simon Ser <contact@emersion.fr> | 2021-04-17 09:54:39 +0200 | 
| commit | 0d90dddfab48a12a7519c11c6062b717ca3b7581 (patch) | |
| tree | fad73cd0ce24586d5b8a4495910343d59905b010 /include/render | |
| parent | 9de93a866fd4c7a51ffde7c73454dc0c39bf5fb1 (diff) | |
| download | wlroots-0d90dddfab48a12a7519c11c6062b717ca3b7581.tar.xz | |
render: introduce pixman renderer
Diffstat (limited to 'include/render')
| -rw-r--r-- | include/render/pixman.h | 49 | 
1 files changed, 49 insertions, 0 deletions
diff --git a/include/render/pixman.h b/include/render/pixman.h new file mode 100644 index 00000000..f4cab45e --- /dev/null +++ b/include/render/pixman.h @@ -0,0 +1,49 @@ +#ifndef RENDER_PIXMAN_H +#define RENDER_PIXMAN_H + +#include <wlr/render/pixman.h> +#include <wlr/render/wlr_renderer.h> +#include <wlr/render/drm_format_set.h> +#include "render/pixel_format.h" + +struct wlr_pixman_pixel_format { +	uint32_t drm_format; +	pixman_format_code_t pixman_format; +}; + +struct wlr_pixman_buffer; + +struct wlr_pixman_renderer { +	struct wlr_renderer wlr_renderer; + +	struct wl_list buffers; // wlr_pixman_buffer.link + +	struct wlr_pixman_buffer *current_buffer; +	int32_t width, height; + +	struct wlr_drm_format_set drm_formats; +}; + +struct wlr_pixman_buffer { +	struct wlr_buffer *buffer; +	struct wlr_pixman_renderer *renderer; + +	pixman_image_t *image; + +	struct wl_listener buffer_destroy; +	struct wl_list link; // wlr_pixman_renderer.buffers +}; + +struct wlr_pixman_texture { +	struct wlr_texture wlr_texture; +	struct wlr_pixman_renderer *renderer; + +	void *data; +	pixman_image_t *image; +	const struct wlr_pixel_format_info *format; +}; + +pixman_format_code_t get_pixman_format_from_drm(uint32_t fmt); +const uint32_t *get_pixman_drm_formats(size_t *len); + +#endif  | 
