diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-02-19 10:57:31 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-02-19 10:57:31 -0800 |
commit | 3001a035439d8134a7d70d796376d1dfbff3cdcd (patch) | |
tree | 343ccdba15a594ff6e50c874a145232753315a30 /core/jni/android_view_Surface.cpp | |
parent | da996f390e17e16f2dfa60e972e7ebc4f868f37e (diff) | |
download | frameworks_base-3001a035439d8134a7d70d796376d1dfbff3cdcd.zip frameworks_base-3001a035439d8134a7d70d796376d1dfbff3cdcd.tar.gz frameworks_base-3001a035439d8134a7d70d796376d1dfbff3cdcd.tar.bz2 |
auto import from //branches/cupcake/...@132276
Diffstat (limited to 'core/jni/android_view_Surface.cpp')
-rw-r--r-- | core/jni/android_view_Surface.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp index f09bd4c..8baaa84 100644 --- a/core/jni/android_view_Surface.cpp +++ b/core/jni/android_view_Surface.cpp @@ -212,7 +212,9 @@ static jobject Surface_lockCanvas(JNIEnv* env, jobject clazz, jobject dirtyRect) dirty.top = env->GetIntField(dirtyRect, ro.t); dirty.right = env->GetIntField(dirtyRect, ro.r); dirty.bottom= env->GetIntField(dirtyRect, ro.b); - dirtyRegion.set(dirty); + if (dirty.left < dirty.right && dirty.top < dirty.bottom) { + dirtyRegion.set(dirty); + } } else { dirtyRegion.set(Rect(0x3FFF,0x3FFF)); } @@ -246,6 +248,14 @@ static jobject Surface_lockCanvas(JNIEnv* env, jobject clazz, jobject dirtyRect) int saveCount = nativeCanvas->save(); env->SetIntField(clazz, so.saveCount, saveCount); + if (dirtyRect) { + Rect bounds(dirtyRegion.bounds()); + env->SetIntField(dirtyRect, ro.l, bounds.left); + env->SetIntField(dirtyRect, ro.t, bounds.top); + env->SetIntField(dirtyRect, ro.r, bounds.right); + env->SetIntField(dirtyRect, ro.b, bounds.bottom); + } + return canvas; } |