Push sigma-based blur interface into our GMs/benches/tests/samplecode
https://codereview.chromium.org/23701006/
git-svn-id: http://skia.googlecode.com/svn/trunk@11129 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleAll.cpp b/samplecode/SampleAll.cpp
index 24fbc20..133b653 100644
--- a/samplecode/SampleAll.cpp
+++ b/samplecode/SampleAll.cpp
@@ -6,6 +6,7 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
+#include "SkBlurMask.h"
#include "SkCanvas.h"
#include "SkView.h"
#include "Sk1DPathEffect.h"
@@ -79,8 +80,8 @@
///////////////////////////////////////////////////////////
static void r0(SkLayerRasterizer* rast, SkPaint& p) {
- p.setMaskFilter(SkBlurMaskFilter::Create(SkIntToScalar(3),
- SkBlurMaskFilter::kNormal_BlurStyle,
+ p.setMaskFilter(SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(3)),
SkBlurMaskFilter::kNone_BlurFlag))->unref();
rast->addLayer(p, SkIntToScalar(3), SkIntToScalar(3));
@@ -255,10 +256,9 @@
#if 1
SkScalar dir[] = { SK_Scalar1, SK_Scalar1, SK_Scalar1 };
- paint->setMaskFilter(SkBlurMaskFilter::CreateEmboss(dir,
- SK_Scalar1/4,
- SkIntToScalar(4),
- SkIntToScalar(3)))->unref();
+ paint->setMaskFilter(SkBlurMaskFilter::CreateEmboss(
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(3)), dir,
+ SK_Scalar1/4, SkIntToScalar(4)))->unref();
paint->setColor(SK_ColorBLUE);
#endif
}
@@ -386,8 +386,8 @@
light.fDirection[2] = SK_Scalar1/3;
light.fAmbient = 0x48;
light.fSpecular = 0x80;
- SkScalar radius = SkIntToScalar(12)/5;
- SkEmbossMaskFilter* embossFilter = new SkEmbossMaskFilter(light, radius);
+ SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(12)/5);
+ SkEmbossMaskFilter* embossFilter = new SkEmbossMaskFilter(sigma, light);
SkXfermode* xfermode = SkXfermode::Create(SkXfermode::kXor_Mode);
SkColorFilter* lightingFilter = SkColorFilter::CreateLightingFilter(
diff --git a/samplecode/SampleAnimBlur.cpp b/samplecode/SampleAnimBlur.cpp
index 98c9814..5d6638a 100644
--- a/samplecode/SampleAnimBlur.cpp
+++ b/samplecode/SampleAnimBlur.cpp
@@ -28,9 +28,9 @@
virtual void onDrawContent(SkCanvas* canvas) {
- SkScalar blurRadius = SampleCode::GetAnimSinScalar(100 * SK_Scalar1,
- 4 * SK_Scalar1,
- 5 * SK_Scalar1);
+ SkScalar blurSigma = SampleCode::GetAnimSinScalar(100 * SK_Scalar1,
+ 4 * SK_Scalar1,
+ 5 * SK_Scalar1);
SkScalar circleRadius = 3 * SK_Scalar1 +
SampleCode::GetAnimSinScalar(150 * SK_Scalar1,
@@ -46,8 +46,9 @@
SkRandom random;
for (size_t i = 0; i < SK_ARRAY_COUNT(gStyles); ++i) {
- SkMaskFilter* mf = SkBlurMaskFilter::Create(blurRadius,
+ SkMaskFilter* mf = SkBlurMaskFilter::Create(
gStyles[i],
+ blurSigma,
SkBlurMaskFilter::kHighQuality_BlurFlag);
SkPaint paint;
SkSafeUnref(paint.setMaskFilter(mf));
diff --git a/samplecode/SampleBigBlur.cpp b/samplecode/SampleBigBlur.cpp
index de49c4e..928fc6f 100644
--- a/samplecode/SampleBigBlur.cpp
+++ b/samplecode/SampleBigBlur.cpp
@@ -6,9 +6,10 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
+#include "SkBlurMask.h"
#include "SkBlurMaskFilter.h"
-#include "SkView.h"
#include "SkCanvas.h"
+#include "SkView.h"
class BigBlurView : public SampleView {
public:
@@ -30,8 +31,8 @@
canvas->save();
paint.setColor(SK_ColorBLUE);
SkMaskFilter* mf = SkBlurMaskFilter::Create(
- 128,
SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(128)),
SkBlurMaskFilter::kHighQuality_BlurFlag);
paint.setMaskFilter(mf)->unref();
canvas->translate(200, 200);
diff --git a/samplecode/SampleBlur.cpp b/samplecode/SampleBlur.cpp
index 4a743cc..e8e9772 100644
--- a/samplecode/SampleBlur.cpp
+++ b/samplecode/SampleBlur.cpp
@@ -6,12 +6,13 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
+#include "SkBlurMask.h"
#include "SkBlurMaskFilter.h"
+#include "SkCanvas.h"
#include "SkColorPriv.h"
#include "SkGradientShader.h"
-#include "SkView.h"
-#include "SkCanvas.h"
#include "SkUtils.h"
+#include "SkView.h"
static SkBitmap make_bitmap() {
SkBitmap bm;
@@ -97,9 +98,9 @@
paint.setColor(SK_ColorBLUE);
for (size_t i = 0; i < SK_ARRAY_COUNT(gRecs); i++) {
if (gRecs[i].fStyle != NONE) {
- SkMaskFilter* mf = SkBlurMaskFilter::Create(20,
- gRecs[i].fStyle,
- flags);
+ SkMaskFilter* mf = SkBlurMaskFilter::Create(gRecs[i].fStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(20)),
+ flags);
paint.setMaskFilter(mf)->unref();
} else {
paint.setMaskFilter(NULL);
@@ -109,9 +110,9 @@
}
// draw text
{
- SkMaskFilter* mf = SkBlurMaskFilter::Create(4,
- SkBlurMaskFilter::kNormal_BlurStyle,
- flags);
+ SkMaskFilter* mf = SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(4)),
+ flags);
paint.setMaskFilter(mf)->unref();
SkScalar x = SkIntToScalar(70);
SkScalar y = SkIntToScalar(400);
diff --git a/samplecode/SampleEffects.cpp b/samplecode/SampleEffects.cpp
index 1169725..fd1c248 100644
--- a/samplecode/SampleEffects.cpp
+++ b/samplecode/SampleEffects.cpp
@@ -6,14 +6,15 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkView.h"
-
+#include "SkBlurMask.h"
#include "SkBlurMaskFilter.h"
+#include "SkCanvas.h"
#include "SkColorMatrixFilter.h"
#include "SkDiscretePathEffect.h"
#include "SkGradientShader.h"
+#include "SkPaint.h"
+#include "SkView.h"
+
//#define COLOR 0xFFFF8844
#define COLOR 0xFF888888
@@ -22,14 +23,18 @@
}
static void paint_proc1(SkPaint* paint) {
- paint->setMaskFilter(SkBlurMaskFilter::Create(2,
- SkBlurMaskFilter::kNormal_BlurStyle))->unref();
+ paint->setMaskFilter(SkBlurMaskFilter::Create(
+ SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(2))))->unref();
}
static void paint_proc2(SkPaint* paint) {
SkScalar dir[3] = { 1, 1, 1};
paint->setMaskFilter(
- SkBlurMaskFilter::CreateEmboss(dir, 0.1f, 0.05f, 1))->unref();
+ SkBlurMaskFilter::CreateEmboss(SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(1)),
+ dir,
+ SkFloatToScalar(0.1f),
+ SkFloatToScalar(0.05f)))->unref();
}
static void paint_proc3(SkPaint* paint) {
diff --git a/samplecode/SampleEmboss.cpp b/samplecode/SampleEmboss.cpp
index faf7027..b9bb691 100644
--- a/samplecode/SampleEmboss.cpp
+++ b/samplecode/SampleEmboss.cpp
@@ -6,6 +6,7 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
+#include "SkBlurMask.h"
#include "SkView.h"
#include "SkCanvas.h"
#include "Sk64.h"
@@ -53,7 +54,8 @@
paint.setAntiAlias(true);
paint.setStyle(SkPaint::kStroke_Style);
paint.setStrokeWidth(SkIntToScalar(10));
- paint.setMaskFilter(new SkEmbossMaskFilter(fLight, SkIntToScalar(4)))->unref();
+ paint.setMaskFilter(new SkEmbossMaskFilter(
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(4)), fLight))->unref();
paint.setShader(new SkColorShader(SK_ColorBLUE))->unref();
paint.setDither(true);
diff --git a/samplecode/SampleFuzz.cpp b/samplecode/SampleFuzz.cpp
index a5d8917..a72e4dc 100644
--- a/samplecode/SampleFuzz.cpp
+++ b/samplecode/SampleFuzz.cpp
@@ -59,21 +59,35 @@
float v = 0;
int sel;
- if (return_large == true && R(3) == 1) sel = R(6); else sel = R(4);
- if (return_undef == false && sel == 0) sel = 1;
-
- if (R(2) == 1) v = (float)R(100); else
-
- switch (sel) {
- case 0: break;
- case 1: v = 0; break;
- case 2: v = 0.000001f; break;
- case 3: v = 10000; break;
- case 4: v = 2000000000; break;
- case 5: v = huge(); break;
+ if (return_large == true && R(3) == 1) {
+ sel = R(6);
+ } else {
+ sel = R(4);
}
- if (R(4) == 1) v = -v;
+ if (return_undef == false && sel == 0) {
+ sel = 1;
+ }
+
+ if (R(2) == 1) {
+ v = (float)R(100);
+ } else {
+
+ switch (sel) {
+ case 0: break;
+ case 1: v = 0; break;
+ case 2: v = 0.000001f; break;
+ case 3: v = 10000; break;
+ case 4: v = 2000000000; break;
+ case 5: v = huge(); break;
+ }
+
+ }
+
+ if (R(4) == 1) {
+ v = -v;
+ }
+
return v;
}
@@ -176,7 +190,9 @@
case 7:
if (quick == true) break;
- SkSafeUnref(paint.setMaskFilter(SkBlurMaskFilter::Create(make_number(), SkBlurMaskFilter::kNormal_BlurStyle)));
+ SkSafeUnref(paint.setMaskFilter(SkBlurMaskFilter::Create(
+ SkBlurMaskFilter::kNormal_BlurStyle,
+ make_number())));
break;
case 8:
diff --git a/samplecode/SampleSlides.cpp b/samplecode/SampleSlides.cpp
index fa948f8..98e4e72 100644
--- a/samplecode/SampleSlides.cpp
+++ b/samplecode/SampleSlides.cpp
@@ -6,11 +6,15 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
-#include "SkView.h"
+#include "SkBlurMask.h"
+#include "SkBlurMaskFilter.h"
#include "SkCanvas.h"
#include "SkDevice.h"
#include "SkFlattenableBuffers.h"
+#include "SkGradientShader.h"
+#include "SkLayerRasterizer.h"
#include "SkPaint.h"
+#include "SkView.h"
#define BG_COLOR 0xFFDDDDDD
@@ -471,14 +475,10 @@
///////////////////////////////////////////////////////////////////////////////
-#include "SkGradientShader.h"
-#include "SkLayerRasterizer.h"
-#include "SkBlurMaskFilter.h"
-
static void r0(SkLayerRasterizer* rast, SkPaint& p)
{
- p.setMaskFilter(SkBlurMaskFilter::Create(SkIntToScalar(3),
- SkBlurMaskFilter::kNormal_BlurStyle))->unref();
+ p.setMaskFilter(SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(3))))->unref();
rast->addLayer(p, SkIntToScalar(3), SkIntToScalar(3));
p.setMaskFilter(NULL);
diff --git a/samplecode/SampleStrokePath.cpp b/samplecode/SampleStrokePath.cpp
index d289cc6..ce6a010 100644
--- a/samplecode/SampleStrokePath.cpp
+++ b/samplecode/SampleStrokePath.cpp
@@ -6,13 +6,14 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
+#include "SkBlurMask.h"
+#include "SkBlurMaskFilter.h"
#include "SkCanvas.h"
#include "SkParsePath.h"
#include "SkPath.h"
#include "SkRandom.h"
#include "SkView.h"
-#include "SkBlurMaskFilter.h"
static void test_huge_stroke(SkCanvas* canvas) {
SkRect srcR = { 0, 0, 72000, 54000 };
@@ -41,7 +42,6 @@
}
#if 0
-#include "SkBlurMask.h"
static void test_blur() {
uint8_t cell[9];
memset(cell, 0xFF, sizeof(cell));
@@ -168,14 +168,14 @@
};
for (int x = 0; x < 5; x++) {
SkMaskFilter* mf;
- SkScalar radius = 4;
+ SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(4));
for (int y = 0; y < 10; y++) {
if (x) {
- mf = SkBlurMaskFilter::Create(radius, gStyle[x - 1]);
+ mf = SkBlurMaskFilter::Create(gStyle[x - 1], sigma);
paint.setMaskFilter(mf)->unref();
}
canvas->drawText("Title Bar", 9, x*SkIntToScalar(100), y*SkIntToScalar(30), paint);
- radius *= 0.75f;
+ sigma *= 0.75f;
}
}
diff --git a/samplecode/SampleTextAlpha.cpp b/samplecode/SampleTextAlpha.cpp
index 59ce186..83616f4 100644
--- a/samplecode/SampleTextAlpha.cpp
+++ b/samplecode/SampleTextAlpha.cpp
@@ -6,7 +6,7 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
-#include "SkView.h"
+#include "SkBlurMask.h"
#include "SkBlurMaskFilter.h"
#include "SkCanvas.h"
#include "SkDevice.h"
@@ -23,6 +23,7 @@
#include "SkColorFilter.h"
#include "SkTime.h"
#include "SkTypeface.h"
+#include "SkView.h"
#include "SkOSFile.h"
#include "SkStream.h"
@@ -69,8 +70,8 @@
paint.setARGB(fByte, 0xFF, 0xFF, 0xFF);
- paint.setMaskFilter(SkBlurMaskFilter::Create(SkIntToScalar(3),
- SkBlurMaskFilter::kNormal_BlurStyle));
+ paint.setMaskFilter(SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(3))));
paint.getMaskFilter()->unref();
SkRandom rand;
diff --git a/samplecode/SampleTextOnPath.cpp b/samplecode/SampleTextOnPath.cpp
index 2337a08..bfb35f8 100644
--- a/samplecode/SampleTextOnPath.cpp
+++ b/samplecode/SampleTextOnPath.cpp
@@ -6,6 +6,7 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
+#include "SkBlurMask.h"
#include "SkBlurDrawLooper.h"
#include "SkCanvas.h"
#include "SkPath.h"
@@ -34,10 +35,10 @@
canvas->drawPath(path, paint);
- paint.setLooper(new SkBlurDrawLooper(SkFloatToScalar(0.002f),
- SkFloatToScalar(0.0f),
- SkFloatToScalar(0.0f),
- (SkColor)0xFF000000))->unref();
+ paint.setLooper(new SkBlurDrawLooper(SK_ColorBLACK,
+ SkBlurMask::ConvertRadiusToSigma(SkFloatToScalar(0.002f)),
+ SkFloatToScalar(0.0f),
+ SkFloatToScalar(0.0f)))->unref();
const char* text = "DRAWING STROKED TEXT WITH A BLUR ON A PATH";
size_t len = strlen(text);
diff --git a/samplecode/SampleTextureDomain.cpp b/samplecode/SampleTextureDomain.cpp
index 5928f3c..995937a 100644
--- a/samplecode/SampleTextureDomain.cpp
+++ b/samplecode/SampleTextureDomain.cpp
@@ -6,9 +6,10 @@
* found in the LICENSE file.
*/
#include "SampleCode.h"
+#include "SkBlurMask.h"
+#include "SkBlurMaskFilter.h"
#include "SkCanvas.h"
#include "SkDevice.h"
-#include "SkBlurMaskFilter.h"
namespace {
SkBitmap make_bitmap() {
@@ -80,8 +81,8 @@
srcRect.setXYWH(1, 1, 3, 3);
dstRect.setXYWH(5.0f, 405.0f, 305.0f, 305.0f);
SkMaskFilter* mf = SkBlurMaskFilter::Create(
- 5,
SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(5)),
SkBlurMaskFilter::kHighQuality_BlurFlag |
SkBlurMaskFilter::kIgnoreTransform_BlurFlag);
paint.setMaskFilter(mf)->unref();
@@ -93,8 +94,8 @@
// that handles blurs with rects transformed to non-
// orthogonal rects. It also tests the NULL src rect handling
mf = SkBlurMaskFilter::Create(
- 5,
SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(5)),
SkBlurMaskFilter::kHighQuality_BlurFlag);
paint.setMaskFilter(mf)->unref();
diff --git a/samplecode/SampleTiling.cpp b/samplecode/SampleTiling.cpp
index 69c7710..7b62507 100644
--- a/samplecode/SampleTiling.cpp
+++ b/samplecode/SampleTiling.cpp
@@ -21,6 +21,7 @@
// effects
#include "SkGradientShader.h"
#include "SkUnitMappers.h"
+#include "SkBlurMask.h"
#include "SkBlurDrawLooper.h"
static void makebm(SkBitmap* bm, SkBitmap::Config config, int w, int h) {
@@ -66,8 +67,9 @@
SkBlurDrawLooper fLooper;
public:
TilingView()
- : fLooper(SkIntToScalar(1), SkIntToScalar(2), SkIntToScalar(2),
- 0x88000000) {
+ : fLooper(0x88000000,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(1)),
+ SkIntToScalar(2), SkIntToScalar(2)) {
fTextPicture = new SkPicture();
for (size_t i = 0; i < SK_ARRAY_COUNT(gConfigs); i++) {
makebm(&fTexture[i], gConfigs[i], gWidth, gHeight);
diff --git a/samplecode/SampleUnpremul.cpp b/samplecode/SampleUnpremul.cpp
index dfdd2ac..58d8ec2 100644
--- a/samplecode/SampleUnpremul.cpp
+++ b/samplecode/SampleUnpremul.cpp
@@ -6,6 +6,7 @@
*/
#include "gm.h"
#include "SampleCode.h"
+#include "SkBlurMask.h"
#include "SkBlurDrawLooper.h"
#include "SkCanvas.h"
#include "SkColorPriv.h"
@@ -85,7 +86,9 @@
paint.setAntiAlias(true);
paint.setTextSize(SkIntToScalar(24));
SkAutoTUnref<SkBlurDrawLooper> looper(SkNEW_ARGS(SkBlurDrawLooper,
- (SkIntToScalar(2), 0, 0, SK_ColorBLUE)));
+ (SK_ColorBLUE,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(2)),
+ 0, 0)));
paint.setLooper(looper);
SkScalar height = paint.getFontMetrics(NULL);
if (!fDecodeSucceeded) {
diff --git a/samplecode/SampleXfermodesBlur.cpp b/samplecode/SampleXfermodesBlur.cpp
index 8411281..59aa87e 100644
--- a/samplecode/SampleXfermodesBlur.cpp
+++ b/samplecode/SampleXfermodesBlur.cpp
@@ -7,6 +7,7 @@
*/
#include "SampleCode.h"
#include "SkView.h"
+#include "SkBlurMask.h"
#include "SkCanvas.h"
#include "Sk64.h"
#include "SkCornerPathEffect.h"
@@ -46,8 +47,9 @@
void draw_mode(SkCanvas* canvas, SkXfermode* mode, int alpha,
SkScalar x, SkScalar y) {
SkPaint p;
- SkMaskFilter* mf = SkBlurMaskFilter::Create(5, SkBlurMaskFilter::kNormal_BlurStyle,
- SkBlurMaskFilter::kNone_BlurFlag);
+ SkMaskFilter* mf = SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(5)),
+ SkBlurMaskFilter::kNone_BlurFlag);
p.setMaskFilter(mf)->unref();
SkScalar ww = SkIntToScalar(W);