simple-dmabuf-egl: make application generic
Don't exit if EGL_KHR_no_config_context extension is not supported Signed-off-by: Veeresh Kadasani <external.vkadasani@jp.adit-jv.com>
This commit is contained in:
parent
3ef098fad1
commit
bdfc11cd1b
|
@ -89,7 +89,9 @@ struct display {
|
||||||
struct {
|
struct {
|
||||||
EGLDisplay display;
|
EGLDisplay display;
|
||||||
EGLContext context;
|
EGLContext context;
|
||||||
|
EGLConfig conf;
|
||||||
bool has_dma_buf_import_modifiers;
|
bool has_dma_buf_import_modifiers;
|
||||||
|
bool has_no_config_context;
|
||||||
PFNEGLQUERYDMABUFMODIFIERSEXTPROC query_dma_buf_modifiers;
|
PFNEGLQUERYDMABUFMODIFIERSEXTPROC query_dma_buf_modifiers;
|
||||||
PFNEGLCREATEIMAGEKHRPROC create_image;
|
PFNEGLCREATEIMAGEKHRPROC create_image;
|
||||||
PFNEGLDESTROYIMAGEKHRPROC destroy_image;
|
PFNEGLDESTROYIMAGEKHRPROC destroy_image;
|
||||||
|
@ -1122,10 +1124,20 @@ display_set_up_egl(struct display *display)
|
||||||
EGL_CONTEXT_CLIENT_VERSION, 2,
|
EGL_CONTEXT_CLIENT_VERSION, 2,
|
||||||
EGL_NONE
|
EGL_NONE
|
||||||
};
|
};
|
||||||
EGLint major, minor;
|
EGLint major, minor, ret, count;
|
||||||
const char *egl_extensions = NULL;
|
const char *egl_extensions = NULL;
|
||||||
const char *gl_extensions = NULL;
|
const char *gl_extensions = NULL;
|
||||||
|
|
||||||
|
EGLint config_attribs[] = {
|
||||||
|
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
|
||||||
|
EGL_RED_SIZE, 1,
|
||||||
|
EGL_GREEN_SIZE, 1,
|
||||||
|
EGL_BLUE_SIZE, 1,
|
||||||
|
EGL_ALPHA_SIZE, 1,
|
||||||
|
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
|
||||||
|
EGL_NONE
|
||||||
|
};
|
||||||
|
|
||||||
display->egl.display =
|
display->egl.display =
|
||||||
weston_platform_get_egl_display(EGL_PLATFORM_GBM_KHR,
|
weston_platform_get_egl_display(EGL_PLATFORM_GBM_KHR,
|
||||||
display->gbm.device, NULL);
|
display->gbm.device, NULL);
|
||||||
|
@ -1159,14 +1171,23 @@ display_set_up_egl(struct display *display)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!weston_check_egl_extension(egl_extensions,
|
if (weston_check_egl_extension(egl_extensions,
|
||||||
"EGL_KHR_no_config_context")) {
|
"EGL_KHR_no_config_context")) {
|
||||||
fprintf(stderr, "EGL_KHR_no_config_context not supported\n");
|
display->egl.has_no_config_context = true;
|
||||||
goto error;
|
}
|
||||||
|
|
||||||
|
if (display->egl.has_no_config_context) {
|
||||||
|
display->egl.conf = EGL_NO_CONFIG_KHR;
|
||||||
|
} else {
|
||||||
|
fprintf(stderr,
|
||||||
|
"Warning: EGL_KHR_no_config_context not supported\n");
|
||||||
|
ret = eglChooseConfig(display->egl.display, config_attribs,
|
||||||
|
&display->egl.conf, 1, &count);
|
||||||
|
assert(ret && count >= 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
display->egl.context = eglCreateContext(display->egl.display,
|
display->egl.context = eglCreateContext(display->egl.display,
|
||||||
EGL_NO_CONFIG_KHR,
|
display->egl.conf,
|
||||||
EGL_NO_CONTEXT,
|
EGL_NO_CONTEXT,
|
||||||
context_attribs);
|
context_attribs);
|
||||||
if (display->egl.context == EGL_NO_CONTEXT) {
|
if (display->egl.context == EGL_NO_CONTEXT) {
|
||||||
|
|
Loading…
Reference in New Issue