summaryrefslogtreecommitdiffstats
path: root/core/jni/android_view_Surface.cpp
diff options
context:
space:
mode:
authorJamie Gennis <jgennis@google.com>2012-04-30 15:35:37 -0700
committerJamie Gennis <jgennis@google.com>2012-04-30 15:35:37 -0700
commitb40696cc216f6a5874189fe83055ddaa7b428ce0 (patch)
tree416b7f50ce00f103cfc2c8a7e83e097452bc44b1 /core/jni/android_view_Surface.cpp
parent459e459ef99f494238128aa4142fe2e97adae35b (diff)
downloadframeworks_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.cpp27
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)