EGLBoolean EGLAPIENTRY SwapInterval(EGLDisplay dpy, EGLint interval) { EVENT("(EGLDisplay dpy = 0x%0.8p, EGLint interval = %d)", dpy, interval); Display *display = static_cast<Display*>(dpy); Error error = ValidateDisplay(display); if (error.isError()) { SetGlobalError(error); return EGL_FALSE; } Surface *draw_surface = static_cast<Surface*>(GetGlobalDrawSurface()); if (draw_surface == NULL) { SetGlobalError(Error(EGL_BAD_SURFACE)); return EGL_FALSE; } const egl::Config *surfaceConfig = draw_surface->getConfig(); EGLint clampedInterval = std::min(std::max(interval, surfaceConfig->minSwapInterval), surfaceConfig->maxSwapInterval); draw_surface->setSwapInterval(clampedInterval); SetGlobalError(Error(EGL_SUCCESS)); return EGL_TRUE; }
EGLBoolean EGLAPIENTRY SwapInterval(EGLDisplay dpy, EGLint interval) { EVENT("(EGLDisplay dpy = 0x%0.8p, EGLint interval = %d)", dpy, interval); Display *display = static_cast<Display*>(dpy); Error error = ValidateDisplay(display); if (error.isError()) { SetGlobalError(error); return EGL_FALSE; } Surface *draw_surface = static_cast<Surface*>(GetGlobalDrawSurface()); if (draw_surface == NULL) { SetGlobalError(Error(EGL_BAD_SURFACE)); return EGL_FALSE; } draw_surface->setSwapInterval(interval); SetGlobalError(Error(EGL_SUCCESS)); return EGL_TRUE; }
EGLSurface EGLAPIENTRY GetCurrentSurface(EGLint readdraw) { EVENT("(EGLint readdraw = %d)", readdraw); if (readdraw == EGL_READ) { SetGlobalError(Error(EGL_SUCCESS)); return GetGlobalReadSurface(); } else if (readdraw == EGL_DRAW) { SetGlobalError(Error(EGL_SUCCESS)); return GetGlobalDrawSurface(); } else { SetGlobalError(Error(EGL_BAD_PARAMETER)); return EGL_NO_SURFACE; } }