EGLBoolean eglGpuPerfHintQCOM(EGLDisplay dpy, EGLContext ctx, EGLint *attrib_list) { const egl_display_ptr dp = validate_display(dpy); if (!dp) return EGL_FALSE; ContextRef _c(dp.get(), ctx); if ((ctx != EGL_NO_CONTEXT) && !_c.get()) { // ctx is not valid return setError(EGL_BAD_CONTEXT, EGL_FALSE); } egl_context_t * c = NULL; c = get_context(ctx); EGLint result = EGL_FALSE; egl_connection_t* const cnx = &gEGLImpl; if (cnx->dso && cnx->egl.eglGpuPerfHintQCOM) { result = cnx->egl.eglGpuPerfHintQCOM( dp->disp.dpy, c->context, attrib_list); } return result; }
egl_display_ptr validate_display_connection(EGLDisplay dpy, egl_connection_t*& cnx) { cnx = NULL; egl_display_ptr dp = validate_display(dpy); if (!dp) return dp; cnx = &gEGLImpl; if (cnx->dso == 0) { return setError(EGL_BAD_CONFIG, egl_display_ptr(NULL)); } return dp; }
egl_connection_t* validate_display_config(EGLDisplay dpy, EGLConfig config, egl_display_t const*& dp) { dp = validate_display(dpy); if (!dp) return (egl_connection_t*) NULL; if (intptr_t(config) >= dp->numTotalConfigs) { return setError(EGL_BAD_CONFIG, (egl_connection_t*)NULL); } egl_connection_t* const cnx = &gEGLImpl[dp->configs[intptr_t(config)].impl]; if (cnx->dso == 0) { return setError(EGL_BAD_CONFIG, (egl_connection_t*)NULL); } return cnx; }