render/egl: remove *config_attribs and wlr_egl->config

Breaking changes:

Both "EGLint *config_attribs" and "wlr_egl->config" no longer exist.
This commit is contained in:
Brandon Dowdy 2021-01-28 23:30:36 +00:00 committed by Simon Ser
parent 705b3da7cb
commit 8aa38fe73e
4 changed files with 9 additions and 32 deletions

View File

@ -38,7 +38,6 @@ struct wlr_egl_context {
struct wlr_egl {
EGLDisplay display;
EGLConfig config; // may be EGL_NO_CONFIG
EGLContext context;
EGLDeviceEXT device; // may be EGL_NO_DEVICE_EXT
struct gbm_device *gbm_device;
@ -80,11 +79,8 @@ struct wlr_egl {
/**
* Initializes an EGL context for the given platform and remote display.
* Will attempt to load all possibly required api functions.
*
* If config_attribs is NULL, the EGL config is not created.
*/
struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display,
const EGLint *config_attribs);
struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display);
/**
* Frees all related EGL resources, makes the context not-current and

View File

@ -150,8 +150,7 @@ out:
free(formats);
}
struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display,
const EGLint *config_attribs) {
struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display) {
struct wlr_egl *egl = calloc(1, sizeof(struct wlr_egl));
if (egl == NULL) {
wlr_log_errno(WLR_ERROR, "Allocation failed");
@ -286,25 +285,11 @@ struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display,
check_egl_ext(device_exts_str, "EGL_EXT_device_drm");
}
if (config_attribs != NULL) {
EGLint matched = 0;
if (!eglChooseConfig(egl->display, config_attribs, &egl->config, 1,
&matched)) {
wlr_log(WLR_ERROR, "eglChooseConfig failed");
goto error;
}
if (matched == 0) {
wlr_log(WLR_ERROR, "Failed to match an EGL config");
goto error;
}
} else {
if (!check_egl_ext(display_exts_str, "EGL_KHR_no_config_context") &&
!check_egl_ext(display_exts_str, "EGL_MESA_configless_context")) {
wlr_log(WLR_ERROR, "EGL_KHR_no_config_context or "
"EGL_MESA_configless_context not supported");
goto error;
}
egl->config = EGL_NO_CONFIG_KHR;
if (!check_egl_ext(display_exts_str, "EGL_KHR_no_config_context") &&
!check_egl_ext(display_exts_str, "EGL_MESA_configless_context")) {
wlr_log(WLR_ERROR, "EGL_KHR_no_config_context or "
"EGL_MESA_configless_context not supported");
goto error;
}
wlr_log(WLR_INFO, "Using EGL %d.%d", (int)major, (int)minor);
@ -339,7 +324,7 @@ struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display,
attribs[atti++] = EGL_NONE;
assert(atti <= sizeof(attribs)/sizeof(attribs[0]));
egl->context = eglCreateContext(egl->display, egl->config,
egl->context = eglCreateContext(egl->display, EGL_NO_CONFIG_KHR,
EGL_NO_CONTEXT, attribs);
if (egl->context == EGL_NO_CONTEXT) {
wlr_log(WLR_ERROR, "Failed to create EGL context");

View File

@ -466,9 +466,6 @@ static enum wl_shm_format gles2_preferred_read_format(
glGetRenderbufferParameteriv(GL_RENDERBUFFER,
GL_RENDERBUFFER_ALPHA_SIZE, &alpha_size);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
} else if (renderer->egl->config != EGL_NO_CONFIG_KHR) {
eglGetConfigAttrib(renderer->egl->display, renderer->egl->config,
EGL_ALPHA_SIZE, &alpha_size);
}
const struct wlr_gles2_pixel_format *fmt =

View File

@ -257,8 +257,7 @@ struct wlr_renderer *wlr_renderer_autocreate_with_drm_fd(int drm_fd) {
return NULL;
}
struct wlr_egl *egl = wlr_egl_create(EGL_PLATFORM_GBM_KHR, gbm_device,
NULL);
struct wlr_egl *egl = wlr_egl_create(EGL_PLATFORM_GBM_KHR, gbm_device);
if (egl == NULL) {
wlr_log(WLR_ERROR, "Could not initialize EGL");
gbm_device_destroy(gbm_device);