Revert "Implement an SkPicture image filter source. This is required for the external-SVG reference feature of feImage. It simply plays back an SkPicture to a given destination rect."

This reverts commit a620349a24471546ad2e8f0679774c1f5b4de0a4 (r12656).

git-svn-id: http://skia.googlecode.com/svn/trunk@12657 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/pictureimagefilter.cpp b/gm/pictureimagefilter.cpp
deleted file mode 100644
index 5adb489..0000000
--- a/gm/pictureimagefilter.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2013 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "gm.h"
-
-#include "SkPictureImageFilter.h"
-
-// This GM exercises the SkPictureImageFilter ImageFilter class.
-
-class PictureImageFilterGM : public skiagm::GM {
-public:
-    PictureImageFilterGM() {
-    }
-
-protected:
-    virtual SkString onShortName() SK_OVERRIDE {
-        return SkString("pictureimagefilter");
-    }
-
-    void makePicture() {
-        SkCanvas* canvas = fPicture.beginRecording(100, 100);
-        canvas->clear(0x00000000);
-        SkPaint paint;
-        paint.setAntiAlias(true);
-        paint.setColor(0xFFFFFFFF);
-        paint.setTextSize(SkIntToScalar(96));
-        const char* str = "e";
-        canvas->drawText(str, strlen(str), SkIntToScalar(20), SkIntToScalar(70), paint);
-    }
-
-    virtual SkISize onISize() SK_OVERRIDE { return SkISize::Make(500, 150); }
-
-    virtual void onOnceBeforeDraw() SK_OVERRIDE {
-        this->makePicture();
-    }
-
-    static void fillRectFiltered(SkCanvas* canvas, const SkRect& clipRect, SkImageFilter* filter) {
-        SkPaint paint;
-        paint.setImageFilter(filter);
-        canvas->save();
-        canvas->clipRect(clipRect);
-        canvas->drawPaint(paint);
-        canvas->restore();
-    }
-
-    virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
-        canvas->clear(0x00000000);
-        {
-            SkRect srcRect = SkRect::MakeXYWH(20, 20, 30, 30);
-            SkRect emptyRect = SkRect::MakeXYWH(20, 20, 0, 0);
-            SkRect bounds = SkRect::MakeXYWH(0, 0, 100, 100);
-            SkAutoTUnref<SkImageFilter> pictureSource(new SkPictureImageFilter(&fPicture));
-            SkAutoTUnref<SkImageFilter> pictureSourceSrcRect(new SkPictureImageFilter(&fPicture, srcRect));
-            SkAutoTUnref<SkImageFilter> pictureSourceEmptyRect(new SkPictureImageFilter(&fPicture, emptyRect));
-
-            // Draw the picture unscaled.
-            fillRectFiltered(canvas, bounds, pictureSource);
-            canvas->translate(SkIntToScalar(100), 0);
-
-            // Draw an unscaled subset of the source picture.
-            fillRectFiltered(canvas, bounds, pictureSourceSrcRect);
-            canvas->translate(SkIntToScalar(100), 0);
-
-            // Draw the picture to an empty rect (should draw nothing).
-            fillRectFiltered(canvas, bounds, pictureSourceEmptyRect);
-            canvas->translate(SkIntToScalar(100), 0);
-        }
-    }
-
-private:
-    SkPicture fPicture;
-    typedef GM INHERITED;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-DEF_GM( return new PictureImageFilterGM; )
diff --git a/gyp/effects.gypi b/gyp/effects.gypi
index 214cfdd..845dd94 100644
--- a/gyp/effects.gypi
+++ b/gyp/effects.gypi
@@ -48,7 +48,6 @@
     '<(skia_src_path)/effects/SkOffsetImageFilter.cpp',
     '<(skia_src_path)/effects/SkPaintFlagsDrawFilter.cpp',
     '<(skia_src_path)/effects/SkPerlinNoiseShader.cpp',
-    '<(skia_src_path)/effects/SkPictureImageFilter.cpp',
     '<(skia_src_path)/effects/SkPixelXorXfermode.cpp',
     '<(skia_src_path)/effects/SkPorterDuff.cpp',
     '<(skia_src_path)/effects/SkRectShaderImageFilter.cpp',
diff --git a/gyp/gmslides.gypi b/gyp/gmslides.gypi
index bcbee29..e29a702 100644
--- a/gyp/gmslides.gypi
+++ b/gyp/gmslides.gypi
@@ -105,7 +105,6 @@
     '../gm/pathopsskpclip.cpp',
     '../gm/pathreverse.cpp',
     '../gm/perlinnoise.cpp',
-    '../gm/pictureimagefilter.cpp',
     '../gm/points.cpp',
     '../gm/poly2poly.cpp',
     '../gm/polygons.cpp',
diff --git a/include/effects/SkPictureImageFilter.h b/include/effects/SkPictureImageFilter.h
deleted file mode 100644
index 98d72d9..0000000
--- a/include/effects/SkPictureImageFilter.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2013 The Android Open Source Project
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef SkPictureImageFilter_DEFINED
-#define SkPictureImageFilter_DEFINED
-
-#include "SkImageFilter.h"
-#include "SkPicture.h"
-
-class SK_API SkPictureImageFilter : public SkImageFilter {
-public:
-    /**
-     *  Refs the passed-in picture.
-     */
-    explicit SkPictureImageFilter(SkPicture* picture);
-
-    /**
-     *  Refs the passed-in picture. rect can be used to crop or expand the destination rect when
-     *  the picture is drawn. (No scaling is implied by the dest rect; only the CTM is applied.)
-     */
-    SkPictureImageFilter(SkPicture* picture, const SkRect& rect);
-
-    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPictureImageFilter)
-
-protected:
-    virtual ~SkPictureImageFilter();
-    explicit SkPictureImageFilter(SkFlattenableReadBuffer& buffer);
-    virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-    virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
-                               SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
-
-private:
-    SkPicture* fPicture;
-    SkRect     fRect;
-    typedef SkImageFilter INHERITED;
-};
-
-#endif
diff --git a/src/effects/SkPictureImageFilter.cpp b/src/effects/SkPictureImageFilter.cpp
deleted file mode 100644
index 082fe15..0000000
--- a/src/effects/SkPictureImageFilter.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2013 The Android Open Source Project
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkPictureImageFilter.h"
-#include "SkDevice.h"
-#include "SkCanvas.h"
-#include "SkFlattenableBuffers.h"
-#include "SkValidationUtils.h"
-
-SkPictureImageFilter::SkPictureImageFilter(SkPicture* picture)
-  : INHERITED(0, 0),
-    fPicture(picture),
-    fRect(SkRect::MakeWH(picture ? SkIntToScalar(picture->width()) : 0,
-                         picture ? SkIntToScalar(picture->height()) : 0)) {
-    SkSafeRef(fPicture);
-}
-
-SkPictureImageFilter::SkPictureImageFilter(SkPicture* picture, const SkRect& rect)
-  : INHERITED(0, 0),
-    fPicture(picture),
-    fRect(rect) {
-    SkSafeRef(fPicture);
-}
-
-SkPictureImageFilter::~SkPictureImageFilter() {
-    SkSafeUnref(fPicture);
-}
-
-SkPictureImageFilter::SkPictureImageFilter(SkFlattenableReadBuffer& buffer)
-  : INHERITED(0, buffer) {
-    // FIXME: unflatten picture here.
-    buffer.readRect(&fRect);
-}
-
-void SkPictureImageFilter::flatten(SkFlattenableWriteBuffer& buffer) const {
-    this->INHERITED::flatten(buffer);
-    // FIXME: flatten picture here.
-    buffer.writeRect(fRect);
-}
-
-bool SkPictureImageFilter::onFilterImage(Proxy* proxy, const SkBitmap&, const SkMatrix& matrix,
-                                   SkBitmap* result, SkIPoint* offset) {
-    if (!fPicture) {
-        return true;
-    }
-
-    SkRect floatBounds;
-    SkIRect bounds;
-    matrix.mapRect(&floatBounds, fRect);
-    floatBounds.roundOut(&bounds);
-
-    if (bounds.isEmpty()) {
-        return true;
-    }
-
-    SkAutoTUnref<SkBaseDevice> device(proxy->createDevice(bounds.width(), bounds.height()));
-    if (NULL == device.get()) {
-        return false;
-    }
-
-    SkCanvas canvas(device.get());
-    SkPaint paint;
-
-    canvas.translate(-SkIntToScalar(bounds.fLeft), -SkIntToScalar(bounds.fTop));
-    canvas.concat(matrix);
-    canvas.drawPicture(*fPicture);
-
-    *result = device.get()->accessBitmap(false);
-    offset->fX += bounds.fLeft;
-    offset->fY += bounds.fTop;
-    return true;
-}