detect nearly translate-only matrices when drawing bitmaps (for speed)
rename setXfermode(Mode) to setXfermodeMode(Mode) for sanity
fix memory leak in setXfermode(Mode)
git-svn-id: http://skia.googlecode.com/svn/trunk@239 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleAll.cpp b/samplecode/SampleAll.cpp
index c80ee43..7e83dec 100644
--- a/samplecode/SampleAll.cpp
+++ b/samplecode/SampleAll.cpp
@@ -84,7 +84,7 @@
p.setAlpha(0x11);
p.setStyle(SkPaint::kFill_Style);
- p.setXfermode(SkXfermode::kSrc_Mode);
+ p.setXfermodeMode(SkXfermode::kSrc_Mode);
rast->addLayer(p);
}
@@ -93,7 +93,7 @@
rast->addLayer(p);
p.setAlpha(0x40);
- p.setXfermode(SkXfermode::kSrc_Mode);
+ p.setXfermodeMode(SkXfermode::kSrc_Mode);
p.setStyle(SkPaint::kStroke_Style);
p.setStrokeWidth(SK_Scalar1*2);
rast->addLayer(p);
@@ -107,7 +107,7 @@
p.setStyle(SkPaint::kStroke_Style);
p.setStrokeWidth(SK_Scalar1*3/2);
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p);
}
@@ -119,7 +119,7 @@
p.setAlpha(0x20);
p.setStyle(SkPaint::kFill_Style);
- p.setXfermode(SkXfermode::kSrc_Mode);
+ p.setXfermodeMode(SkXfermode::kSrc_Mode);
rast->addLayer(p);
}
@@ -129,7 +129,7 @@
rast->addLayer(p, SkIntToScalar(3), SkIntToScalar(3));
p.setAlpha(0xFF);
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p, SK_Scalar1*3/2, SK_Scalar1*3/2);
p.setXfermode(NULL);
@@ -141,7 +141,7 @@
rast->addLayer(p);
p.setPathEffect(new SkDiscretePathEffect(SK_Scalar1*4, SK_Scalar1*3))->unref();
- p.setXfermode(SkXfermode::kSrcOut_Mode);
+ p.setXfermodeMode(SkXfermode::kSrcOut_Mode);
rast->addLayer(p);
}
@@ -153,7 +153,7 @@
SkLayerRasterizer* rast2 = new SkLayerRasterizer;
r5(rast2, p);
p.setRasterizer(rast2)->unref();
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p);
}
@@ -208,7 +208,7 @@
lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0);
lattice.postSkew(SK_Scalar1/3, 0, 0, 0);
p.setPathEffect(new Dot2DPathEffect(SK_Scalar1*2, lattice))->unref();
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p);
p.setPathEffect(NULL);
@@ -278,7 +278,7 @@
lattice.setScale(SK_Scalar1, SK_Scalar1*6, 0, 0);
lattice.postRotate(SkIntToScalar(30), 0, 0);
p.setPathEffect(new Line2DPathEffect(SK_Scalar1*2, lattice))->unref();
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p);
p.setPathEffect(NULL);
diff --git a/samplecode/SampleLayerMask.cpp b/samplecode/SampleLayerMask.cpp
index 819eb5c..51a021b 100644
--- a/samplecode/SampleLayerMask.cpp
+++ b/samplecode/SampleLayerMask.cpp
@@ -35,13 +35,13 @@
bounds.offset(-bounds.fLeft, -bounds.fTop);
c.drawOval(bounds, paint);
- paint.setXfermode(SkXfermode::kDstIn_Mode);
+ paint.setXfermodeMode(SkXfermode::kDstIn_Mode);
canvas->drawBitmap(mask, r.fLeft, r.fTop, &paint);
} else {
SkPath p;
p.addOval(r);
p.setFillType(SkPath::kInverseWinding_FillType);
- paint.setXfermode(SkXfermode::kDstOut_Mode);
+ paint.setXfermodeMode(SkXfermode::kDstOut_Mode);
canvas->drawPath(p, paint);
}
}
diff --git a/samplecode/SampleLayers.cpp b/samplecode/SampleLayers.cpp
index 5a52d0e..ae8bd33 100644
--- a/samplecode/SampleLayers.cpp
+++ b/samplecode/SampleLayers.cpp
@@ -26,7 +26,7 @@
SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2, SkShader::kClamp_TileMode);
paint->setShader(s)->unref();
- paint->setXfermode(SkXfermode::kDstIn_Mode);
+ paint->setXfermodeMode(SkXfermode::kDstIn_Mode);
}
static void dump_layers(const char label[], SkCanvas* canvas) {
@@ -162,7 +162,7 @@
canvas->saveLayer(&r, &p);
canvas->drawColor(0xFFFF0000);
p.setAlpha(1); // or 0
- p.setXfermode(SkXfermode::kSrc_Mode);
+ p.setXfermodeMode(SkXfermode::kSrc_Mode);
canvas->drawOval(r, p);
canvas->restore();
return;
@@ -239,7 +239,7 @@
canvas->drawOval(r, p);
p.setAlpha(0x80);
- p.setXfermode(SkXfermode::kDstIn_Mode);
+ p.setXfermodeMode(SkXfermode::kDstIn_Mode);
canvas->drawRect(bounds, p);
canvas->restore();
diff --git a/samplecode/SampleMipMap.cpp b/samplecode/SampleMipMap.cpp
index 025cb07..21bf0f0 100644
--- a/samplecode/SampleMipMap.cpp
+++ b/samplecode/SampleMipMap.cpp
@@ -65,7 +65,7 @@
bg.allocPixels();
SkAutoCanvasRestore acr(canvas, true);
- for (int i = 0; i < N-2; i++) {
+ for (int i = 0; i < 6; i++) {
bg.eraseColor(0);
SkCanvas c(bg);
c.scale(SK_Scalar1 / (1 << i), SK_Scalar1 / (1 << i));
@@ -87,6 +87,8 @@
this->drawBG(canvas);
canvas->translate(SkIntToScalar(10), SkIntToScalar(10));
+
+ canvas->scale(1.00000001, 0.9999999);
drawN2(canvas, fBitmap);
diff --git a/samplecode/SampleStrokeText.cpp b/samplecode/SampleStrokeText.cpp
index e144511..a527bd2 100644
--- a/samplecode/SampleStrokeText.cpp
+++ b/samplecode/SampleStrokeText.cpp
@@ -55,7 +55,7 @@
dst->eraseColor(SK_ColorWHITE);
{
SkCanvas canvas(*dst);
- paint.setXfermode(SkXfermode::kDstATop_Mode);
+ paint.setXfermodeMode(SkXfermode::kDstATop_Mode);
canvas.drawBitmap(src, 0, 0, &paint);
paint.setColor(original.getColor());
paint.setStyle(SkPaint::kStroke_Style);
@@ -86,7 +86,7 @@
SkPaint paint(original);
paint.setAntiAlias(true);
- paint.setXfermode(SkXfermode::kDstATop_Mode);
+ paint.setXfermodeMode(SkXfermode::kDstATop_Mode);
paint.setColor(original.getColor());
paint.setStyle(SkPaint::kStroke_Style);
diff --git a/samplecode/SampleTextEffects.cpp b/samplecode/SampleTextEffects.cpp
index 5f7be1d..0dbde5e 100644
--- a/samplecode/SampleTextEffects.cpp
+++ b/samplecode/SampleTextEffects.cpp
@@ -68,7 +68,7 @@
p.setAlpha(0x11);
p.setStyle(SkPaint::kFill_Style);
- p.setXfermode(SkXfermode::kSrc_Mode);
+ p.setXfermodeMode(SkXfermode::kSrc_Mode);
rast->addLayer(p);
}
@@ -77,7 +77,7 @@
rast->addLayer(p);
p.setAlpha(0x40);
- p.setXfermode(SkXfermode::kSrc_Mode);
+ p.setXfermodeMode(SkXfermode::kSrc_Mode);
p.setStyle(SkPaint::kStroke_Style);
p.setStrokeWidth(SK_Scalar1*2);
rast->addLayer(p);
@@ -91,7 +91,7 @@
p.setStyle(SkPaint::kStroke_Style);
p.setStrokeWidth(SK_Scalar1*3/2);
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p);
}
@@ -103,7 +103,7 @@
p.setAlpha(0x20);
p.setStyle(SkPaint::kFill_Style);
- p.setXfermode(SkXfermode::kSrc_Mode);
+ p.setXfermodeMode(SkXfermode::kSrc_Mode);
rast->addLayer(p);
}
@@ -113,7 +113,7 @@
rast->addLayer(p, SkIntToScalar(3), SkIntToScalar(3));
p.setAlpha(0xFF);
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p, SK_Scalar1*3/2, SK_Scalar1*3/2);
p.setXfermode(NULL);
@@ -127,7 +127,7 @@
rast->addLayer(p);
p.setPathEffect(new SkDiscretePathEffect(SK_Scalar1*4, SK_Scalar1*3))->unref();
- p.setXfermode(SkXfermode::kSrcOut_Mode);
+ p.setXfermodeMode(SkXfermode::kSrcOut_Mode);
rast->addLayer(p);
}
@@ -139,7 +139,7 @@
SkLayerRasterizer* rast2 = new SkLayerRasterizer;
r5(rast2, p);
p.setRasterizer(rast2)->unref();
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p);
}
@@ -196,7 +196,7 @@
lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0);
lattice.postSkew(SK_Scalar1/3, 0, 0, 0);
p.setPathEffect(new Dot2DPathEffect(SK_Scalar1*2, lattice))->unref();
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p);
p.setPathEffect(NULL);
@@ -269,7 +269,7 @@
lattice.setScale(SK_Scalar1, SK_Scalar1*6, 0, 0);
lattice.postRotate(SkIntToScalar(30), 0, 0);
p.setPathEffect(new Line2DPathEffect(SK_Scalar1*2, lattice))->unref();
- p.setXfermode(SkXfermode::kClear_Mode);
+ p.setXfermodeMode(SkXfermode::kClear_Mode);
rast->addLayer(p);
p.setPathEffect(NULL);