summaryrefslogtreecommitdiffstats
path: root/opengl/include
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-05-04 19:29:25 -0700
committerMathias Agopian <mathias@google.com>2009-05-07 15:07:33 -0700
commitdf3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc (patch)
tree2456c7861be6b9ee4b8f87fe086acb9a2b132b3a /opengl/include
parentaa8c0ff7a36b4840dcf3e72c9696b86d192c4314 (diff)
downloadframeworks_native-df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc.zip
frameworks_native-df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc.tar.gz
frameworks_native-df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc.tar.bz2
created an new EGL extension called ANDROID_swap_rectangle
ANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing. However, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.
Diffstat (limited to 'opengl/include')
-rw-r--r--opengl/include/EGL/eglext.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/opengl/include/EGL/eglext.h b/opengl/include/EGL/eglext.h
index 25cfcb8..335b0b0 100644
--- a/opengl/include/EGL/eglext.h
+++ b/opengl/include/EGL/eglext.h
@@ -131,6 +131,18 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGL
/* Interfaces defined by EGL_KHR_image above */
#endif
+
+#ifndef EGL_ANDROID_swap_rectangle
+#define EGL_ANDROID_swap_rectangle 1
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSetSwapRectangleANDROID (EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height);
+#endif /* EGL_EGLEXT_PROTOTYPES */
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSWAPRECTANGLEANDROIDPROC) (EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height);
+#endif
+
+
+
+
#ifdef __cplusplus
}
#endif