aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-04-28 14:55:39 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-04-28 14:55:39 +0000
commit9c9005a347e9996f357bd79591bd34f74f8bbc66 (patch)
tree5e03fa9c44510f969be6dee9641968574dbed932 /samplecode
parentc76a4b2a81b5c502ded23dee1e0c5d762028d5cf (diff)
Move SkShader::fLocalMatrix into SkShader constructor.
As a first step towards removing SkShader::setLocalMatrix, which will make SkShader thread-safe, remove calls to setLocalMatrix that happen immediately after the shader is being created. Instead, pass the matrix into the constructor or factory method. BUG=skia:1976 R=scroggo@google.com, reed@google.com, skyostil@google.com, mtklein@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/245963010 git-svn-id: http://skia.googlecode.com/svn/trunk@14401 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode')
-rw-r--r--samplecode/SampleAARectModes.cpp11
-rw-r--r--samplecode/SampleCamera.cpp10
-rw-r--r--samplecode/SampleColorFilter.cpp7
-rw-r--r--samplecode/SampleDash.cpp3
-rw-r--r--samplecode/SampleFatBits.cpp7
-rw-r--r--samplecode/SampleHairModes.cpp11
-rw-r--r--samplecode/SampleLayers.cpp16
-rw-r--r--samplecode/SampleXfermodesBlur.cpp8
8 files changed, 31 insertions, 42 deletions
diff --git a/samplecode/SampleAARectModes.cpp b/samplecode/SampleAARectModes.cpp
index bea0e28799..f9972aea9b 100644
--- a/samplecode/SampleAARectModes.cpp
+++ b/samplecode/SampleAARectModes.cpp
@@ -68,14 +68,13 @@ static SkShader* make_bg_shader() {
*bm.getAddr32(1, 0) = *bm.getAddr32(0, 1) = SkPackARGB32(0xFF, 0xCC,
0xCC, 0xCC);
- SkShader* s = SkShader::CreateBitmapShader(bm,
- SkShader::kRepeat_TileMode,
- SkShader::kRepeat_TileMode);
-
SkMatrix m;
m.setScale(SkIntToScalar(6), SkIntToScalar(6));
- s->setLocalMatrix(m);
- return s;
+
+ return SkShader::CreateBitmapShader(bm,
+ SkShader::kRepeat_TileMode,
+ SkShader::kRepeat_TileMode,
+ &m);
}
class AARectsModesView : public SampleView {
diff --git a/samplecode/SampleCamera.cpp b/samplecode/SampleCamera.cpp
index c700ee4f47..7660129c38 100644
--- a/samplecode/SampleCamera.cpp
+++ b/samplecode/SampleCamera.cpp
@@ -33,15 +33,15 @@ public:
str.printf("/skimages/elephant%d.jpeg", i);
SkBitmap bm;
if (SkImageDecoder::DecodeFile(str.c_str(), &bm)) {
- SkShader* s = SkShader::CreateBitmapShader(bm,
- SkShader::kClamp_TileMode,
- SkShader::kClamp_TileMode);
-
SkRect src = { 0, 0, SkIntToScalar(bm.width()), SkIntToScalar(bm.height()) };
SkRect dst = { -150, -150, 150, 150 };
SkMatrix matrix;
matrix.setRectToRect(src, dst, SkMatrix::kFill_ScaleToFit);
- s->setLocalMatrix(matrix);
+
+ SkShader* s = SkShader::CreateBitmapShader(bm,
+ SkShader::kClamp_TileMode,
+ SkShader::kClamp_TileMode,
+ &matrix);
*fShaders.append() = s;
} else {
break;
diff --git a/samplecode/SampleColorFilter.cpp b/samplecode/SampleColorFilter.cpp
index 2dc2e427dc..fb5d42744f 100644
--- a/samplecode/SampleColorFilter.cpp
+++ b/samplecode/SampleColorFilter.cpp
@@ -92,13 +92,10 @@ SkShader* createChecker() {
bm.lockPixels();
*bm.getAddr32(0, 0) = *bm.getAddr32(1, 1) = SkPreMultiplyColor(0xFFFFFFFF);
*bm.getAddr32(0, 1) = *bm.getAddr32(1, 0) = SkPreMultiplyColor(0xFFCCCCCC);
- SkShader* s = SkShader::CreateBitmapShader(bm, SkShader::kRepeat_TileMode,
- SkShader::kRepeat_TileMode);
-
SkMatrix m;
m.setScale(12, 12);
- s->setLocalMatrix(m);
- return s;
+ return SkShader::CreateBitmapShader(bm, SkShader::kRepeat_TileMode,
+ SkShader::kRepeat_TileMode, &m);
}
static SkBitmap createBitmap(int n) {
diff --git a/samplecode/SampleDash.cpp b/samplecode/SampleDash.cpp
index 26d36942df..e4fa79d47e 100644
--- a/samplecode/SampleDash.cpp
+++ b/samplecode/SampleDash.cpp
@@ -28,8 +28,7 @@ static void setBitmapDash(SkPaint* paint, int width) {
matrix.setScale(SkIntToScalar(width), SK_Scalar1);
SkShader* s = SkShader::CreateBitmapShader(bm, SkShader::kRepeat_TileMode,
- SkShader::kClamp_TileMode);
- s->setLocalMatrix(matrix);
+ SkShader::kClamp_TileMode, &matrix);
paint->setShader(s)->unref();
}
diff --git a/samplecode/SampleFatBits.cpp b/samplecode/SampleFatBits.cpp
index 6900fae3eb..9ea1d9e479 100644
--- a/samplecode/SampleFatBits.cpp
+++ b/samplecode/SampleFatBits.cpp
@@ -43,13 +43,10 @@ static SkShader* createChecker() {
bm.lockPixels();
*bm.getAddr32(0, 0) = *bm.getAddr32(1, 1) = SkPreMultiplyColor(colors[0]);
*bm.getAddr32(0, 1) = *bm.getAddr32(1, 0) = SkPreMultiplyColor(colors[1]);
- SkShader* s = SkShader::CreateBitmapShader(bm, SkShader::kRepeat_TileMode,
- SkShader::kRepeat_TileMode);
-
SkMatrix m;
m.setScale(12, 12);
- s->setLocalMatrix(m);
- return s;
+ return SkShader::CreateBitmapShader(bm, SkShader::kRepeat_TileMode,
+ SkShader::kRepeat_TileMode, &m);
}
class FatBits {
diff --git a/samplecode/SampleHairModes.cpp b/samplecode/SampleHairModes.cpp
index 4aa8e0208f..878857703e 100644
--- a/samplecode/SampleHairModes.cpp
+++ b/samplecode/SampleHairModes.cpp
@@ -66,14 +66,13 @@ static SkShader* make_bg_shader() {
*bm.getAddr32(0, 0) = *bm.getAddr32(1, 1) = 0xFFFFFFFF;
*bm.getAddr32(1, 0) = *bm.getAddr32(0, 1) = SkPackARGB32(0xFF, 0xCC, 0xCC, 0xCC);
- SkShader* s = SkShader::CreateBitmapShader(bm,
- SkShader::kRepeat_TileMode,
- SkShader::kRepeat_TileMode);
-
SkMatrix m;
m.setScale(SkIntToScalar(6), SkIntToScalar(6));
- s->setLocalMatrix(m);
- return s;
+
+ return SkShader::CreateBitmapShader(bm,
+ SkShader::kRepeat_TileMode,
+ SkShader::kRepeat_TileMode,
+ &m);
}
class HairModesView : public SampleView {
diff --git a/samplecode/SampleLayers.cpp b/samplecode/SampleLayers.cpp
index 3ae543915c..51f02a1ade 100644
--- a/samplecode/SampleLayers.cpp
+++ b/samplecode/SampleLayers.cpp
@@ -27,10 +27,11 @@
#include "SkXfermode.h"
#include "SkDrawFilter.h"
-static void make_paint(SkPaint* paint) {
+static void make_paint(SkPaint* paint, const SkMatrix& localMatrix) {
SkColor colors[] = { 0, SK_ColorWHITE };
SkPoint pts[] = { { 0, 0 }, { 0, SK_Scalar1*20 } };
- SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2, SkShader::kClamp_TileMode);
+ SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2, SkShader::kClamp_TileMode,
+ NULL, 0, &localMatrix);
paint->setShader(s)->unref();
paint->setXfermodeMode(SkXfermode::kDstIn_Mode);
@@ -104,19 +105,16 @@ static void test_fade(SkCanvas* canvas) {
dump_layers("outside layer alpha", canvas);
// now apply an effect
+ SkMatrix m;
+ m.setScale(SK_Scalar1, -SK_Scalar1);
+ m.postTranslate(0, SkIntToScalar(100));
SkPaint paint;
- make_paint(&paint);
+ make_paint(&paint, m);
r.set(0, 0, SkIntToScalar(100), SkIntToScalar(20));
// SkDebugf("--------- draw top grad\n");
canvas->drawRect(r, paint);
- SkMatrix m;
- SkShader* s = paint.getShader();
- m.setScale(SK_Scalar1, -SK_Scalar1);
- m.postTranslate(0, SkIntToScalar(100));
- s->setLocalMatrix(m);
-
r.fTop = SkIntToScalar(80);
r.fBottom = SkIntToScalar(100);
// SkDebugf("--------- draw bot grad\n");
diff --git a/samplecode/SampleXfermodesBlur.cpp b/samplecode/SampleXfermodesBlur.cpp
index ea9561dfe1..de75d059a8 100644
--- a/samplecode/SampleXfermodesBlur.cpp
+++ b/samplecode/SampleXfermodesBlur.cpp
@@ -151,12 +151,12 @@ protected:
const SkScalar w = SkIntToScalar(W);
const SkScalar h = SkIntToScalar(H);
- SkShader* s = SkShader::CreateBitmapShader(fBG,
- SkShader::kRepeat_TileMode,
- SkShader::kRepeat_TileMode);
SkMatrix m;
m.setScale(SkIntToScalar(6), SkIntToScalar(6));
- s->setLocalMatrix(m);
+ SkShader* s = SkShader::CreateBitmapShader(fBG,
+ SkShader::kRepeat_TileMode,
+ SkShader::kRepeat_TileMode,
+ &m);
SkPaint labelP;
labelP.setAntiAlias(true);