Added jni and SurfaceControl methods for native setColor
Added the java method to invoke the setColor method that will
set a color for a layer.
Test: Builds and runs
Change-Id: Ica846fb977d937b48fe890ca70a3879b17cc71f6
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index 33f1c7d..d7d8dd9 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -373,6 +373,16 @@
}
}
+static void nativeSetColor(JNIEnv* env, jclass clazz, jlong nativeObject, jfloatArray fColor) {
+ SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
+ float* floatColors = env->GetFloatArrayElements(fColor, 0);
+ half3 color(floatColors[0], floatColors[1], floatColors[2]);
+ status_t err = ctrl->setColor(color);
+ if (err < 0 && err != NO_INIT) {
+ doThrowIAE(env);
+ }
+}
+
static void nativeSetMatrix(JNIEnv* env, jclass clazz, jlong nativeObject,
jfloat dsdx, jfloat dtdx, jfloat dtdy, jfloat dsdy) {
SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
@@ -814,6 +824,8 @@
(void*)nativeSetTransparentRegionHint },
{"nativeSetAlpha", "(JF)V",
(void*)nativeSetAlpha },
+ {"nativeSetColor", "(J[F)V",
+ (void*)nativeSetColor },
{"nativeSetMatrix", "(JFFFF)V",
(void*)nativeSetMatrix },
{"nativeSetFlags", "(JII)V",