summaryrefslogtreecommitdiffstats
path: root/core/jni
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-06-02 14:49:28 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-06-02 14:49:28 -0700
commit4b2711372d7bebd9dc874404ee22fbc9b932fa11 (patch)
tree70ad4e1ac632236cad6d2e687acda0cbd613eae4 /core/jni
parentf32d43b294c1a988184861d3075e5c9c2139d001 (diff)
parent6f7d9394ec69e9fb38ca5fc2caf6d2aef6f7442d (diff)
downloadframeworks_base-4b2711372d7bebd9dc874404ee22fbc9b932fa11.zip
frameworks_base-4b2711372d7bebd9dc874404ee22fbc9b932fa11.tar.gz
frameworks_base-4b2711372d7bebd9dc874404ee22fbc9b932fa11.tar.bz2
Merge "Take advantage of EGL_BUFFER_PRESERVED on IMG."
Diffstat (limited to 'core/jni')
-rw-r--r--core/jni/android_view_GLES20Canvas.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp
index e2832ed..31988f7 100644
--- a/core/jni/android_view_GLES20Canvas.cpp
+++ b/core/jni/android_view_GLES20Canvas.cpp
@@ -91,11 +91,29 @@ static jboolean android_view_GLES20Canvas_preserveBackBuffer(JNIEnv* env, jobjec
eglSurfaceAttrib(display, surface, EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED);
EGLint error = eglGetError();
- RENDERER_LOGD("Could not enable buffer preserved swap behavior (%x)", error);
+ if (error != EGL_SUCCESS) {
+ RENDERER_LOGD("Could not enable buffer preserved swap behavior (%x)", error);
+ }
return error == EGL_SUCCESS;
}
+static jboolean android_view_GLES20Canvas_isBackBufferPreserved(JNIEnv* env, jobject clazz) {
+ EGLDisplay display = eglGetCurrentDisplay();
+ EGLSurface surface = eglGetCurrentSurface(EGL_DRAW);
+ EGLint value;
+
+ eglGetError();
+ eglQuerySurface(display, surface, EGL_SWAP_BEHAVIOR, &value);
+
+ EGLint error = eglGetError();
+ if (error != EGL_SUCCESS) {
+ RENDERER_LOGD("Could not query buffer preserved swap behavior (%x)", error);
+ }
+
+ return error == EGL_SUCCESS && value == EGL_BUFFER_PRESERVED;
+}
+
// ----------------------------------------------------------------------------
// Constructors
// ----------------------------------------------------------------------------
@@ -676,7 +694,8 @@ static JNINativeMethod gMethods[] = {
{ "nIsAvailable", "()Z", (void*) android_view_GLES20Canvas_isAvailable },
#ifdef USE_OPENGL_RENDERER
- { "nPreserveBackBuffer", "()Z", (void*) android_view_GLES20Canvas_preserveBackBuffer },
+ { "nIsBackBufferPreserved", "()Z", (void*) android_view_GLES20Canvas_isBackBufferPreserved },
+ { "nPreserveBackBuffer", "()Z", (void*) android_view_GLES20Canvas_preserveBackBuffer },
{ "nCreateRenderer", "()I", (void*) android_view_GLES20Canvas_createRenderer },
{ "nDestroyRenderer", "(I)V", (void*) android_view_GLES20Canvas_destroyRenderer },