• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2019 Google LLC.
2 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
3 #include "tools/fiddle/examples.h"
4 REG_FIDDLE(Matrix_TypeMask, 256, 256, true, 0) {
draw(SkCanvas * canvas)5 void draw(SkCanvas* canvas) {
6     auto debugster = [](const char* prefix, const SkMatrix& matrix) -> void {
7         SkString typeMask;
8         typeMask += SkMatrix::kIdentity_Mask == matrix.getType() ? "kIdentity_Mask " : "";
9         typeMask += SkMatrix::kTranslate_Mask & matrix.getType() ? "kTranslate_Mask " : "";
10         typeMask += SkMatrix::kScale_Mask & matrix.getType() ? "kScale_Mask " : "";
11         typeMask += SkMatrix::kAffine_Mask & matrix.getType() ? "kAffine_Mask " : "";
12         typeMask += SkMatrix::kPerspective_Mask & matrix.getType() ? "kPerspective_Mask" : "";
13         SkDebugf("after %s: %s\n", prefix, typeMask.c_str());
14     };
15 SkMatrix matrix;
16 matrix.reset();
17 debugster("reset", matrix);
18 matrix.postTranslate(1, 0);
19 debugster("postTranslate", matrix);
20 matrix.postScale(2, 1);
21 debugster("postScale", matrix);
22 matrix.postRotate(45);
23 debugster("postScale", matrix);
24 SkPoint polys[][4] = {{{0, 0}, {0, 1}, {1, 1}, {1, 0}}, {{0, 0}, {0, 1}, {2, 1}, {1, 0}}};
25 matrix.setPolyToPoly(polys[0], polys[1], 4);
26 debugster("setPolyToPoly", matrix);
27 }
28 }  // END FIDDLE
29