mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	render/egl: remove wlr_egl_{create,destroy}_surface
Breaking changes: wlr_egl_create_surface and wlr_egl_destroy_surface have been removed and no longer exist.
This commit is contained in:
		
							parent
							
								
									34e7f69d69
								
							
						
					
					
						commit
						705b3da7cb
					
				
					 2 changed files with 0 additions and 36 deletions
				
			
		| 
						 | 
					@ -57,7 +57,6 @@ struct wlr_egl {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct {
 | 
						struct {
 | 
				
			||||||
		PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT;
 | 
							PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT;
 | 
				
			||||||
		PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC eglCreatePlatformWindowSurfaceEXT;
 | 
					 | 
				
			||||||
		PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR;
 | 
							PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR;
 | 
				
			||||||
		PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR;
 | 
							PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR;
 | 
				
			||||||
		PFNEGLQUERYWAYLANDBUFFERWL eglQueryWaylandBufferWL;
 | 
							PFNEGLQUERYWAYLANDBUFFERWL eglQueryWaylandBufferWL;
 | 
				
			||||||
| 
						 | 
					@ -100,12 +99,6 @@ void wlr_egl_destroy(struct wlr_egl *egl);
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
bool wlr_egl_bind_display(struct wlr_egl *egl, struct wl_display *local_display);
 | 
					bool wlr_egl_bind_display(struct wlr_egl *egl, struct wl_display *local_display);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * Returns a surface for the given native window
 | 
					 | 
				
			||||||
 * The window must match the remote display the wlr_egl was created with.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
EGLSurface wlr_egl_create_surface(struct wlr_egl *egl, void *window);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Creates an EGL image from the given wl_drm buffer resource.
 | 
					 * Creates an EGL image from the given wl_drm buffer resource.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					@ -164,8 +157,6 @@ void wlr_egl_save_context(struct wlr_egl_context *context);
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
bool wlr_egl_restore_context(struct wlr_egl_context *context);
 | 
					bool wlr_egl_restore_context(struct wlr_egl_context *context);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int wlr_egl_dup_drm_fd(struct wlr_egl *egl);
 | 
					int wlr_egl_dup_drm_fd(struct wlr_egl *egl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								render/egl.c
									
										
									
									
									
								
							
							
						
						
									
										27
									
								
								render/egl.c
									
										
									
									
									
								
							| 
						 | 
					@ -174,8 +174,6 @@ struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	load_egl_proc(&egl->procs.eglGetPlatformDisplayEXT,
 | 
						load_egl_proc(&egl->procs.eglGetPlatformDisplayEXT,
 | 
				
			||||||
		"eglGetPlatformDisplayEXT");
 | 
							"eglGetPlatformDisplayEXT");
 | 
				
			||||||
	load_egl_proc(&egl->procs.eglCreatePlatformWindowSurfaceEXT,
 | 
					 | 
				
			||||||
		"eglCreatePlatformWindowSurfaceEXT");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (check_egl_ext(client_exts_str, "EGL_KHR_debug")) {
 | 
						if (check_egl_ext(client_exts_str, "EGL_KHR_debug")) {
 | 
				
			||||||
		load_egl_proc(&egl->procs.eglDebugMessageControlKHR,
 | 
							load_egl_proc(&egl->procs.eglDebugMessageControlKHR,
 | 
				
			||||||
| 
						 | 
					@ -418,17 +416,6 @@ bool wlr_egl_destroy_image(struct wlr_egl *egl, EGLImage image) {
 | 
				
			||||||
	return egl->procs.eglDestroyImageKHR(egl->display, image);
 | 
						return egl->procs.eglDestroyImageKHR(egl->display, image);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EGLSurface wlr_egl_create_surface(struct wlr_egl *egl, void *window) {
 | 
					 | 
				
			||||||
	assert(egl->procs.eglCreatePlatformWindowSurfaceEXT);
 | 
					 | 
				
			||||||
	EGLSurface surf = egl->procs.eglCreatePlatformWindowSurfaceEXT(
 | 
					 | 
				
			||||||
		egl->display, egl->config, window, NULL);
 | 
					 | 
				
			||||||
	if (surf == EGL_NO_SURFACE) {
 | 
					 | 
				
			||||||
		wlr_log(WLR_ERROR, "Failed to create EGL surface");
 | 
					 | 
				
			||||||
		return EGL_NO_SURFACE;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return surf;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bool wlr_egl_make_current(struct wlr_egl *egl) {
 | 
					bool wlr_egl_make_current(struct wlr_egl *egl) {
 | 
				
			||||||
	if (!eglMakeCurrent(egl->display, EGL_NO_SURFACE, EGL_NO_SURFACE,
 | 
						if (!eglMakeCurrent(egl->display, EGL_NO_SURFACE, EGL_NO_SURFACE,
 | 
				
			||||||
			egl->context)) {
 | 
								egl->context)) {
 | 
				
			||||||
| 
						 | 
					@ -737,20 +724,6 @@ bool wlr_egl_export_image_to_dmabuf(struct wlr_egl *egl, EGLImageKHR image,
 | 
				
			||||||
	return true;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface) {
 | 
					 | 
				
			||||||
	if (!surface) {
 | 
					 | 
				
			||||||
		return true;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (eglGetCurrentContext() == egl->context &&
 | 
					 | 
				
			||||||
			eglGetCurrentSurface(EGL_DRAW) == surface) {
 | 
					 | 
				
			||||||
		// Reset the current EGL surface in case it's the one we're destroying,
 | 
					 | 
				
			||||||
		// otherwise the next wlr_egl_make_current call will result in a
 | 
					 | 
				
			||||||
		// use-after-free.
 | 
					 | 
				
			||||||
		wlr_egl_make_current(egl);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return eglDestroySurface(egl->display, surface);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static bool device_has_name(const drmDevice *device, const char *name) {
 | 
					static bool device_has_name(const drmDevice *device, const char *name) {
 | 
				
			||||||
	for (size_t i = 0; i < DRM_NODE_MAX; i++) {
 | 
						for (size_t i = 0; i < DRM_NODE_MAX; i++) {
 | 
				
			||||||
		if (!(device->available_nodes & (1 << i))) {
 | 
							if (!(device->available_nodes & (1 << i))) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue