OSDN Git Service

Revert "Add a way to override Xfermode DO NOT MERGE"
authorChris Craik <ccraik@google.com>
Fri, 21 Nov 2014 22:05:33 +0000 (22:05 +0000)
committerChris Craik <ccraik@google.com>
Fri, 21 Nov 2014 22:05:33 +0000 (22:05 +0000)
Feature no longer needed.

bug:18448377

This reverts commit 4678dcc5524258908eadc5fe1e5e1874768967eb.

Change-Id: Ib0a19946e966a54857165555827b5fa7b34b6bea

core/java/android/view/GLES20Canvas.java
core/jni/android_view_GLES20Canvas.cpp
graphics/java/android/graphics/Canvas.java
libs/hwui/DisplayListRenderer.cpp
libs/hwui/DisplayListRenderer.h

index 6de06d4..b86455a 100644 (file)
@@ -994,15 +994,4 @@ 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);
 }
index fe64aba..b023ebd 100644 (file)
@@ -172,12 +172,6 @@ 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
 // ----------------------------------------------------------------------------
@@ -970,8 +964,6 @@ 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
 };
 
index 6baf1aa..f45c0cb 100644 (file)
@@ -250,15 +250,6 @@ public class Canvas {
     public void insertInorderBarrier() {}
 
     /**
-     * Set a transfer mode that overrides any transfer modes
-     * in paints used for drawing. Pass null to disable this
-     * override. Only implemented in GLES20Canvas.
-     *
-     * @hide
-     */
-    public void setOverrideXfermode(@Nullable PorterDuff.Mode xfermode) {}
-
-    /**
      * Return true if the device that the current layer draws into is opaque
      * (i.e. does not support per-pixel alpha).
      *
index 3ec5e40..c2cb76e 100644 (file)
@@ -39,7 +39,6 @@ DisplayListRenderer::DisplayListRenderer()
     , mTranslateY(0.0f)
     , mDeferredBarrierType(kBarrier_None)
     , mHighContrastText(false)
-    , mOverrideXfermode(-1)
     , mRestoreSaveCount(-1) {
 }
 
index f93a798..2cc2be3 100644 (file)
@@ -20,7 +20,6 @@
 #include <SkMatrix.h>
 #include <SkPaint.h>
 #include <SkPath.h>
-#include <SkPorterDuff.h>
 #include <cutils/compiler.h>
 
 #include "DisplayListLogBuffer.h"
@@ -162,15 +161,6 @@ public:
     void setHighContrastText(bool highContrastText) {
         mHighContrastText = highContrastText;
     }
-
-    void setOverrideXfermode(int xfermode) {
-        if (xfermode != -1) {
-            SkPorterDuff::Mode porterDuffMode = static_cast<SkPorterDuff::Mode>(xfermode);
-            xfermode = SkPorterDuff::ToXfermodeMode(porterDuffMode);
-        }
-        mOverrideXfermode = xfermode;
-    };
-
 private:
     enum DeferredBarrierType {
         kBarrier_None,
@@ -230,26 +220,18 @@ private:
     inline const SkPaint* refPaint(const SkPaint* paint) {
         if (!paint) return NULL;
 
-        const SkPaint* paintCopy;
-
-        if (mOverrideXfermode != -1) {
-            SkPaint* overriddenPaint = copyPaint(paint);
-            overriddenPaint->setXfermodeMode(static_cast<SkXfermode::Mode>(mOverrideXfermode));
-            paintCopy = overriddenPaint;
-        } else {
-            paintCopy = mPaintMap.valueFor(paint);
-            if (paintCopy == NULL
-                    || paintCopy->getGenerationID() != paint->getGenerationID()
-                    // We can't compare shader pointers because that will always
-                    // change as we do partial copying via wrapping. However, if the
-                    // shader changes the paint generationID will have changed and
-                    // so we don't hit this comparison anyway
-                    || !(paint->getShader() && paintCopy->getShader()
-                            && paint->getShader()->getGenerationID() == paintCopy->getShader()->getGenerationID())) {
-                paintCopy = copyPaint(paint);
-                // replaceValueFor() performs an add if the entry doesn't exist
-                mPaintMap.replaceValueFor(paint, paintCopy);
-            }
+        const SkPaint* paintCopy = mPaintMap.valueFor(paint);
+        if (paintCopy == NULL
+                || paintCopy->getGenerationID() != paint->getGenerationID()
+                // We can't compare shader pointers because that will always
+                // change as we do partial copying via wrapping. However, if the
+                // shader changes the paint generationID will have changed and
+                // so we don't hit this comparison anyway
+                || !(paint->getShader() && paintCopy->getShader()
+                        && paint->getShader()->getGenerationID() == paintCopy->getShader()->getGenerationID())) {
+            paintCopy = copyPaint(paint);
+            // replaceValueFor() performs an add if the entry doesn't exist
+            mPaintMap.replaceValueFor(paint, paintCopy);
         }
 
         return paintCopy;
@@ -322,9 +304,6 @@ private:
     DeferredBarrierType mDeferredBarrierType;
     bool mHighContrastText;
 
-    // -1 if unset, or SkXfermode::Mode value if set
-    int mOverrideXfermode;
-
     int mRestoreSaveCount;
 
     friend class RenderNode;