diff options
author | Jamie Gennis <jgennis@google.com> | 2012-04-30 15:35:37 -0700 |
---|---|---|
committer | Jamie Gennis <jgennis@google.com> | 2012-04-30 15:35:37 -0700 |
commit | b40696cc216f6a5874189fe83055ddaa7b428ce0 (patch) | |
tree | 416b7f50ce00f103cfc2c8a7e83e097452bc44b1 /core/jni/android_view_Surface.cpp | |
parent | 459e459ef99f494238128aa4142fe2e97adae35b (diff) | |
download | frameworks_base-b40696cc216f6a5874189fe83055ddaa7b428ce0.zip frameworks_base-b40696cc216f6a5874189fe83055ddaa7b428ce0.tar.gz frameworks_base-b40696cc216f6a5874189fe83055ddaa7b428ce0.tar.bz2 |
Surface: add JNI plumbing for setActiveRect.
Bug: 6299171
Change-Id: If26e63ebe7def645626af251bed899ff9389f8e5
Diffstat (limited to 'core/jni/android_view_Surface.cpp')
-rw-r--r-- | core/jni/android_view_Surface.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp index a60467b..8c4c42ab 100644 --- a/core/jni/android_view_Surface.cpp +++ b/core/jni/android_view_Surface.cpp @@ -345,6 +345,32 @@ 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)); @@ -889,6 +915,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 }, }; void nativeClassInit(JNIEnv* env, jclass clazz) |