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
|
@ -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…
Reference in New Issue