Delete SkRectShaderImageFilter

This is no longer used (as of http://crrev.com/368929).

BUG=skia:4780
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1575233004

Review URL: https://codereview.chromium.org/1575233004
This commit is contained in:
ajuma 2016-01-12 14:17:30 -08:00 committed by Commit bot
parent 7f9b2e4a45
commit 1554ec0689
6 changed files with 0 additions and 213 deletions

View File

@ -58,7 +58,6 @@
'<(skia_src_path)/effects/SkPerlinNoiseShader.cpp',
'<(skia_src_path)/effects/SkPictureImageFilter.cpp',
'<(skia_src_path)/effects/SkPixelXorXfermode.cpp',
'<(skia_src_path)/effects/SkRectShaderImageFilter.cpp',
'<(skia_src_path)/effects/SkTableColorFilter.cpp',
'<(skia_src_path)/effects/SkTableMaskFilter.cpp',
'<(skia_src_path)/effects/SkTestImageFilters.cpp',
@ -114,7 +113,6 @@
'<(skia_include_path)/effects/SkPaintImageFilter.h',
'<(skia_include_path)/effects/SkPerlinNoiseShader.h',
'<(skia_include_path)/effects/SkPixelXorXfermode.h',
'<(skia_include_path)/effects/SkRectShaderImageFilter.h',
'<(skia_include_path)/effects/SkTableColorFilter.h',
'<(skia_include_path)/effects/SkTableMaskFilter.h',
'<(skia_include_path)/effects/SkTileImageFilter.h',

View File

@ -1,52 +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.
*/
#ifndef SkRectShaderImageFilter_DEFINED
#define SkRectShaderImageFilter_DEFINED
#include "SkImageFilter.h"
#include "SkRect.h"
class SkShader;
class SK_API SkRectShaderImageFilter : public SkImageFilter {
public:
/** Create a new image filter which fills the given rectangle with pixels
* produced by the given SkShader. If no rectangle is specified, an output
* is produced with the same bounds as the input primitive (even though
* the input primitive's pixels are not used for processing).
* @param s Shader to call for processing. Cannot be NULL. Will be
* ref'ed by the new image filter.
* @param rect Rectangle of output pixels in which to apply the shader.
* If NULL or a given crop edge is not specified, the source
* primitive's bounds are used instead.
*/
SK_ATTR_DEPRECATED("use Create(SkShader*, const CropRect*)")
static SkImageFilter* Create(SkShader* s, const SkRect& rect);
static SkImageFilter* Create(SkShader* s, const CropRect* rect = NULL);
bool canComputeFastBounds() const override;
SK_TO_STRING_OVERRIDE()
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRectShaderImageFilter)
protected:
virtual ~SkRectShaderImageFilter();
void flatten(SkWriteBuffer&) const override;
bool onFilterImage(Proxy*, const SkBitmap& src, const Context&, SkBitmap* result,
SkIPoint* loc) const override;
private:
SkRectShaderImageFilter(SkShader* s, const CropRect* rect);
SkShader* fShader;
typedef SkImageFilter INHERITED;
};
#endif

View File

@ -1,94 +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 "SkRectShaderImageFilter.h"
#include "SkBitmap.h"
#include "SkCanvas.h"
#include "SkDevice.h"
#include "SkReadBuffer.h"
#include "SkWriteBuffer.h"
#include "SkShader.h"
SkImageFilter* SkRectShaderImageFilter::Create(SkShader* s, const SkRect& rect) {
SkASSERT(s);
uint32_t flags = CropRect::kHasAll_CropEdge;
if (rect.width() == 0 || rect.height() == 0) {
flags = 0x0;
}
CropRect cropRect(rect, flags);
return s ? new SkRectShaderImageFilter(s, &cropRect) : nullptr;
}
SkImageFilter* SkRectShaderImageFilter::Create(SkShader* s, const CropRect* cropRect) {
SkASSERT(s);
return s ? new SkRectShaderImageFilter(s, cropRect) : nullptr;
}
SkRectShaderImageFilter::SkRectShaderImageFilter(SkShader* s, const CropRect* cropRect)
: INHERITED(0, nullptr, cropRect)
, fShader(SkRef(s)) {
}
SkFlattenable* SkRectShaderImageFilter::CreateProc(SkReadBuffer& buffer) {
SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 0);
SkAutoTUnref<SkShader> shader(buffer.readShader());
return Create(shader.get(), &common.cropRect());
}
void SkRectShaderImageFilter::flatten(SkWriteBuffer& buffer) const {
this->INHERITED::flatten(buffer);
buffer.writeFlattenable(fShader);
}
SkRectShaderImageFilter::~SkRectShaderImageFilter() {
fShader->unref();
}
bool SkRectShaderImageFilter::onFilterImage(Proxy* proxy,
const SkBitmap& source,
const Context& ctx,
SkBitmap* result,
SkIPoint* offset) const {
SkIRect bounds;
if (!this->applyCropRect(ctx, source, SkIPoint::Make(0, 0), &bounds)) {
return false;
}
SkAutoTUnref<SkBaseDevice> device(proxy->createDevice(bounds.width(),
bounds.height()));
if (nullptr == device.get()) {
return false;
}
SkCanvas canvas(device.get());
SkPaint paint;
SkMatrix matrix(ctx.ctm());
matrix.postTranslate(SkIntToScalar(-bounds.left()), SkIntToScalar(-bounds.top()));
SkSafeUnref(paint.setShader(fShader->newWithLocalMatrix(matrix)));
SkRect rect = SkRect::MakeWH(SkIntToScalar(bounds.width()), SkIntToScalar(bounds.height()));
canvas.drawRect(rect, paint);
*result = device.get()->accessBitmap(false);
offset->fX = bounds.fLeft;
offset->fY = bounds.fTop;
return true;
}
bool SkRectShaderImageFilter::canComputeFastBounds() const {
// http:skbug.com/4627: "make computeFastBounds and onFilterBounds() CropRect-aware"
// computeFastBounds() doesn't currently take the crop rect into account,
// so we can't compute it. If a full crop rect is set, we should return true here.
return false;
}
#ifndef SK_IGNORE_TO_STRING
void SkRectShaderImageFilter::toString(SkString* str) const {
str->appendf("SkRectShaderImageFilter: (");
str->append(")");
}
#endif

View File

@ -59,7 +59,6 @@
#include "SkPictureImageFilter.h"
#include "SkPictureShader.h"
#include "SkPixelXorXfermode.h"
#include "SkRectShaderImageFilter.h"
#include "SkTableColorFilter.h"
#include "SkTestImageFilters.h"
#include "SkTileImageFilter.h"
@ -121,7 +120,6 @@ public:
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureImageFilter)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureShader)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPixelXorXfermode)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRectShaderImageFilter)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSumPathEffect)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixImageFilter)

View File

@ -55,7 +55,6 @@
#include "SkPictureImageFilter.h"
#include "SkPictureShader.h"
#include "SkPixelXorXfermode.h"
#include "SkRectShaderImageFilter.h"
#include "SkTableColorFilter.h"
#include "SkTestImageFilters.h"
#include "SkTileImageFilter.h"
@ -100,7 +99,6 @@ public:
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureImageFilter)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureShader)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPixelXorXfermode)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRectShaderImageFilter)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSumPathEffect)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixImageFilter)

View File

@ -1,61 +0,0 @@
/*
* Copyright 2011 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "SkCanvas.h"
#include "SkGradientShader.h"
#include "SkRectShaderImageFilter.h"
#include "SkShader.h"
#include "Test.h"
DEF_TEST(ShaderImageFilter, reporter) {
int w = 10, h = 10;
SkRect r = SkRect::MakeWH(SkIntToScalar(w), SkIntToScalar(h)); // Make small 10x10 gradient
SkBitmap filterResult, shaderResult;
filterResult.allocN32Pixels(w, h);
SkCanvas canvasFilter(filterResult);
canvasFilter.clear(0x00000000);
shaderResult.allocN32Pixels(w, h);
SkCanvas canvasShader(shaderResult);
canvasShader.clear(0x00000000);
SkPoint center = SkPoint::Make(SkIntToScalar(5), SkIntToScalar(5));
SkColor colors[] = {SK_ColorBLUE, SK_ColorRED, SK_ColorGREEN};
SkScalar pos[] = {0, SK_ScalarHalf, SK_Scalar1};
SkScalar radius = SkIntToScalar(5);
// Test using the image filter
{
SkShader* s = SkGradientShader::CreateRadial(
center, radius, colors, pos, SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode);
SkPaint paint;
SkImageFilter::CropRect cr(r);
paint.setImageFilter(SkRectShaderImageFilter::Create(s, &cr))->unref();
canvasFilter.drawRect(r, paint);
s->unref();
}
// Test using the shader directly
{
SkShader* s = SkGradientShader::CreateRadial(
center, radius, colors, pos, SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode);
SkPaint paint;
paint.setShader(s)->unref();
canvasShader.drawRect(r, paint);
}
// Assert that both paths yielded the same result
for (int y = 0; y < r.height(); ++y) {
const SkPMColor* filterPtr = filterResult.getAddr32(0, y);
const SkPMColor* shaderPtr = shaderResult.getAddr32(0, y);
for (int x = 0; x < r.width(); ++x, ++filterPtr, ++shaderPtr) {
REPORTER_ASSERT(reporter, *filterPtr == *shaderPtr);
}
}
}