EGLSurface EGLAPIENTRY CreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) { EVENT("(EGLDisplay dpy = 0x%0.8p, EGLConfig config = 0x%0.8p, const EGLint *attrib_list = 0x%0.8p)", dpy, config, attrib_list); Display *display = static_cast<Display*>(dpy); Config *configuration = static_cast<Config*>(config); AttributeMap attributes(attrib_list); Error error = ValidateCreatePbufferSurface(display, configuration, attributes); if (error.isError()) { SetGlobalError(error); return EGL_NO_SURFACE; } egl::Surface *surface = nullptr; error = display->createPbufferSurface(configuration, attributes, &surface); if (error.isError()) { SetGlobalError(error); return EGL_NO_SURFACE; } return static_cast<EGLSurface>(surface); }
EGLSurface EGLAPIENTRY CreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) { EVENT( "(EGLDisplay dpy = 0x%0.8p, EGLConfig config = 0x%0.8p, const EGLint *attrib_list = " "0x%0.8p)", dpy, config, attrib_list); Thread *thread = GetCurrentThread(); Display *display = static_cast<Display *>(dpy); Config *configuration = static_cast<Config *>(config); AttributeMap attributes = AttributeMap::CreateFromIntArray(attrib_list); Error error = ValidateCreatePbufferSurface(display, configuration, attributes); if (error.isError()) { thread->setError(error); return EGL_NO_SURFACE; } egl::Surface *surface = nullptr; error = display->createPbufferSurface(configuration, attributes, &surface); if (error.isError()) { thread->setError(error); return EGL_NO_SURFACE; } return static_cast<EGLSurface>(surface); }