summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/java/android/view/GLES20Canvas.java11
-rw-r--r--core/jni/android_view_GLES20Canvas.cpp8
2 files changed, 19 insertions, 0 deletions
diff --git a/core/java/android/view/GLES20Canvas.java b/core/java/android/view/GLES20Canvas.java
index b86455a..6de06d4 100644
--- a/core/java/android/view/GLES20Canvas.java
+++ b/core/java/android/view/GLES20Canvas.java
@@ -994,4 +994,15 @@ class GLES20Canvas extends HardwareCanvas {
int indexOffset, int indexCount, Paint paint) {
// TODO: Implement
}
+
+ @Override
+ public void setOverrideXfermode(PorterDuff.Mode xfermode) {
+ int xfermodeValue = -1;
+ if (xfermode != null) {
+ xfermodeValue = xfermode.nativeInt;
+ }
+ nSetOverrideXfermode(mRenderer, xfermodeValue);
+ }
+
+ private static native void nSetOverrideXfermode(long renderer, int xfermode);
}
diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp
index b023ebd..fe64aba 100644
--- a/core/jni/android_view_GLES20Canvas.cpp
+++ b/core/jni/android_view_GLES20Canvas.cpp
@@ -172,6 +172,12 @@ static jint android_view_GLES20Canvas_getMaxTextureHeight(JNIEnv* env, jobject c
return Caches::getInstance().maxTextureSize;
}
+static void android_view_GLES20Canvas_setOverrideXfermode(JNIEnv* env, jobject clazz,
+ jlong rendererPtr, int xfermode) {
+ DisplayListRenderer* renderer = reinterpret_cast<DisplayListRenderer*>(rendererPtr);
+ renderer->setOverrideXfermode(xfermode);
+}
+
// ----------------------------------------------------------------------------
// State
// ----------------------------------------------------------------------------
@@ -964,6 +970,8 @@ static JNINativeMethod gMethods[] = {
{ "nGetMaximumTextureWidth", "()I", (void*) android_view_GLES20Canvas_getMaxTextureWidth },
{ "nGetMaximumTextureHeight", "()I", (void*) android_view_GLES20Canvas_getMaxTextureHeight },
+ { "nSetOverrideXfermode", "(JI)V", (void*) android_view_GLES20Canvas_setOverrideXfermode },
+
#endif
};