diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/GLES20Canvas.java | 11 | ||||
-rw-r--r-- | core/jni/android_view_GLES20Canvas.cpp | 8 |
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 }; |