| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 #include "gm.h" | 7 #include "gm.h" |
| 8 #include "SkCanvas.h" | 8 #include "SkCanvas.h" |
| 9 #include "SkGradientShader.h" | 9 #include "SkGradientShader.h" |
| 10 #include "SkUnitMappers.h" | 10 #include "SkUnitMappers.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 localMatrices.append()->fMatrix.reset(); | 88 localMatrices.append()->fMatrix.reset(); |
| 89 localMatrices.top().fMatrix.setPerspX(-0.007f); | 89 localMatrices.top().fMatrix.setPerspX(-0.007f); |
| 90 localMatrices.top().fMatrix.setPerspY(+0.008f); | 90 localMatrices.top().fMatrix.setPerspY(+0.008f); |
| 91 localMatrices.top().fLabel = "Persp"; | 91 localMatrices.top().fLabel = "Persp"; |
| 92 | 92 |
| 93 static SkBitmap bmp; | 93 static SkBitmap bmp; |
| 94 if (bmp.isNull()) { | 94 if (bmp.isNull()) { |
| 95 makebm(&bmp, kPointSize / 2, kPointSize / 2); | 95 makebm(&bmp, kPointSize / 2, kPointSize / 2); |
| 96 } | 96 } |
| 97 | 97 |
| 98 SkAutoTUnref<SkShader> shader(SkShader::CreateBitmapShader(bmp, | |
| 99 SkShader::kMi
rror_TileMode, | |
| 100 SkShader::kRe
peat_TileMode)); | |
| 101 SkPaint fillPaint; | 98 SkPaint fillPaint; |
| 102 fillPaint.setAntiAlias(true); | 99 fillPaint.setAntiAlias(true); |
| 103 fillPaint.setTextSize(SkIntToScalar(kPointSize)); | 100 fillPaint.setTextSize(SkIntToScalar(kPointSize)); |
| 104 fillPaint.setFilterLevel(SkPaint::kLow_FilterLevel); | 101 fillPaint.setFilterLevel(SkPaint::kLow_FilterLevel); |
| 105 fillPaint.setShader(shader); | |
| 106 | 102 |
| 107 SkPaint outlinePaint; | 103 SkPaint outlinePaint; |
| 108 outlinePaint.setAntiAlias(true); | 104 outlinePaint.setAntiAlias(true); |
| 109 outlinePaint.setTextSize(SkIntToScalar(kPointSize)); | 105 outlinePaint.setTextSize(SkIntToScalar(kPointSize)); |
| 110 outlinePaint.setStyle(SkPaint::kStroke_Style); | 106 outlinePaint.setStyle(SkPaint::kStroke_Style); |
| 111 outlinePaint.setStrokeWidth(0.f); | 107 outlinePaint.setStrokeWidth(0.f); |
| 112 | 108 |
| 113 SkScalar w = fillPaint.measureText(kText, kTextLen); | 109 SkScalar w = fillPaint.measureText(kText, kTextLen); |
| 114 static SkScalar kPadY = 0.5f * kPointSize; | 110 static SkScalar kPadY = 0.5f * kPointSize; |
| 115 static SkScalar kPadX = 1.5f * kPointSize; | 111 static SkScalar kPadX = 1.5f * kPointSize; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 | 147 |
| 152 SkScalar columnH = 0; | 148 SkScalar columnH = 0; |
| 153 for (int m = 0; m < matrices.count(); ++m) { | 149 for (int m = 0; m < matrices.count(); ++m) { |
| 154 columnH = 0; | 150 columnH = 0; |
| 155 canvas->save(); | 151 canvas->save(); |
| 156 canvas->drawText(matrices[m].fLabel, strlen(matrices[m].fLabel), | 152 canvas->drawText(matrices[m].fLabel, strlen(matrices[m].fLabel), |
| 157 0, labelPaint.getTextSize() - 1, labelPaint); | 153 0, labelPaint.getTextSize() - 1, labelPaint); |
| 158 canvas->translate(0, kPadY / 2 + kPointSize); | 154 canvas->translate(0, kPadY / 2 + kPointSize); |
| 159 columnH += kPadY / 2 + kPointSize; | 155 columnH += kPadY / 2 + kPointSize; |
| 160 for (int lm = 0; lm < localMatrices.count(); ++lm) { | 156 for (int lm = 0; lm < localMatrices.count(); ++lm) { |
| 161 shader->setLocalMatrix(localMatrices[lm].fMatrix); | 157 paint.setShader(SkShader::CreateBitmapShader(bmp, |
| 158 SkShader::kMirr
or_TileMode, |
| 159 SkShader::kRepe
at_TileMode, |
| 160 &localMatrices[
lm].fMatrix)); |
| 162 | 161 |
| 163 canvas->save(); | 162 canvas->save(); |
| 164 canvas->concat(matrices[m].fMatrix); | 163 canvas->concat(matrices[m].fMatrix); |
| 165 canvas->drawText(kText, kTextLen, 0, 0, paint); | 164 canvas->drawText(kText, kTextLen, 0, 0, paint); |
| 166 canvas->drawText(kText, kTextLen, 0, 0, outlinePaint); | 165 canvas->drawText(kText, kTextLen, 0, 0, outlinePaint); |
| 167 canvas->restore(); | 166 canvas->restore(); |
| 168 | 167 |
| 169 SkPath path; | 168 SkPath path; |
| 170 path.arcTo(SkRect::MakeXYWH(-0.1f * w, 0.f, | 169 path.arcTo(SkRect::MakeXYWH(-0.1f * w, 0.f, |
| 171 1.2f * w, 2.f * kPointSize), | 170 1.2f * w, 2.f * kPointSize), |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 | 209 |
| 211 private: | 210 private: |
| 212 typedef GM INHERITED; | 211 typedef GM INHERITED; |
| 213 }; | 212 }; |
| 214 | 213 |
| 215 /////////////////////////////////////////////////////////////////////////////// | 214 /////////////////////////////////////////////////////////////////////////////// |
| 216 | 215 |
| 217 static GM* MyFactory(void*) { return new ShaderText2GM; } | 216 static GM* MyFactory(void*) { return new ShaderText2GM; } |
| 218 static GMRegistry reg(MyFactory); | 217 static GMRegistry reg(MyFactory); |
| 219 } | 218 } |
| OLD | NEW |