43 const char *egl_extension_st =
eglQueryString(display, EGL_EXTENSIONS);
44 ARM_COMPUTE_ERROR_ON_MSG((strstr(egl_extension_st,
"EGL_KHR_create_context") ==
nullptr),
"Failed to query EGL_KHR_create_context");
45 ARM_COMPUTE_ERROR_ON_MSG((strstr(egl_extension_st,
"EGL_KHR_surfaceless_context") ==
nullptr),
"Failed to query EGL_KHR_surfaceless_context");
48 const std::array<EGLint, 3> config_attribs =
50 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT_KHR,
65 const std::array<EGLint, 3> attribs =
67 EGL_CONTEXT_CLIENT_VERSION, 3,
78 res =
eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, context);
83 return std::make_tuple(display, context, res);
EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)
EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)
EGLint EGLAPIENTRY eglGetError()
EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api)
char const *EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name)
#define ARM_COMPUTE_ERROR_ON_MSG_VAR(cond, msg,...)
Copyright (c) 2017-2021 Arm Limited.
EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
#define ARM_COMPUTE_UNUSED(...)
To avoid unused variables warnings.
#define ARM_COMPUTE_ERROR_ON_MSG(cond, msg)
EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id)
std::tuple< EGLDisplay, EGLContext, EGLBoolean > create_opengl_display_and_context()
This function creates an OpenGL-ES context and a display.