mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	render/egl: add wlr_egl_destroy_surface
This commit is contained in:
		
							parent
							
								
									c40f86d27f
								
							
						
					
					
						commit
						eaed6bd03b
					
				
					 7 changed files with 15 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -80,7 +80,7 @@ bool wlr_drm_surface_init(struct wlr_drm_surface *surf,
 | 
			
		|||
		gbm_surface_destroy(surf->gbm);
 | 
			
		||||
	}
 | 
			
		||||
	if (surf->egl) {
 | 
			
		||||
		eglDestroySurface(surf->renderer->egl.display, surf->egl);
 | 
			
		||||
		wlr_egl_destroy_surface(&surf->renderer->egl, surf->egl);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	surf->gbm = gbm_surface_create(renderer->gbm, width, height,
 | 
			
		||||
| 
						 | 
				
			
			@ -118,7 +118,7 @@ void wlr_drm_surface_finish(struct wlr_drm_surface *surf) {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	if (surf->egl) {
 | 
			
		||||
		eglDestroySurface(surf->renderer->egl.display, surf->egl);
 | 
			
		||||
		wlr_egl_destroy_surface(&surf->renderer->egl, surf->egl);
 | 
			
		||||
	}
 | 
			
		||||
	if (surf->gbm) {
 | 
			
		||||
		gbm_surface_destroy(surf->gbm);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,7 @@ static bool output_set_custom_mode(struct wlr_output *wlr_output, int32_t width,
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	if (output->egl_surface) {
 | 
			
		||||
		eglDestroySurface(backend->egl.display, output->egl_surface);
 | 
			
		||||
		wlr_egl_destroy_surface(&backend->egl, output->egl_surface);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	output->egl_surface = egl_create_surface(&backend->egl, width, height);
 | 
			
		||||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ static void output_destroy(struct wlr_output *wlr_output) {
 | 
			
		|||
 | 
			
		||||
	wl_event_source_remove(output->frame_timer);
 | 
			
		||||
 | 
			
		||||
	eglDestroySurface(output->backend->egl.display, output->egl_surface);
 | 
			
		||||
	wlr_egl_destroy_surface(&output->backend->egl, output->egl_surface);
 | 
			
		||||
	free(output);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,7 +184,7 @@ static void wlr_wl_output_destroy(struct wlr_output *wlr_output) {
 | 
			
		|||
		wl_callback_destroy(output->frame_callback);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	eglDestroySurface(output->backend->egl.display, output->surface);
 | 
			
		||||
	wlr_egl_destroy_surface(&output->backend->egl, output->egl_surface);
 | 
			
		||||
	wl_egl_window_destroy(output->egl_window);
 | 
			
		||||
	zxdg_toplevel_v6_destroy(output->xdg_toplevel);
 | 
			
		||||
	zxdg_surface_v6_destroy(output->xdg_surface);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,7 +61,7 @@ static void output_destroy(struct wlr_output *wlr_output) {
 | 
			
		|||
 | 
			
		||||
	wl_list_remove(&output->link);
 | 
			
		||||
	wl_event_source_remove(output->frame_timer);
 | 
			
		||||
	eglDestroySurface(x11->egl.display, output->surf);
 | 
			
		||||
	wlr_egl_destroy_surface(&x11->egl, output->surf);
 | 
			
		||||
	xcb_destroy_window(x11->xcb_conn, output->win);
 | 
			
		||||
	xcb_flush(x11->xcb_conn);
 | 
			
		||||
	free(output);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -188,9 +188,8 @@ static void xdg_popup_configure(void *data, struct xdg_popup *xdg_popup,
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void popup_destroy()
 | 
			
		||||
{
 | 
			
		||||
	eglDestroySurface(egl.display, popup_egl_surface);
 | 
			
		||||
static void popup_destroy() {
 | 
			
		||||
	wlr_egl_destroy_surface(&egl, popup_egl_surface);
 | 
			
		||||
	wl_egl_window_destroy(popup_egl_window);
 | 
			
		||||
	xdg_popup_destroy(popup);
 | 
			
		||||
	wl_surface_destroy(popup_wl_surface);
 | 
			
		||||
| 
						 | 
				
			
			@ -262,7 +261,7 @@ static void layer_surface_configure(void *data,
 | 
			
		|||
 | 
			
		||||
static void layer_surface_closed(void *data,
 | 
			
		||||
		struct zwlr_layer_surface_v1 *surface) {
 | 
			
		||||
	eglDestroySurface(egl.display, egl_surface);
 | 
			
		||||
	wlr_egl_destroy_surface(&egl, egl_surface);
 | 
			
		||||
	wl_egl_window_destroy(egl_window);
 | 
			
		||||
	zwlr_layer_surface_v1_destroy(surface);
 | 
			
		||||
	wl_surface_destroy(wl_surface);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -98,4 +98,6 @@ bool wlr_egl_is_current(struct wlr_egl *egl);
 | 
			
		|||
bool wlr_egl_swap_buffers(struct wlr_egl *egl, EGLSurface surface,
 | 
			
		||||
	pixman_region32_t *damage);
 | 
			
		||||
 | 
			
		||||
void wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -499,3 +499,7 @@ int wlr_egl_get_dmabuf_modifiers(struct wlr_egl *egl,
 | 
			
		|||
	}
 | 
			
		||||
	return num;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface) {
 | 
			
		||||
	eglDestroySurface(egl->display, surface);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue