From 0d4dcb25842739d586debb3472ceb90589fe741b Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 1 Oct 2010 15:27:42 -0400 Subject: android: Add Android EGL extensions. --- src/egl/main/eglapi.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'src/egl/main/eglapi.c') diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index efa9e97346..c339e6ebeb 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -916,6 +916,12 @@ eglGetProcAddress(const char *procname) #ifdef EGL_MESA_drm_image { "eglCreateDRMImageMESA", (_EGLProc) eglCreateDRMImageMESA }, { "eglExportDRMImageMESA", (_EGLProc) eglExportDRMImageMESA }, +#endif +#ifdef EGL_ANDROID_swap_rectangle + { "eglSetSwapRectangleANDROID", (_EGLProc) eglSetSwapRectangleANDROID }, +#endif +#ifdef EGL_ANDROID_get_render_buffer + { "eglGetRenderBufferANDROID", (_EGLProc) eglGetRenderBufferANDROID }, #endif { NULL, NULL } }; @@ -1494,3 +1500,49 @@ eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, } #endif + +#ifdef EGL_ANDROID_swap_rectangle + +EGLBoolean EGLAPIENTRY +eglSetSwapRectangleANDROID(EGLDisplay dpy, EGLSurface draw, + EGLint left, EGLint top, + EGLint width, EGLint height) +{ + _EGLDisplay *disp = _eglLockDisplay(dpy); + _EGLSurface *surf = _eglLookupSurface(draw, disp); + _EGLDriver *drv; + EGLBoolean ret; + + _EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv); + + if (!disp->Extensions.ANDROID_swap_rectangle) + RETURN_EGL_EVAL(disp, EGL_FALSE); + + ret = drv->API.SetSwapRectangleANDROID(drv, disp, surf, left, top, width, height); + + RETURN_EGL_EVAL(disp, ret); +} + +#endif + +#ifdef EGL_ANDROID_get_render_buffer + +EGLClientBuffer EGLAPIENTRY +eglGetRenderBufferANDROID(EGLDisplay dpy, EGLSurface draw) +{ + _EGLDisplay *disp = _eglLockDisplay(dpy); + _EGLSurface *surf = _eglLookupSurface(draw, disp); + _EGLDriver *drv; + EGLClientBuffer ret; + + _EGL_CHECK_SURFACE(disp, surf, NULL, drv); + + if (!disp->Extensions.ANDROID_get_render_buffer) + RETURN_EGL_EVAL(disp, NULL); + + ret = drv->API.GetRenderBufferANDROID(drv, disp, surf); + + RETURN_EGL_EVAL(disp, ret); +} + +#endif -- cgit v1.2.3