Please don't complain to me about the performance of thismaster
							parent
							
								
									c3a5e00b6e
								
							
						
					
					
						commit
						4611bba3db
					
				| @ -0,0 +1,7 @@ | ||||
| #ifndef _SWAY_RENDER_H | ||||
| #define _SWAY_RENDER_H | ||||
| #include <wlc/wlc.h> | ||||
| 
 | ||||
| void render_view_borders(wlc_handle view); | ||||
| 
 | ||||
| #endif | ||||
| @ -0,0 +1,35 @@ | ||||
| #include "render.h" | ||||
| #include <cairo.h> | ||||
| #include <stdlib.h> | ||||
| 
 | ||||
| cairo_t *create_cairo_context(int width, int height, int channels, | ||||
| 		cairo_surface_t **surf, unsigned char **buf) { | ||||
| 	cairo_t *cr; | ||||
| 	*buf = calloc(channels * width * height, sizeof(unsigned char)); | ||||
| 	if (!*buf) { | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	*surf = cairo_image_surface_create_for_data(*buf, CAIRO_FORMAT_ARGB32, | ||||
| 		width, height, channels * width); | ||||
| 	if (cairo_surface_status(*surf) != CAIRO_STATUS_SUCCESS) { | ||||
| 		free(*buf); | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	cr = cairo_create(*surf); | ||||
| 	if (cairo_status(cr) != CAIRO_STATUS_SUCCESS) { | ||||
| 		free(*buf); | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	return cr; | ||||
| } | ||||
| 
 | ||||
| void render_view_borders(wlc_handle view) { | ||||
| 	unsigned char *surf_data; | ||||
| 	cairo_surface_t *surf; | ||||
| 	int texture_id; | ||||
| 	const struct wlc_geometry *geo = wlc_view_get_geometry(view); | ||||
| 	cairo_t *cr = create_cairo_context(geo->size.w, geo->size.h, 4, &surf, &surf_data); | ||||
| 	// TODO
 | ||||
| 	cairo_destroy(cr); | ||||
| 	free(surf_data); | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue