diff options
author | Chet Haase <chet@google.com> | 2013-04-19 14:54:34 -0700 |
---|---|---|
committer | Chet Haase <chet@google.com> | 2013-04-19 15:36:37 -0700 |
commit | dd671599bed9d3ca28e2c744e8c224e1e15bc914 (patch) | |
tree | aef0efadc853003d866f3d3d14621261f05d214c /core/jni | |
parent | 9b3ebb124eba3d9f80ae299e0cbcfcd9c0a8653d (diff) | |
download | frameworks_base-dd671599bed9d3ca28e2c744e8c224e1e15bc914.zip frameworks_base-dd671599bed9d3ca28e2c744e8c224e1e15bc914.tar.gz frameworks_base-dd671599bed9d3ca28e2c744e8c224e1e15bc914.tar.bz2 |
Fix quickReject logic to account for setClipChildren() setting
The rendering code optimizes by rejecting drawing operations that
lie outside of the bounds of their views. This works in most
situations, but breaks down when containers have called
setClipChildren(false), because we reject drawing that is outside
of that container, but which should be drawn anyway.
Fix is to pass in the value of that flag to the DisplayList drawing
routines which take that flag into account when deciding whether
to quickReject any particular operation.
Issue #8659277 animation clipping
Change-Id: Ief568e4db01b533a97b3c5ea5ad777c03c0eea71
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_view_GLES20DisplayList.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/core/jni/android_view_GLES20DisplayList.cpp b/core/jni/android_view_GLES20DisplayList.cpp index f7a5302..4ce2e24 100644 --- a/core/jni/android_view_GLES20DisplayList.cpp +++ b/core/jni/android_view_GLES20DisplayList.cpp @@ -84,9 +84,9 @@ static void android_view_GLES20DisplayList_setAnimationMatrix(JNIEnv* env, displayList->setAnimationMatrix(matrix); } -static void android_view_GLES20DisplayList_setClipChildren(JNIEnv* env, - jobject clazz, DisplayList* displayList, jboolean clipChildren) { - displayList->setClipChildren(clipChildren); +static void android_view_GLES20DisplayList_setClipToBounds(JNIEnv* env, + jobject clazz, DisplayList* displayList, jboolean clipToBounds) { + displayList->setClipToBounds(clipToBounds); } static void android_view_GLES20DisplayList_setAlpha(JNIEnv* env, @@ -308,7 +308,7 @@ static JNINativeMethod gMethods[] = { { "nSetCaching", "(IZ)V", (void*) android_view_GLES20DisplayList_setCaching }, { "nSetStaticMatrix", "(II)V", (void*) android_view_GLES20DisplayList_setStaticMatrix }, { "nSetAnimationMatrix", "(II)V", (void*) android_view_GLES20DisplayList_setAnimationMatrix }, - { "nSetClipChildren", "(IZ)V", (void*) android_view_GLES20DisplayList_setClipChildren }, + { "nSetClipToBounds", "(IZ)V", (void*) android_view_GLES20DisplayList_setClipToBounds }, { "nSetAlpha", "(IF)V", (void*) android_view_GLES20DisplayList_setAlpha }, { "nSetHasOverlappingRendering", "(IZ)V", (void*) android_view_GLES20DisplayList_setHasOverlappingRendering }, |