diff options
| -rw-r--r-- | core/java/android/view/Surface.java | 2 | ||||
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 9 | ||||
| -rw-r--r-- | core/jni/android_view_Surface.cpp | 50 |
3 files changed, 24 insertions, 37 deletions
diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java index 1011d7a1bb53..a9687683a6ed 100644 --- a/core/java/android/view/Surface.java +++ b/core/java/android/view/Surface.java @@ -511,7 +511,7 @@ public class Surface implements Parcelable { /** @hide */ public native void setFlags(int flags, int mask); /** @hide */ - public native void setActiveRect(Rect activeRect); + public native void setWindowCrop(Rect crop); diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 1fcb2c3561d2..131071917469 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -263,7 +263,6 @@ public final class ViewRootImpl implements ViewParent, final Rect mPendingVisibleInsets = new Rect(); final Rect mPendingContentInsets = new Rect(); final Rect mPendingSystemInsets = new Rect(); - final Rect mActiveRect = new Rect(); final ViewTreeObserver.InternalInsetsInfo mLastGivenInsets = new ViewTreeObserver.InternalInsetsInfo(); @@ -1698,14 +1697,6 @@ public final class ViewRootImpl implements ViewParent, } } - if (activeRectChanged && mSurface.isValid()) { - mActiveRect.set(attachInfo.mSystemInsets.left, attachInfo.mSystemInsets.top, - mWidth - attachInfo.mSystemInsets.right, - mHeight - attachInfo.mSystemInsets.bottom); - //Log.i(TAG, "Active rect " + mWindowAttributes.getTitle() + ": " + mActiveRect); - mSurface.setActiveRect(mActiveRect); - } - final boolean didLayout = layoutRequested && !mStopped; boolean triggerGlobalLayoutListener = didLayout || attachInfo.mRecomputeGlobalAttributes; diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp index 8c4c42abbe9b..5739cbeb1cbf 100644 --- a/core/jni/android_view_Surface.cpp +++ b/core/jni/android_view_Surface.cpp @@ -345,32 +345,6 @@ static inline SkBitmap::Config convertPixelFormat(PixelFormat format) } } -static void Surface_setActiveRect(JNIEnv* env, jobject thiz, jobject activeRect) -{ - const sp<Surface>& surface(getSurface(env, thiz)); - if (!Surface::isValid(surface)) { - doThrowIAE(env); - return; - } - - android_native_rect_t nativeRect; - if (activeRect) { - nativeRect.left = env->GetIntField(activeRect, ro.l); - nativeRect.top = env->GetIntField(activeRect, ro.t); - nativeRect.right = env->GetIntField(activeRect, ro.r); - nativeRect.bottom= env->GetIntField(activeRect, ro.b); - } else { - doThrowIAE(env, "activeRect may not be null"); - return; - } - - int err = native_window_set_active_rect(surface.get(), &nativeRect); - if (err != NO_ERROR) { - doThrowRE(env, String8::format( - "Surface::setActiveRect returned an error: %d", err).string()); - } -} - static jobject Surface_lockCanvas(JNIEnv* env, jobject clazz, jobject dirtyRect) { const sp<Surface>& surface(getSurface(env, clazz)); @@ -773,6 +747,28 @@ static void Surface_setFreezeTint( } } +static void Surface_setWindowCrop(JNIEnv* env, jobject thiz, jobject crop) +{ + const sp<SurfaceControl>& surface(getSurfaceControl(env, thiz)); + if (surface == 0) return; + + Rect nativeCrop; + if (crop) { + nativeCrop.left = env->GetIntField(crop, ro.l); + nativeCrop.top = env->GetIntField(crop, ro.t); + nativeCrop.right = env->GetIntField(crop, ro.r); + nativeCrop.bottom= env->GetIntField(crop, ro.b); + } else { + nativeCrop.left = nativeCrop.top = nativeCrop.right = + nativeCrop.bottom = 0; + } + + status_t err = surface->setCrop(nativeCrop); + if (err<0 && err!=NO_INIT) { + doThrowIAE(env); + } +} + // ---------------------------------------------------------------------------- static void Surface_copyFrom( @@ -915,7 +911,7 @@ static JNINativeMethod gSurfaceMethods[] = { {"readFromParcel", "(Landroid/os/Parcel;)V", (void*)Surface_readFromParcel }, {"writeToParcel", "(Landroid/os/Parcel;I)V", (void*)Surface_writeToParcel }, {"isConsumerRunningBehind", "()Z", (void*)Surface_isConsumerRunningBehind }, - {"setActiveRect", "(Landroid/graphics/Rect;)V", (void*)Surface_setActiveRect }, + {"setWindowCrop", "(Landroid/graphics/Rect;)V", (void*)Surface_setWindowCrop }, }; void nativeClassInit(JNIEnv* env, jclass clazz) |