diff options
author | Romain Guy <romainguy@google.com> | 2011-06-02 14:49:28 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-06-02 14:49:28 -0700 |
commit | 4b2711372d7bebd9dc874404ee22fbc9b932fa11 (patch) | |
tree | 70ad4e1ac632236cad6d2e687acda0cbd613eae4 /core/jni | |
parent | f32d43b294c1a988184861d3075e5c9c2139d001 (diff) | |
parent | 6f7d9394ec69e9fb38ca5fc2caf6d2aef6f7442d (diff) | |
download | frameworks_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.cpp | 23 |
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 }, |