Revert[2] of "switch to isABitmap, deprecate SK_SUPPORT_LEGACY_SHADERBITMAPTYPE"
authorreed <reed@google.com>
Tue, 8 Sep 2015 18:02:04 +0000 (11:02 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 8 Sep 2015 18:02:04 +0000 (11:02 -0700)
master-skia has been updated to use isABitmap

This reverts commit ff390c9bdd852405d9dc0fd5e384b1f935d8df08.

BUG=skia:

Review URL: https://codereview.chromium.org/1310573008

gyp/skia_for_android_framework_defines.gypi
include/core/SkShader.h
src/core/SkBitmapProcShader.cpp
src/core/SkBitmapProcShader.h
src/core/SkLocalMatrixShader.h
src/core/SkShader.cpp

index 92452117e9d28894bf3dc30ade9d2545dcc4ab3f..166bd785a30b9fcbc16a7e3237f25f4901b85ee4 100644 (file)
@@ -17,7 +17,6 @@
       # Needed until we fix skbug.com/2440.
       'SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG',
       'SK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS',
-      'SK_SUPPORT_LEGACY_SHADERBITMAPTYPE',
     ],
   },
 }
index abd50d6161157feb601e6b9385cb0150c188ef42..47934dd9ad9579b4cdd8b0209039e4e90f3f5035 100644 (file)
@@ -223,42 +223,15 @@ public:
         return (flags & kHasSpan16_Flag) != 0;
     }
 
-#ifdef SK_SUPPORT_LEGACY_SHADERBITMAPTYPE
-public:
-#else
-protected:
-#endif
     /**
-     Gives method bitmap should be read to implement a shader.
-     Also determines number and interpretation of "extra" parameters returned
-     by asABitmap
+     *  Returns true if this shader is just a bitmap, and if not null, returns the bitmap,
+     *  localMatrix, and tilemodes. If this is not a bitmap, returns false and ignores the
+     *  out-parameters.
      */
-    enum BitmapType {
-        kNone_BitmapType,   //<! Shader is not represented as a bitmap
-        kDefault_BitmapType,//<! Access bitmap using local coords transformed
-    };
-    /** Optional methods for shaders that can pretend to be a bitmap/texture
-        to play along with opengl. Default just returns kNone_BitmapType and
-        ignores the out parameters.
-
-        @param outTexture if non-NULL will be the bitmap representing the shader
-                          after return.
-        @param outMatrix  if non-NULL will be the matrix to apply to vertices
-                          to access the bitmap after return.
-        @param xy         if non-NULL will be the tile modes that should be
-                          used to access the bitmap after return.
-        @param twoPointRadialParams Two extra return values needed for two point
-                                    radial bitmaps. The first is the x-offset of
-                                    the second point and the second is the radius
-                                    about the first point.
-    */
-    virtual BitmapType asABitmap(SkBitmap* outTexture, SkMatrix* outMatrix,
-                         TileMode xy[2]) const;
-
-public:
-    bool isABitmap(SkBitmap* bitmap, SkMatrix* matrix, TileMode xy[2]) const {
-        return this->asABitmap(bitmap, matrix, xy) == kDefault_BitmapType;
+    bool isABitmap(SkBitmap* outTexture, SkMatrix* outMatrix, TileMode xy[2]) const {
+        return this->onIsABitmap(outTexture, outMatrix, xy);
     }
+
     bool isABitmap() const {
         return this->isABitmap(nullptr, nullptr, nullptr);
     }
@@ -454,6 +427,11 @@ protected:
     virtual bool onAsLuminanceColor(SkColor*) const {
         return false;
     }
+
+    virtual bool onIsABitmap(SkBitmap*, SkMatrix*, TileMode[2]) const {
+        return false;
+    }
+
 private:
     // This is essentially const, but not officially so it can be modified in
     // constructors.
index c3b10184f4429981d69d18ce888b4af1bb61f609..97abbf96759ff7e7e9e029493791e99f718fcb71 100644 (file)
@@ -27,9 +27,7 @@ SkBitmapProcShader::SkBitmapProcShader(const SkBitmap& src, TileMode tmx, TileMo
     fTileModeY = (uint8_t)tmy;
 }
 
-SkShader::BitmapType SkBitmapProcShader::asABitmap(SkBitmap* texture,
-                                                   SkMatrix* texM,
-                                                   TileMode xy[]) const {
+bool SkBitmapProcShader::onIsABitmap(SkBitmap* texture, SkMatrix* texM, TileMode xy[]) const {
     if (texture) {
         *texture = fRawBitmap;
     }
@@ -40,7 +38,7 @@ SkShader::BitmapType SkBitmapProcShader::asABitmap(SkBitmap* texture,
         xy[0] = (TileMode)fTileModeX;
         xy[1] = (TileMode)fTileModeY;
     }
-    return kDefault_BitmapType;
+    return true;
 }
 
 SkFlattenable* SkBitmapProcShader::CreateProc(SkReadBuffer& buffer) {
index 4215b90efbf51e6c4853c4649ff55fe68ac0ca27..63985c06c514472a2194ef498ed86c728c9ff1a7 100644 (file)
@@ -20,9 +20,7 @@ public:
     SkBitmapProcShader(const SkBitmap& src, TileMode tx, TileMode ty,
                        const SkMatrix* localMatrix = nullptr);
 
-    // overrides from SkShader
     bool isOpaque() const override;
-    BitmapType asABitmap(SkBitmap*, SkMatrix*, TileMode*) const override;
 
     size_t contextSize() const override;
 
@@ -58,6 +56,7 @@ public:
 protected:
     void flatten(SkWriteBuffer&) const override;
     Context* onCreateContext(const ContextRec&, void* storage) const override;
+    bool onIsABitmap(SkBitmap*, SkMatrix*, TileMode*) const override;
 
     SkBitmap    fRawBitmap;   // experimental for RLE encoding
     uint8_t     fTileModeX, fTileModeY;
index 9c6a526f7b1356511be2373b79c336ff8a6f58f0..a108259461d347cad72e94824e3f577d8615e3a8 100644 (file)
@@ -23,11 +23,6 @@ public:
         return fProxyShader->contextSize();
     }
 
-    virtual BitmapType asABitmap(SkBitmap* bitmap, SkMatrix* matrix,
-                                 TileMode* mode) const override {
-        return fProxyShader->asABitmap(bitmap, matrix, mode);
-    }
-
     GradientType asAGradient(GradientInfo* info) const override {
         return fProxyShader->asAGradient(info);
     }
@@ -58,6 +53,10 @@ protected:
     void flatten(SkWriteBuffer&) const override;
     Context* onCreateContext(const ContextRec&, void*) const override;
 
+    bool onIsABitmap(SkBitmap* bitmap, SkMatrix* matrix, TileMode* mode) const override {
+        return fProxyShader->isABitmap(bitmap, matrix, mode);
+    }
+
 private:
     SkAutoTUnref<SkShader> fProxyShader;
 
index b3edf47dfd3c921c3abbb09bf8a533b54b7fa909..2a1c28e0cf8684ebcc57035080f12b9f5f15eb67 100644 (file)
@@ -206,10 +206,6 @@ SkShader::Context::MatrixClass SkShader::Context::ComputeMatrixClass(const SkMat
 
 //////////////////////////////////////////////////////////////////////////////
 
-SkShader::BitmapType SkShader::asABitmap(SkBitmap*, SkMatrix*, TileMode*) const {
-    return kNone_BitmapType;
-}
-
 SkShader::GradientType SkShader::asAGradient(GradientInfo* info) const {
     return kNone_GradientType;
 }