Make SkImageFilter::asNewEffect() (and all derived-class overrides) protected.
R=bsalomon@google.com, bsalomon
Review URL: https://codereview.chromium.org/26937006
git-svn-id: http://skia.googlecode.com/svn/trunk@11847 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/effects/SkMagnifierImageFilter.cpp b/src/effects/SkMagnifierImageFilter.cpp
index e3d6efd..bef1e8d 100644
--- a/src/effects/SkMagnifierImageFilter.cpp
+++ b/src/effects/SkMagnifierImageFilter.cpp
@@ -184,6 +184,7 @@
GrContext* context,
const GrDrawTargetCaps&,
GrTexture** textures) {
+ GrTexture* texture = textures[0];
const int kMaxWidth = 200;
const int kMaxHeight = 200;
const int kMaxInset = 20;
@@ -191,15 +192,16 @@
uint32_t height = random->nextULessThan(kMaxHeight);
uint32_t x = random->nextULessThan(kMaxWidth - width);
uint32_t y = random->nextULessThan(kMaxHeight - height);
- SkScalar inset = SkIntToScalar(random->nextULessThan(kMaxInset));
+ uint32_t inset = random->nextULessThan(kMaxInset);
- SkAutoTUnref<SkMagnifierImageFilter> filter(
- new SkMagnifierImageFilter(
- SkRect::MakeXYWH(SkIntToScalar(x), SkIntToScalar(y),
- SkIntToScalar(width), SkIntToScalar(height)),
- inset));
- GrEffectRef* effect;
- filter->asNewEffect(&effect, textures[0], SkMatrix::I());
+ GrEffectRef* effect = GrMagnifierEffect::Create(
+ texture,
+ (float) width / texture->width(),
+ (float) height / texture->height(),
+ texture->width() / (float) x,
+ texture->height() / (float) y,
+ (float) inset / texture->width(),
+ (float) inset / texture->height());
SkASSERT(NULL != effect);
return effect;
}