Flutter Engine
The Flutter Engine
TriangulatorBench.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2021 Google LLC
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "bench/Benchmark.h"
14#include <vector>
15
16using namespace skia_private;
17
18#if !defined(SK_ENABLE_OPTIMIZE_SIZE)
19
20struct TigerPath {
21 const char* fVerbs;
22 std::vector<SkPoint> fPoints;
23};
24
25// Paths in desk_tigersvg.skp that take the "inner triangulation" path through the tessellator.
26extern TigerPath kTigerPaths[];
27extern int kNumTigerPaths;
28constexpr float kTigerTolerance = 0.728769f;
29
31public:
33 fName.printf("triangulator_%s", name);
34 }
35
36 const char* onGetName() override { return fName.c_str(); }
38
39protected:
40 void onDelayedSetup() override {
41 for (int i = 0; i < kNumTigerPaths; ++i) {
43 const std::vector<SkPoint>& pts = kTigerPaths[i].fPoints;
44 int ptsIdx = 0;
45 for (const char* v = kTigerPaths[i].fVerbs; *v; ++v) {
46 switch (*v) {
47 case 'm':
48 path.moveTo(pts[ptsIdx]);
49 ++ptsIdx;
50 break;
51 case 'l':
52 path.lineTo(pts[ptsIdx]);
53 ++ptsIdx;
54 break;
55 case 'q':
56 path.quadTo(pts[ptsIdx], pts[ptsIdx + 1]);
57 ptsIdx += 2;
58 break;
59 case 'c':
60 path.cubicTo(pts[ptsIdx], pts[ptsIdx + 1], pts[ptsIdx + 2]);
61 ptsIdx += 3;
62 break;
63 case 'z':
64 path.close();
65 break;
66 }
67 }
68 SkASSERT(ptsIdx == (int)pts.size());
69 }
70 }
71
72 void onDraw(int loops, SkCanvas*) final {
73 for (int i = 0; i < loops; ++i) {
74 this->doLoop();
75 }
76 }
77
78 // GrEagerVertexAllocator.
79 void* lock(size_t stride, int eagerCount) override {
80 size_t allocSize = eagerCount * stride;
81 if (allocSize > fVertexAllocSize) {
82 fVertexData.reset(allocSize);
83 }
84 return fVertexData;
85 }
86
87 void unlock(int) override {}
88
89 virtual void doLoop() = 0;
90
94 size_t fVertexAllocSize = 0;
96};
97
99public:
101
102 void doLoop() override {
103 for (const SkPath& path : fPaths) {
104 bool isLinear;
106 &isLinear);
107 }
108 }
109};
110
112
114public:
116
117 void doLoop() override {
118 bool isLinear;
119 for (const SkPath& path : fPaths) {
121 GrInnerFanTriangulator(path, &fArena).pathToTriangles(this, &breadcrumbList, &isLinear);
122 }
123 fArena.reset();
124 }
125};
126
128
129#if 0
130#include "src/gpu/tessellate/GrMiddleOutPolygonTriangulator.h"
131
132class MiddleOutComparisonBench : public TriangulatorBenchmark {
133public:
134 MiddleOutComparisonBench() : TriangulatorBenchmark("MiddleOutComparison") {}
135 void doLoop() override {
136 for (const SkPath& path : fPaths) {
137 int maxInnerTriangles = path.countVerbs() - 1;
138 auto* data = this->GrEagerVertexAllocator::lock<SkPoint>(maxInnerTriangles * 3);
139 int vertexCount = GrMiddleOutPolygonTriangulator::WritePathInnerFan(
140 data, 3/*perTriangleVertexAdvance*/, path) * 3;
141 this->unlock(vertexCount);
142 }
143 }
144};
145
146DEF_BENCH( return new MiddleOutComparisonBench(); );
147#endif
148
150 {"mcccccccclclclccccclcclccccccclclcccccccccccccccccccccccccccccllcclcccclccccccccccccccclz",
151 {{-129.83f,103.06f}, {-129.33f,109.11f}, {-128.34f,115.68f}, {-126.6f,118.8f},
152 {-126.6f,118.8f}, {-130.2f,131.2f}, {-121.4f,144.4f}, {-121.4f,144.4f}, {-121.8f,151.6f},
153 {-120.2f,154.8f}, {-120.2f,154.8f}, {-116.2f,163.2f}, {-111.4f,164.f}, {-107.52f,164.65f},
154 {-98.793f,167.72f}, {-88.932f,169.12f}, {-88.932f,169.12f}, {-71.8f,183.2f}, {-75.f,196.f},
155 {-75.f,196.f}, {-75.4f,212.4f}, {-79.f,214.f}, {-79.f,214.f}, {-67.4f,202.8f}, {-77.f,219.6f},
156 {-81.4f,238.4f}, {-81.4f,238.4f}, {-55.8f,216.8f}, {-71.4f,235.2f}, {-81.4f,261.2f},
157 {-81.4f,261.2f}, {-61.8f,242.8f}, {-69.f,251.2f}, {-72.2f,260.f}, {-72.2f,260.f},
158 {-29.f,232.8f}, {-59.8f,262.4f}, {-59.8f,262.4f}, {-51.8f,258.8f}, {-47.4f,261.6f},
159 {-47.4f,261.6f}, {-40.6f,260.4f}, {-41.4f,262.f}, {-41.4f,262.f}, {-62.2f,272.4f},
160 {-65.8f,290.8f}, {-65.8f,290.8f}, {-57.4f,280.8f}, {-60.6f,291.6f}, {-60.2f,303.2f},
161 {-60.2f,303.2f}, {-56.2f,281.6f}, {-56.6f,319.2f}, {-56.6f,319.2f}, {-37.4f,301.2f},
162 {-49.f,322.f}, {-49.f,338.8f}, {-49.f,338.8f}, {-33.8f,322.4f}, {-40.2f,335.2f},
163 {-40.2f,335.2f}, {-30.2f,326.4f}, {-34.2f,341.6f}, {-34.2f,341.6f}, {-35.f,352.f},
164 {-30.6f,340.8f}, {-30.6f,340.8f}, {-14.6f,310.2f}, {-20.6f,336.4f}, {-20.6f,336.4f},
165 {-21.4f,355.6f}, {-16.6f,340.8f}, {-16.6f,340.8f}, {-16.2f,351.2f}, {-7.f,358.4f},
166 {-7.f,358.4f}, {-8.2f,307.6f}, {4.6f,343.6f}, {8.6f,360.f}, {8.6f,360.f}, {11.4f,350.8f},
167 {11.f,345.6f}, {19.f,353.6f}, {19.f,353.6f}, {34.2f,330.8f}, {31.f,344.f}, {31.f,344.f},
168 {23.4f,360.f}, {25.f,364.8f}, {25.f,364.8f}, {41.8f,330.f}, {43.f,328.4f}, {43.f,328.4f},
169 {41.f,370.8f}, {51.8f,334.8f}, {51.8f,334.8f}, {57.4f,346.8f}, {54.6f,351.2f}, {54.6f,351.2f},
170 {62.6f,343.2f}, {61.8f,340.f}, {61.8f,340.f}, {66.4f,331.8f}, {69.2f,345.4f}, {69.2f,345.4f},
171 {71.f,354.8f}, {72.6f,351.6f}, {72.6f,351.6f}, {76.6f,375.6f}, {77.8f,352.8f}, {77.8f,352.8f},
172 {79.4f,339.2f}, {72.2f,327.6f}, {72.2f,327.6f}, {73.f,324.4f}, {70.2f,320.4f}, {70.2f,320.4f},
173 {83.8f,342.f}, {76.6f,313.2f}, {76.6f,313.2f}, {87.801f,321.2f}, {89.001f,321.2f},
174 {89.001f,321.2f}, {75.4f,298.f}, {84.2f,302.8f}, {84.2f,302.8f}, {79.f,292.4f},
175 {97.001f,304.4f}, {97.001f,304.4f}, {81.f,288.4f}, {98.601f,298.f}, {98.601f,298.f},
176 {106.6f,304.4f}, {99.001f,294.4f}, {99.001f,294.4f}, {84.6f,278.4f}, {106.6f,296.4f},
177 {106.6f,296.4f}, {118.2f,312.8f}, {119.f,315.6f}, {119.f,315.6f}, {109.f,286.4f},
178 {104.6f,283.6f}, {104.6f,283.6f}, {113.f,247.2f}, {154.2f,262.8f}, {154.2f,262.8f},
179 {161.f,280.f}, {165.4f,261.6f}, {165.4f,261.6f}, {178.2f,255.2f}, {189.4f,282.8f},
180 {189.4f,282.8f}, {193.4f,269.2f}, {192.6f,266.4f}, {192.6f,266.4f}, {199.4f,267.6f},
181 {198.6f,266.4f}, {198.6f,266.4f}, {211.8f,270.8f}, {213.f,270.f}, {213.f,270.f},
182 {219.8f,276.8f}, {220.2f,273.2f}, {220.2f,273.2f}, {229.4f,276.f}, {227.4f,272.4f},
183 {227.4f,272.4f}, {236.2f,288.f}, {236.6f,291.6f}, {239.f,277.6f}, {241.f,280.4f},
184 {241.f,280.4f}, {242.6f,272.8f}, {241.8f,271.6f}, {241.f,270.4f}, {261.8f,278.4f},
185 {266.6f,299.2f}, {268.6f,307.6f}, {268.6f,307.6f}, {274.6f,292.8f}, {273.f,288.8f},
186 {273.f,288.8f}, {278.2f,289.6f}, {278.6f,294.f}, {278.6f,294.f}, {282.6f,270.8f},
187 {277.8f,264.8f}, {277.8f,264.8f}, {282.2f,264.f}, {283.4f,267.6f}, {283.4f,260.4f},
188 {283.4f,260.4f}, {290.6f,261.2f}, {290.6f,258.8f}, {290.6f,258.8f}, {295.f,254.8f},
189 {297.f,259.6f}, {297.f,259.6f}, {284.6f,224.4f}, {303.f,243.6f}, {303.f,243.6f},
190 {310.2f,254.4f}, {306.6f,235.6f}, {303.f,216.8f}, {299.f,215.2f}, {303.8f,214.8f},
191 {303.8f,214.8f}, {304.6f,211.2f}, {302.6f,209.6f}, {300.6f,208.f}, {303.8f,209.6f},
192 {303.8f,209.6f}, {303.8f,209.6f}, {308.6f,213.6f}, {303.4f,191.6f}, {303.4f,191.6f},
193 {309.8f,193.2f}, {297.8f,164.f}, {297.8f,164.f}, {300.6f,161.6f}, {296.6f,153.2f},
194 {296.6f,153.2f}, {304.6f,157.6f}, {307.4f,156.f}, {307.4f,156.f}, {307.f,154.4f},
195 {303.8f,150.4f}, {303.8f,150.4f}, {282.2f,95.6f}, {302.6f,117.6f}, {302.6f,117.6f},
196 {314.45f,131.15f}, {308.05f,108.35f}, {308.05f,108.35f}, {298.94f,84.341f}, {299.72f,80.045f},
197 {-129.83f,103.06f}}},
198 {"mcccccclclcccccccccccclccccccccccccccccccccz",
199 {{299.72f,80.245f}, {300.34f,80.426f}, {302.55f,81.55f}, {303.8f,83.2f}, {303.8f,83.2f},
200 {310.6f,94.f}, {305.4f,75.6f}, {305.4f,75.6f}, {296.2f,46.8f}, {305.f,58.f}, {305.f,58.f},
201 {311.f,65.2f}, {307.8f,51.6f}, {303.94f,35.173f}, {301.4f,28.8f}, {301.4f,28.8f},
202 {301.4f,28.8f}, {313.f,33.6f}, {286.2f,-5.99999f}, {295.f,-2.39999f}, {295.f,-2.39999f},
203 {275.4f,-42.f}, {253.8f,-47.2f}, {245.8f,-53.2f}, {245.8f,-53.2f}, {284.2f,-91.2f},
204 {271.4f,-128.f}, {271.4f,-128.f}, {264.6f,-133.2f}, {255.f,-124.f}, {255.f,-124.f},
205 {248.6f,-119.2f}, {242.6f,-120.8f}, {242.6f,-120.8f}, {211.8f,-119.6f}, {209.8f,-119.6f},
206 {207.8f,-119.6f}, {173.f,-156.8f}, {107.4f,-139.2f}, {107.4f,-139.2f}, {102.2f,-137.2f},
207 {97.801f,-138.4f}, {97.801f,-138.4f}, {79.4f,-154.4f}, {30.6f,-131.6f}, {30.6f,-131.6f},
208 {20.6f,-129.6f}, {19.f,-129.6f}, {17.4f,-129.6f}, {14.6f,-129.6f}, {6.59998f,-123.2f},
209 {-1.40002f,-116.8f}, {-1.80002f,-116.f}, {-3.80002f,-114.4f}, {-3.80002f,-114.4f},
210 {-20.2f,-103.2f}, {-25.f,-102.4f}, {-25.f,-102.4f}, {-36.6f,-96.f}, {-41.f,-86.f},
211 {-44.6f,-84.8f}, {-44.6f,-84.8f}, {-46.2f,-77.6f}, {-46.6f,-76.4f}, {-46.6f,-76.4f},
212 {-51.4f,-72.8f}, {-52.2f,-67.2f}, {-52.2f,-67.2f}, {-61.f,-61.2f}, {-60.6f,-56.8f},
213 {-60.6f,-56.8f}, {-62.2f,-51.6f}, {-63.f,-46.8f}, {-63.f,-46.8f}, {-70.2f,-42.f},
214 {-69.4f,-39.2f}, {-69.4f,-39.2f}, {-77.f,-25.2f}, {-75.8f,-18.4f}, {-75.8f,-18.4f},
215 {-82.2f,-18.8f}, {-85.f,-16.4f}, {-85.f,-16.4f}, {-85.8f,-11.6f}, {-87.4f,-11.2f},
216 {-87.4f,-11.2f}, {-90.2f,-10.f}, {-87.8f,-6.00001f}, {-87.8f,-6.00001f}, {-89.4f,-3.20001f},
217 {-89.8f,-1.60001f}, {-89.8f,-1.60001f}, {-89.f,1.19999f}, {-93.4f,6.79999f},
218 {-93.4f,6.79999f}, {-99.8f,25.6f}, {-97.8f,30.8f}, {-97.8f,30.8f}, {-97.4f,35.6f},
219 {-100.2f,37.2f}, {-100.2f,37.2f}, {-103.8f,36.8f}, {-95.4f,48.8f}, {-95.4f,48.8f},
220 {-94.6f,50.f}, {-97.8f,52.4f}, {-97.8f,52.4f}, {-115.f,56.f}, {-117.4f,72.4f},
221 {-117.4f,72.4f}, {-131.f,87.2f}, {-131.f,92.4f}, {-131.f,94.705f}, {-130.73f,97.852f},
222 {-130.03f,102.46f}, {-130.03f,102.46f}, {-130.6f,110.8f}, {-103.f,111.6f}, {-75.4f,112.4f},
223 {299.72f,80.245f}, {299.72f,80.245f}}},
224 {"mcccclccccccccccclz",
225 {{-115.6f,102.6f}, {-140.6f,63.2f}, {-126.2f,119.6f}, {-126.2f,119.6f}, {-117.4f,154.f},
226 {12.2f,116.4f}, {12.2f,116.4f}, {12.2f,116.4f}, {181.f,86.f}, {192.2f,82.f}, {203.4f,78.f},
227 {298.6f,84.4f}, {298.6f,84.4f}, {293.f,67.6f}, {228.2f,21.2f}, {209.f,44.4f}, {195.4f,40.4f},
228 {181.8f,36.4f}, {184.2f,46.f}, {181.f,46.8f}, {177.8f,47.6f}, {138.6f,22.8f}, {132.2f,23.6f},
229 {125.8f,24.4f}, {100.46f,0.649006f}, {115.4f,32.4f}, {131.4f,66.4f}, {57.f,71.6f},
230 {40.2f,60.4f}, {23.4f,49.2f}, {47.4f,78.8f}, {47.4f,78.8f}, {65.8f,98.8f}, {31.4f,82.f},
231 {31.4f,82.f}, {-3.f,69.2f}, {-27.f,94.8f}, {-30.2f,95.6f}, {-33.4f,96.4f}, {-38.2f,99.6f},
232 {-39.f,93.2f}, {-39.8f,86.8f}, {-47.31f,70.099f}, {-79.f,96.4f}, {-99.f,113.f},
233 {-112.8f,91.f}, {-112.8f,91.f}, {-115.6f,102.6f}}},
234 {"mcccccccclcccclcccz",
235 {{133.51f,25.346f}, {127.11f,26.146f}, {101.74f,2.407f}, {116.71f,34.146f}, {133.31f,69.346f},
236 {58.31f,73.346f}, {41.51f,62.146f}, {24.709f,50.946f}, {48.71f,80.546f}, {48.71f,80.546f},
237 {67.11f,100.55f}, {32.709f,83.746f}, {32.709f,83.746f}, {-1.69101f,70.946f},
238 {-25.691f,96.546f}, {-28.891f,97.346f}, {-32.091f,98.146f}, {-36.891f,101.35f},
239 {-37.691f,94.946f}, {-38.491f,88.546f}, {-45.87f,72.012f}, {-77.691f,98.146f},
240 {-98.927f,115.49f}, {-112.42f,94.037f}, {-112.42f,94.037f}, {-115.62f,104.15f},
241 {-140.62f,64.346f}, {-125.55f,122.66f}, {-125.55f,122.66f}, {-116.74f,157.06f},
242 {13.51f,118.15f}, {13.51f,118.15f}, {13.51f,118.15f}, {182.31f,87.746f}, {193.51f,83.746f},
243 {204.71f,79.746f}, {299.04f,86.073f}, {299.04f,86.073f}, {293.51f,68.764f}, {228.71f,22.364f},
244 {210.31f,46.146f}, {196.71f,42.146f}, {183.11f,38.146f}, {185.51f,47.746f}, {182.31f,48.546f},
245 {179.11f,49.346f}, {139.91f,24.546f}, {133.51f,25.346f}}},
246 {"mcccccccclcccclcccz",
247 {{134.82f,27.091f}, {128.42f,27.891f}, {103.68f,3.862f}, {118.02f,35.891f}, {134.22f,72.092f},
248 {59.619f,75.092f}, {42.819f,63.892f}, {26.019f,52.692f}, {50.019f,82.292f}, {50.019f,82.292f},
249 {68.419f,102.29f}, {34.019f,85.492f}, {34.019f,85.492f}, {-0.380993f,72.692f},
250 {-24.382f,98.292f}, {-27.582f,99.092f}, {-30.782f,99.892f}, {-35.582f,103.09f},
251 {-36.382f,96.692f}, {-37.182f,90.292f}, {-44.43f,73.925f}, {-76.382f,99.892f},
252 {-98.855f,117.98f}, {-112.04f,97.074f}, {-112.04f,97.074f}, {-115.64f,105.69f},
253 {-139.44f,66.692f}, {-124.89f,125.71f}, {-124.89f,125.71f}, {-116.09f,160.11f},
254 {14.82f,119.89f}, {14.82f,119.89f}, {14.82f,119.89f}, {183.62f,89.492f}, {194.82f,85.492f},
255 {206.02f,81.492f}, {299.47f,87.746f}, {299.47f,87.746f}, {294.02f,69.928f}, {229.22f,23.528f},
256 {211.62f,47.891f}, {198.02f,43.891f}, {184.42f,39.891f}, {186.82f,49.491f}, {183.62f,50.292f},
257 {180.42f,51.092f}, {141.22f,26.291f}, {134.82f,27.091f}}},
258 {"mcccccccclcccclcccz",
259 {{136.13f,28.837f}, {129.73f,29.637f}, {105.f,5.605f}, {119.33f,37.637f}, {136.13f,75.193f},
260 {60.394f,76.482f}, {44.128f,65.637f}, {27.328f,54.437f}, {51.328f,84.037f}, {51.328f,84.037f},
261 {69.728f,104.04f}, {35.328f,87.237f}, {35.328f,87.237f}, {0.927998f,74.437f},
262 {-23.072f,100.04f}, {-26.272f,100.84f}, {-29.472f,101.64f}, {-34.272f,104.84f},
263 {-35.072f,98.437f}, {-35.872f,92.037f}, {-42.989f,75.839f}, {-75.073f,101.64f},
264 {-98.782f,120.47f}, {-111.66f,100.11f}, {-111.66f,100.11f}, {-115.66f,107.24f},
265 {-137.46f,70.437f}, {-124.24f,128.76f}, {-124.24f,128.76f}, {-115.44f,163.16f},
266 {16.13f,121.64f}, {16.13f,121.64f}, {16.13f,121.64f}, {184.93f,91.237f}, {196.13f,87.237f},
267 {207.33f,83.237f}, {299.91f,89.419f}, {299.91f,89.419f}, {294.53f,71.092f}, {229.73f,24.691f},
268 {212.93f,49.637f}, {199.33f,45.637f}, {185.73f,41.637f}, {188.13f,51.237f}, {184.93f,52.037f},
269 {181.73f,52.837f}, {142.53f,28.037f}, {136.13f,28.837f}}},
270 {"mcccccccclcccclcccz",
271 {{137.44f,30.583f}, {131.04f,31.383f}, {106.81f,7.129f}, {120.64f,39.383f}, {137.44f,78.583f},
272 {62.237f,78.583f}, {45.437f,67.383f}, {28.637f,56.183f}, {52.637f,85.783f}, {52.637f,85.783f},
273 {71.037f,105.78f}, {36.637f,88.983f}, {36.637f,88.983f}, {2.237f,76.183f}, {-21.763f,101.78f},
274 {-24.963f,102.58f}, {-28.163f,103.38f}, {-32.963f,106.58f}, {-33.763f,100.18f},
275 {-34.563f,93.783f}, {-41.548f,77.752f}, {-73.763f,103.38f}, {-98.709f,122.96f},
276 {-111.27f,103.15f}, {-111.27f,103.15f}, {-115.67f,108.78f}, {-135.47f,73.982f},
277 {-123.58f,131.82f}, {-123.58f,131.82f}, {-114.78f,166.22f}, {17.44f,123.38f},
278 {17.44f,123.38f}, {17.44f,123.38f}, {186.24f,92.983f}, {197.44f,88.983f}, {208.64f,84.983f},
279 {300.35f,91.092f}, {300.35f,91.092f}, {295.04f,72.255f}, {230.24f,25.855f}, {214.24f,51.383f},
280 {200.64f,47.383f}, {187.04f,43.383f}, {189.44f,52.983f}, {186.24f,53.783f}, {183.04f,54.583f},
281 {143.84f,29.783f}, {137.44f,30.583f}}},
282 {"mcccccccclcccclcccz",
283 {{138.75f,32.328f}, {132.35f,33.128f}, {106.38f,9.677f}, {121.95f,41.128f}, {141.15f,79.928f},
284 {63.546f,80.328f}, {46.746f,69.128f}, {29.946f,57.928f}, {53.946f,87.528f}, {53.946f,87.528f},
285 {72.346f,107.53f}, {37.946f,90.728f}, {37.946f,90.728f}, {3.54599f,77.928f},
286 {-20.454f,103.53f}, {-23.654f,104.33f}, {-26.854f,105.13f}, {-31.654f,108.33f},
287 {-32.454f,101.93f}, {-33.254f,95.528f}, {-40.108f,79.665f}, {-72.454f,105.13f},
288 {-98.636f,125.46f}, {-110.89f,106.18f}, {-110.89f,106.18f}, {-115.69f,110.33f},
289 {-133.69f,77.128f}, {-122.93f,134.87f}, {-122.93f,134.87f}, {-114.13f,169.27f},
290 {18.75f,125.13f}, {18.75f,125.13f}, {18.75f,125.13f}, {187.55f,94.728f}, {198.75f,90.728f},
291 {209.95f,86.728f}, {300.78f,92.764f}, {300.78f,92.764f}, {295.55f,73.419f}, {230.75f,27.019f},
292 {215.55f,53.128f}, {201.95f,49.128f}, {188.35f,45.128f}, {190.75f,54.728f}, {187.55f,55.528f},
293 {184.35f,56.328f}, {145.15f,31.528f}, {138.75f,32.328f}}},
294 {"mcccccccclcccclcccz",
295 {{140.06f,34.073f}, {133.66f,34.873f}, {107.31f,11.613f}, {123.26f,42.873f}, {143.66f,82.874f},
296 {64.855f,82.074f}, {48.055f,70.874f}, {31.255f,59.674f}, {55.255f,89.274f}, {55.255f,89.274f},
297 {73.655f,109.27f}, {39.255f,92.474f}, {39.255f,92.474f}, {4.85499f,79.674f},
298 {-19.145f,105.27f}, {-22.345f,106.07f}, {-25.545f,106.87f}, {-30.345f,110.07f},
299 {-31.145f,103.67f}, {-31.945f,97.274f}, {-38.668f,81.578f}, {-71.145f,106.87f},
300 {-98.564f,127.95f}, {-110.51f,109.22f}, {-110.51f,109.22f}, {-115.71f,111.87f},
301 {-131.71f,81.674f}, {-122.27f,137.93f}, {-122.27f,137.93f}, {-113.47f,172.33f},
302 {20.05f,126.87f}, {20.05f,126.87f}, {20.05f,126.87f}, {188.85f,96.474f}, {200.05f,92.474f},
303 {211.25f,88.474f}, {301.21f,94.437f}, {301.21f,94.437f}, {296.05f,74.583f}, {231.25f,28.183f},
304 {216.85f,54.874f}, {203.25f,50.874f}, {189.65f,46.873f}, {192.05f,56.474f}, {188.85f,57.274f},
305 {185.65f,58.074f}, {146.45f,33.273f}, {140.05f,34.073f}}},
306 {"mcccccccclcccclcccz",
307 {{141.36f,35.819f}, {134.96f,36.619f}, {107.52f,13.944f}, {124.56f,44.619f}, {146.56f,84.219f},
308 {66.164f,83.819f}, {49.364f,72.619f}, {32.564f,61.419f}, {56.564f,91.019f}, {56.564f,91.019f},
309 {74.964f,111.02f}, {40.564f,94.219f}, {40.564f,94.219f}, {6.164f,81.419f}, {-17.836f,107.02f},
310 {-21.036f,107.82f}, {-24.236f,108.62f}, {-29.036f,111.82f}, {-29.836f,105.42f},
311 {-30.636f,99.019f}, {-37.227f,83.492f}, {-69.836f,108.62f}, {-98.491f,130.44f},
312 {-110.13f,112.26f}, {-110.13f,112.26f}, {-115.73f,113.42f}, {-130.13f,85.019f},
313 {-121.62f,140.98f}, {-121.62f,140.98f}, {-112.82f,175.38f}, {21.36f,128.62f},
314 {21.36f,128.62f}, {21.36f,128.62f}, {190.16f,98.219f}, {201.36f,94.219f}, {212.56f,90.219f},
315 {301.66f,96.11f}, {301.66f,96.11f}, {296.56f,75.746f}, {231.76f,29.346f}, {218.16f,56.619f},
316 {204.56f,52.619f}, {190.96f,48.619f}, {193.36f,58.219f}, {190.16f,59.019f}, {186.96f,59.819f},
317 {147.76f,35.019f}, {141.36f,35.819f}}},
318 {"mcccccccclcccclcccz",
319 {{142.67f,37.565f}, {136.27f,38.365f}, {108.83f,15.689f}, {125.87f,46.365f}, {147.87f,85.965f},
320 {67.474f,85.565f}, {50.674f,74.365f}, {33.874f,63.165f}, {57.874f,92.765f}, {57.874f,92.765f},
321 {76.274f,112.76f}, {41.874f,95.965f}, {41.874f,95.965f}, {7.473f,83.165f}, {-16.527f,108.76f},
322 {-19.727f,109.56f}, {-22.927f,110.36f}, {-27.727f,113.56f}, {-28.527f,107.16f},
323 {-29.327f,100.76f}, {-35.786f,85.405f}, {-68.527f,110.36f}, {-98.418f,132.93f},
324 {-109.74f,115.29f}, {-109.74f,115.29f}, {-115.74f,114.96f}, {-129.35f,88.564f},
325 {-120.96f,144.04f}, {-120.96f,144.04f}, {-112.16f,178.44f}, {22.67f,130.36f},
326 {22.67f,130.36f}, {22.67f,130.36f}, {191.47f,99.965f}, {202.67f,95.965f}, {213.87f,91.965f},
327 {302.09f,97.783f}, {302.09f,97.783f}, {297.08f,76.91f}, {232.27f,30.51f}, {219.47f,58.365f},
328 {205.87f,54.365f}, {192.27f,50.365f}, {194.67f,59.965f}, {191.47f,60.765f}, {188.27f,61.565f},
329 {149.07f,36.765f}, {142.67f,37.565f}}},
330 {"mcccccccclcccclcccz",
331 {{143.98f,39.31f}, {137.58f,40.11f}, {110.53f,17.223f}, {127.18f,48.11f}, {149.18f,88.91f},
332 {68.783f,87.31f}, {51.983f,76.11f}, {35.183f,64.91f}, {59.183f,94.51f}, {59.183f,94.51f},
333 {77.583f,114.51f}, {43.183f,97.71f}, {43.183f,97.71f}, {8.78299f,84.91f}, {-15.217f,110.51f},
334 {-18.417f,111.31f}, {-21.618f,112.11f}, {-26.418f,115.31f}, {-27.218f,108.91f},
335 {-28.018f,102.51f}, {-34.346f,87.318f}, {-67.218f,112.11f}, {-98.345f,135.42f},
336 {-109.36f,118.33f}, {-109.36f,118.33f}, {-115.76f,116.51f}, {-128.76f,92.51f},
337 {-120.31f,147.09f}, {-120.31f,147.09f}, {-111.51f,181.49f}, {23.98f,132.11f},
338 {23.98f,132.11f}, {23.98f,132.11f}, {192.78f,101.71f}, {203.98f,97.71f}, {215.18f,93.71f},
339 {302.53f,99.456f}, {302.53f,99.456f}, {297.58f,78.074f}, {232.78f,31.673f}, {220.78f,60.11f},
340 {207.18f,56.11f}, {193.58f,52.11f}, {195.98f,61.71f}, {192.78f,62.51f}, {189.58f,63.31f},
341 {150.38f,38.51f}, {143.98f,39.31f}}},
342 {"mcccccccclcccclcccz",
343 {{145.29f,41.055f}, {138.89f,41.855f}, {112.92f,18.411f}, {128.49f,49.855f}, {149.69f,92.656f},
344 {70.092f,89.056f}, {53.292f,77.856f}, {36.492f,66.656f}, {60.492f,96.256f}, {60.492f,96.256f},
345 {78.892f,116.26f}, {44.492f,99.456f}, {44.492f,99.456f}, {10.092f,86.656f},
346 {-13.908f,112.26f}, {-17.108f,113.06f}, {-20.308f,113.86f}, {-25.108f,117.06f},
347 {-25.908f,110.66f}, {-26.708f,104.26f}, {-32.905f,89.232f}, {-65.908f,113.86f},
348 {-98.273f,137.91f}, {-108.98f,121.36f}, {-108.98f,121.36f}, {-115.78f,118.06f},
349 {-128.58f,94.856f}, {-119.65f,150.15f}, {-119.65f,150.15f}, {-110.85f,184.55f},
350 {25.29f,133.86f}, {25.29f,133.86f}, {25.29f,133.86f}, {194.09f,103.46f}, {205.29f,99.456f},
351 {216.49f,95.456f}, {302.96f,101.13f}, {302.96f,101.13f}, {298.09f,79.237f}, {233.29f,32.837f},
352 {222.09f,61.856f}, {208.49f,57.856f}, {194.89f,53.855f}, {197.29f,63.456f}, {194.09f,64.256f},
353 {190.89f,65.056f}, {151.69f,40.255f}, {145.29f,41.055f}}},
354 {"mcccclccccccccccclz",
355 {{-115.8f,119.6f}, {-128.6f,97.6f}, {-119.f,153.2f}, {-119.f,153.2f}, {-110.2f,187.6f},
356 {26.6f,135.6f}, {26.6f,135.6f}, {26.6f,135.6f}, {195.4f,105.2f}, {206.6f,101.2f},
357 {217.8f,97.2f}, {303.4f,102.8f}, {303.4f,102.8f}, {298.6f,80.4f}, {233.8f,34.f},
358 {223.4f,63.6f}, {209.8f,59.6f}, {196.2f,55.6f}, {198.6f,65.2f}, {195.4f,66.f}, {192.2f,66.8f},
359 {153.f,42.f}, {146.6f,42.8f}, {140.2f,43.6f}, {114.98f,19.793f}, {129.8f,51.6f},
360 {152.03f,99.307f}, {69.041f,89.227f}, {54.6f,79.6f}, {37.8f,68.4f}, {61.8f,98.f},
361 {61.8f,98.f}, {80.2f,118.f}, {45.8f,101.2f}, {45.8f,101.2f}, {11.4f,88.4f}, {-12.6f,114.f},
362 {-15.8f,114.8f}, {-19.f,115.6f}, {-23.8f,118.8f}, {-24.6f,112.4f}, {-25.4f,106.f},
363 {-31.465f,91.144f}, {-64.6f,115.6f}, {-98.2f,140.4f}, {-108.6f,124.4f}, {-108.6f,124.4f},
364 {-115.8f,119.6f}}},
365 {"mlcccccccccccccclcccccclz",
366 {{-34.6f,266.4f}, {-44.6f,274.f}, {-44.6f,274.f}, {-34.2f,266.4f}, {-30.6f,267.6f},
367 {-30.6f,267.6f}, {-37.4f,278.8f}, {-38.2f,284.f}, {-38.2f,284.f}, {-27.8f,271.2f},
368 {-22.2f,271.6f}, {-22.2f,271.6f}, {-14.6f,272.f}, {-14.6f,282.8f}, {-14.6f,282.8f},
369 {-9.f,272.4f}, {-5.8f,272.8f}, {-5.8f,272.8f}, {-4.6f,279.2f}, {-5.8f,286.f}, {-5.8f,286.f},
370 {-1.8f,278.4f}, {2.2f,280.f}, {2.2f,280.f}, {8.6f,278.f}, {7.8f,289.6f}, {7.8f,289.6f},
371 {7.8f,300.f}, {7.f,302.8f}, {7.f,302.8f}, {12.6f,276.4f}, {15.f,276.f}, {15.f,276.f},
372 {23.f,274.8f}, {27.8f,283.6f}, {27.8f,283.6f}, {23.8f,276.f}, {28.6f,278.f}, {28.6f,278.f},
373 {39.4f,279.6f}, {42.6f,286.4f}, {42.6f,286.4f}, {35.8f,274.4f}, {41.4f,277.6f}, {49.4f,284.f},
374 {49.4f,284.f}, {57.8f,305.2f}, {59.8f,306.8f}, {59.8f,306.8f}, {52.2f,285.2f}, {53.8f,285.2f},
375 {53.8f,285.2f}, {51.8f,273.2f}, {57.f,288.f}, {57.f,288.f}, {53.8f,274.f}, {59.4f,274.8f},
376 {65.f,275.6f}, {69.4f,285.6f}, {77.8f,283.2f}, {77.8f,283.2f}, {87.401f,288.8f},
377 {89.401f,219.6f}, {-34.599f,266.4f}}},
378 {"mcccllccccccccz",
379 {{-29.8f,173.6f}, {-29.8f,173.6f}, {-15.f,167.6f}, {25.f,173.6f}, {25.f,173.6f}, {32.2f,174.f},
380 {39.f,165.2f}, {45.8f,156.4f}, {72.6f,149.2f}, {79.f,151.2f}, {88.601f,157.6f},
381 {89.401f,158.8f}, {89.401f,158.8f}, {101.8f,169.2f}, {102.2f,176.8f}, {102.6f,184.4f},
382 {87.801f,232.4f}, {78.2f,248.4f}, {68.6f,264.4f}, {59.f,276.8f}, {39.8f,274.4f},
383 {39.8f,274.4f}, {19.f,270.4f}, {-6.60001f,274.4f}, {-6.60001f,274.4f}, {-35.8f,272.8f},
384 {-38.6f,264.8f}, {-41.4f,256.8f}, {-27.4f,241.6f}, {-27.4f,241.6f}, {-27.4f,241.6f},
385 {-23.f,233.2f}, {-24.2f,218.8f}, {-25.4f,204.4f}, {-25.f,176.4f}, {-29.8f,173.6f}}},
386 {"mccccccz",
387 {{-7.8f,175.6f}, {0.599999f,194.f}, {-29.f,259.2f}, {-29.f,259.2f}, {-31.f,260.8f},
388 {-16.34f,266.85f}, {-6.2f,264.4f}, {4.746f,261.76f}, {45.f,266.f}, {45.f,266.f},
389 {68.6f,250.4f}, {81.4f,206.f}, {81.4f,206.f}, {81.4f,206.f}, {91.801f,182.f}, {74.2f,178.8f},
390 {56.6f,175.6f}, {-7.8f,175.6f}, {-7.8f,175.6f}}},
391 {"mccclccccccz",
392 {{-9.8f,174.4f}, {-9.8f,174.4f}, {-12.6f,196.8f}, {-9.4f,205.2f}, {-6.2f,213.6f},
393 {-7.f,215.6f}, {-7.8f,219.6f}, {-8.6f,223.6f}, {-4.2f,233.6f}, {1.4f,239.6f}, {13.4f,241.2f},
394 {13.4f,241.2f}, {28.6f,237.6f}, {37.8f,240.4f}, {37.8f,240.4f}, {46.794f,241.74f},
395 {50.2f,226.8f}, {50.2f,226.8f}, {55.f,220.4f}, {62.2f,217.6f}, {69.4f,214.8f}, {76.6f,173.2f},
396 {72.6f,165.2f}, {68.6f,157.2f}, {54.2f,152.8f}, {38.2f,168.4f}, {22.2f,184.f}, {20.2f,167.2f},
397 {-9.8f,174.4f}}},
398 {"mccccccccz",
399 {{43.88f,40.321f}, {71.601f,44.281f}, {97.121f,8.641f}, {98.881f,-1.04f}, {100.64f,-10.72f},
400 {90.521f,-22.6f}, {90.521f,-22.6f}, {91.841f,-25.68f}, {87.001f,-39.76f}, {81.721f,-49.f},
401 {76.441f,-58.24f}, {60.54f,-57.266f}, {43.f,-58.24f}, {27.16f,-59.12f}, {8.67999f,-35.8f},
402 {7.35999f,-34.04f}, {6.03999f,-32.28f}, {12.2f,6.001f}, {13.52f,11.721f}, {14.84f,17.441f},
403 {12.2f,43.841f}, {12.2f,43.841f}, {46.44f,34.741f}, {16.16f,36.361f}, {43.88f,40.321f}}},
404 {"mccccccccz",
405 {{8.088f,-33.392f}, {6.792f,-31.664f}, {12.84f,5.921f}, {14.136f,11.537f}, {15.432f,17.153f},
406 {12.84f,43.073f}, {12.84f,43.073f}, {45.512f,34.193f}, {16.728f,35.729f}, {43.944f,39.617f},
407 {71.161f,43.505f}, {96.217f,8.513f}, {97.945f,-0.992001f}, {99.673f,-10.496f},
408 {89.737f,-22.16f}, {89.737f,-22.16f}, {91.033f,-25.184f}, {86.281f,-39.008f},
409 {81.097f,-48.08f}, {75.913f,-57.152f}, {60.302f,-56.195f}, {43.08f,-57.152f},
410 {27.528f,-58.016f}, {9.384f,-35.12f}, {8.088f,-33.392f}}},
411 {"mccccccccz",
412 {{8.816f,-32.744f}, {7.544f,-31.048f}, {13.48f,5.841f}, {14.752f,11.353f}, {16.024f,16.865f},
413 {13.48f,42.305f}, {13.48f,42.305f}, {44.884f,33.145f}, {17.296f,35.097f}, {44.008f,38.913f},
414 {70.721f,42.729f}, {95.313f,8.385f}, {97.009f,-0.943996f}, {98.705f,-10.272f},
415 {88.953f,-21.72f}, {88.953f,-21.72f}, {90.225f,-24.688f}, {85.561f,-38.256f},
416 {80.473f,-47.16f}, {75.385f,-56.064f}, {60.063f,-55.125f}, {43.16f,-56.064f},
417 {27.896f,-56.912f}, {10.088f,-34.44f}, {8.81601f,-32.744f}}},
418 {"mccccccccz",
419 {{9.544f,-32.096f}, {8.296f,-30.432f}, {14.12f,5.761f}, {15.368f,11.169f}, {16.616f,16.577f},
420 {14.12f,41.537f}, {14.12f,41.537f}, {43.556f,32.497f}, {17.864f,34.465f}, {44.072f,38.209f},
421 {70.281f,41.953f}, {94.409f,8.257f}, {96.073f,-0.895f}, {97.737f,-10.048f}, {88.169f,-21.28f},
422 {88.169f,-21.28f}, {89.417f,-24.192f}, {84.841f,-37.504f}, {79.849f,-46.24f},
423 {74.857f,-54.976f}, {59.824f,-54.055f}, {43.24f,-54.976f}, {28.264f,-55.808f},
424 {10.792f,-33.76f}, {9.544f,-32.096f}}},
425 {"mccccccccz",
426 {{10.272f,-31.448f}, {9.048f,-29.816f}, {14.76f,5.681f}, {15.984f,10.985f}, {17.208f,16.289f},
427 {14.76f,40.769f}, {14.76f,40.769f}, {42.628f,31.849f}, {18.432f,33.833f}, {44.136f,37.505f},
428 {69.841f,41.177f}, {93.505f,8.129f}, {95.137f,-0.848003f}, {96.769f,-9.824f},
429 {87.385f,-20.84f}, {87.385f,-20.84f}, {88.609f,-23.696f}, {84.121f,-36.752f},
430 {79.225f,-45.32f}, {74.329f,-53.888f}, {59.585f,-52.985f}, {43.32f,-53.888f},
431 {28.632f,-54.704f}, {11.496f,-33.08f}, {10.272f,-31.448f}}},
432 {"mccccccccz",
433 {{44.2f,36.8f}, {69.4f,40.4f}, {92.601f,8.f}, {94.201f,-0.799999f}, {95.801f,-9.6f},
434 {86.601f,-20.4f}, {86.601f,-20.4f}, {87.801f,-23.2f}, {83.4f,-36.f}, {78.6f,-44.4f},
435 {73.8f,-52.8f}, {59.346f,-51.914f}, {43.4f,-52.8f}, {29.f,-53.6f}, {12.2f,-32.4f},
436 {11.f,-30.8f}, {9.8f,-29.2f}, {15.4f,5.6f}, {16.6f,10.8f}, {17.8f,16.f}, {15.4f,40.f},
437 {15.4f,40.f}, {40.9f,31.4f}, {19.f,33.2f}, {44.2f,36.8f}}},
438 {"mclllccccccccccccccclccccclcccccccclcccllclcccccccccccccccclccz",
439 {{143.8f,259.6f}, {143.8f,259.6f}, {164.2f,257.6f}, {171.f,250.8f}, {175.4f,254.4f},
440 {193.f,216.f}, {196.6f,221.2f}, {196.6f,221.2f}, {211.f,206.4f}, {210.2f,198.4f},
441 {209.4f,190.4f}, {223.f,204.4f}, {223.f,204.4f}, {223.f,204.4f}, {222.2f,192.8f},
442 {229.4f,199.6f}, {229.4f,199.6f}, {227.f,184.f}, {235.4f,192.f}, {235.4f,192.f},
443 {224.86f,161.84f}, {247.4f,187.6f}, {253.f,194.f}, {248.6f,187.2f}, {248.6f,187.2f},
444 {248.6f,187.2f}, {222.6f,139.2f}, {244.2f,153.6f}, {244.2f,153.6f}, {246.2f,130.8f},
445 {245.f,126.4f}, {243.8f,122.f}, {241.8f,99.6f}, {237.f,94.4f}, {232.2f,89.2f}, {237.4f,87.6f},
446 {243.f,92.8f}, {243.f,92.8f}, {231.8f,68.8f}, {245.f,80.8f}, {245.f,80.8f}, {241.4f,65.6f},
447 {237.f,62.8f}, {237.f,62.8f}, {231.4f,45.6f}, {246.6f,56.4f}, {246.6f,56.4f}, {242.2f,44.f},
448 {239.f,40.8f}, {239.f,40.8f}, {227.4f,13.2f}, {234.6f,18.f}, {239.f,21.6f}, {239.f,21.6f},
449 {232.2f,7.60001f}, {238.6f,12.f}, {245.f,16.4f}, {245.f,16.f}, {245.f,16.f}, {245.f,16.f},
450 {223.8f,-17.2f}, {244.2f,0.400011f}, {244.2f,0.400011f}, {236.04f,-13.518f}, {232.6f,-20.4f},
451 {232.6f,-20.4f}, {213.8f,-40.8f}, {228.2f,-34.4f}, {233.f,-32.8f}, {233.f,-32.8f},
452 {224.2f,-42.8f}, {216.2f,-44.4f}, {208.2f,-46.f}, {218.6f,-52.4f}, {225.f,-50.4f},
453 {231.4f,-48.4f}, {247.f,-40.8f}, {247.f,-40.8f}, {247.f,-40.8f}, {259.8f,-22.f},
454 {263.8f,-21.6f}, {263.8f,-21.6f}, {243.8f,-29.2f}, {249.8f,-21.2f}, {249.8f,-21.2f},
455 {264.2f,-7.19999f}, {257.f,-7.59999f}, {257.f,-7.59999f}, {251.f,-0.399987f},
456 {255.8f,8.40001f}, {255.8f,8.40001f}, {237.34f,-9.99099f}, {252.2f,15.6f}, {259.f,32.f},
457 {259.f,32.f}, {234.6f,7.20001f}, {245.8f,29.2f}, {245.8f,29.2f}, {263.f,52.8f}, {265.f,53.2f},
458 {267.f,53.6f}, {271.4f,62.4f}, {271.4f,62.4f}, {267.f,60.4f}, {272.2f,69.2f}, {272.2f,69.2f},
459 {261.f,57.2f}, {267.f,70.4f}, {272.6f,84.8f}, {272.6f,84.8f}, {252.2f,62.8f}, {265.8f,92.4f},
460 {265.8f,92.4f}, {249.4f,87.2f}, {258.2f,104.4f}, {258.2f,104.4f}, {256.6f,120.4f},
461 {257.f,125.6f}, {257.4f,130.8f}, {258.6f,159.2f}, {254.2f,167.2f}, {249.8f,175.2f},
462 {260.2f,194.4f}, {262.2f,198.4f}, {264.2f,202.4f}, {267.8f,213.2f}, {259.f,204.f},
463 {250.2f,194.8f}, {254.6f,200.4f}, {256.6f,209.2f}, {258.6f,218.f}, {264.6f,233.6f},
464 {263.8f,239.2f}, {263.8f,239.2f}, {262.6f,240.4f}, {259.4f,236.8f}, {259.4f,236.8f},
465 {244.6f,214.f}, {246.2f,228.4f}, {246.2f,228.4f}, {245.f,236.4f}, {241.8f,245.2f},
466 {241.8f,245.2f}, {238.6f,256.f}, {238.6f,247.2f}, {238.6f,247.2f}, {235.4f,230.4f},
467 {232.6f,238.f}, {229.8f,245.6f}, {226.2f,251.6f}, {223.4f,254.f}, {220.6f,256.4f},
468 {215.4f,233.6f}, {214.2f,244.f}, {214.2f,244.f}, {202.2f,231.6f}, {197.4f,248.f},
469 {185.8f,264.4f}, {185.8f,264.4f}, {185.4f,252.f}, {184.2f,258.f}, {184.2f,258.f},
470 {154.2f,264.f}, {143.8f,259.6f}}},
471 {"mcccccccccccccccccccccccccccccccccccccccccclccccccccccccccccccccccccccccccclccccccccccccccccl"
472 "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclccccccccccccz",
473 {{20.895f,54.407f}, {22.437f,55.87f}, {49.4f,84.8f}, {49.4f,84.8f}, {84.6f,121.4f},
474 {56.6f,87.2f}, {56.6f,87.2f}, {49.f,82.4f}, {39.8f,63.6f}, {39.8f,63.6f}, {38.6f,60.8f},
475 {53.8f,70.8f}, {53.8f,70.8f}, {57.8f,71.6f}, {71.4f,90.8f}, {71.4f,90.8f}, {64.6f,88.4f},
476 {69.4f,95.6f}, {69.4f,95.6f}, {72.2f,97.6f}, {92.601f,113.2f}, {92.601f,113.2f},
477 {96.201f,117.2f}, {100.2f,118.8f}, {100.2f,118.8f}, {114.2f,113.6f}, {107.8f,126.8f},
478 {107.8f,126.8f}, {110.2f,133.6f}, {115.8f,122.f}, {115.8f,122.f}, {127.f,105.2f},
479 {110.6f,107.6f}, {110.6f,107.6f}, {80.6f,110.4f}, {73.8f,94.4f}, {73.8f,94.4f}, {71.4f,92.f},
480 {80.2f,94.4f}, {80.2f,94.4f}, {88.601f,96.4f}, {73.f,82.f}, {73.f,82.f}, {75.4f,82.f},
481 {84.6f,88.8f}, {84.6f,88.8f}, {95.001f,98.f}, {97.001f,96.f}, {97.001f,96.f}, {115.f,87.2f},
482 {125.4f,94.8f}, {125.4f,94.8f}, {127.4f,96.4f}, {121.8f,103.2f}, {123.4f,108.4f},
483 {125.f,113.6f}, {129.8f,126.f}, {129.8f,126.f}, {127.4f,127.6f}, {127.8f,138.4f},
484 {127.8f,138.4f}, {144.6f,161.6f}, {135.f,159.6f}, {135.f,159.6f}, {119.4f,159.2f},
485 {134.2f,166.8f}, {134.2f,166.8f}, {137.4f,168.8f}, {146.2f,176.f}, {146.2f,176.f},
486 {143.4f,174.8f}, {141.8f,180.f}, {141.8f,180.f}, {146.6f,184.f}, {143.8f,188.8f},
487 {143.8f,188.8f}, {137.8f,190.f}, {136.6f,194.f}, {136.6f,194.f}, {143.4f,202.f},
488 {133.4f,202.4f}, {133.4f,202.4f}, {137.f,206.8f}, {132.2f,218.8f}, {132.2f,218.8f},
489 {127.4f,218.8f}, {121.f,224.4f}, {121.f,224.4f}, {123.4f,229.2f}, {113.f,234.8f},
490 {113.f,234.8f}, {104.6f,236.4f}, {107.4f,243.2f}, {107.4f,243.2f}, {99.401f,249.2f},
491 {97.001f,265.2f}, {97.001f,265.2f}, {96.201f,275.6f}, {93.801f,278.8f}, {99.001f,276.8f},
492 {104.2f,274.8f}, {103.4f,262.4f}, {103.4f,262.4f}, {98.601f,246.8f}, {141.4f,230.8f},
493 {141.4f,230.8f}, {145.4f,229.2f}, {146.2f,224.f}, {146.2f,224.f}, {148.2f,224.4f},
494 {157.f,232.f}, {157.f,232.f}, {164.6f,243.2f}, {165.f,234.f}, {165.f,234.f}, {166.2f,230.4f},
495 {164.6f,224.4f}, {164.6f,224.4f}, {170.6f,202.8f}, {156.6f,196.4f}, {156.6f,196.4f},
496 {146.6f,162.8f}, {160.6f,171.2f}, {160.6f,171.2f}, {163.4f,176.8f}, {174.2f,182.f},
497 {174.2f,182.f}, {177.8f,179.6f}, {176.2f,174.8f}, {184.6f,168.8f}, {184.6f,168.8f},
498 {187.4f,175.2f}, {193.4f,167.2f}, {193.4f,167.2f}, {197.f,142.8f}, {209.4f,157.2f},
499 {209.4f,157.2f}, {213.4f,158.4f}, {214.6f,151.6f}, {214.6f,151.6f}, {218.2f,141.2f},
500 {214.6f,127.6f}, {214.6f,127.6f}, {218.2f,127.2f}, {227.8f,133.2f}, {227.8f,133.2f},
501 {230.6f,129.6f}, {221.4f,112.8f}, {225.4f,115.2f}, {229.4f,117.6f}, {233.8f,119.2f},
502 {233.8f,119.2f}, {234.6f,117.2f}, {224.6f,104.8f}, {224.6f,104.8f}, {220.2f,102.f},
503 {215.f,81.5999f}, {215.f,81.5999f}, {222.2f,85.1999f}, {212.2f,69.9999f}, {212.2f,69.9999f},
504 {212.2f,66.7999f}, {218.2f,55.5999f}, {218.2f,55.5999f}, {217.4f,48.7999f}, {218.2f,49.1999f},
505 {218.2f,49.1999f}, {221.f,50.3999f}, {229.f,51.9999f}, {222.2f,45.5999f}, {215.4f,39.1999f},
506 {223.f,34.3999f}, {223.f,34.3999f}, {227.4f,31.5999f}, {213.8f,31.9999f}, {213.8f,31.9999f},
507 {208.6f,27.5999f}, {209.f,23.5999f}, {209.f,23.5999f}, {217.f,25.5999f}, {202.6f,11.1999f},
508 {200.2f,7.59995f}, {197.8f,3.99994f}, {207.4f,-1.20006f}, {207.4f,-1.20006f},
509 {220.6f,-4.80006f}, {209.f,-8.00006f}, {209.f,-8.00006f}, {189.4f,-7.60006f},
510 {200.2f,-18.4001f}, {200.2f,-18.4001f}, {206.2f,-18.0001f}, {204.6f,-20.4001f},
511 {204.6f,-20.4001f}, {199.4f,-21.6001f}, {189.8f,-28.0001f}, {189.8f,-28.0001f},
512 {185.8f,-31.6001f}, {189.4f,-30.8001f}, {189.4f,-30.8001f}, {206.2f,-29.6001f},
513 {177.4f,-40.8001f}, {177.4f,-40.8001f}, {185.4f,-40.8001f}, {167.4f,-51.2001f},
514 {167.4f,-51.2001f}, {165.4f,-52.8001f}, {162.2f,-60.4001f}, {162.2f,-60.4001f},
515 {156.2f,-65.6001f}, {151.4f,-72.4001f}, {151.4f,-72.4001f}, {151.f,-76.8001f},
516 {146.2f,-81.6001f}, {146.2f,-81.6001f}, {134.6f,-95.2001f}, {129.f,-94.8f}, {129.f,-94.8f},
517 {114.2f,-98.4f}, {109.f,-97.6001f}, {109.f,-97.6001f}, {56.2f,-93.2001f}, {29.8f,-80.4f},
518 {37.6f,-59.4001f}, {37.6f,-59.4001f}, {44.f,-51.0001f}, {53.2f,-54.8001f}, {53.2f,-54.8001f},
519 {57.8f,-61.0001f}, {69.4f,-58.8001f}, {69.4f,-58.8001f}, {89.801f,-55.6001f},
520 {87.201f,-59.2001f}, {87.201f,-59.2001f}, {84.801f,-63.8001f}, {68.6f,-70.0001f},
521 {68.4f,-70.6001f}, {68.2f,-71.2001f}, {59.4f,-74.6001f}, {59.4f,-74.6001f}, {56.4f,-75.8f},
522 {52.f,-85.0001f}, {52.f,-85.0001f}, {48.8f,-88.4001f}, {64.6f,-82.6001f}, {64.6f,-82.6001f},
523 {63.4f,-81.6001f}, {70.8f,-77.6001f}, {70.8f,-77.6001f}, {88.201f,-78.6001f},
524 {98.801f,-67.8f}, {98.801f,-67.8f}, {109.6f,-51.2001f}, {109.8f,-59.4f}, {109.8f,-59.4f},
525 {112.6f,-68.8f}, {100.8f,-90.f}, {100.8f,-90.f}, {101.2f,-92.f}, {109.4f,-85.4f},
526 {109.4f,-85.4f}, {110.8f,-87.4f}, {111.6f,-81.6f}, {111.6f,-81.6f}, {111.8f,-79.2f},
527 {115.6f,-71.2f}, {115.6f,-71.2f}, {118.4f,-58.2f}, {122.f,-65.6f}, {122.f,-65.6f},
528 {126.6f,-56.2f}, {128.f,-53.6f}, {122.f,-46.f}, {122.f,-46.f}, {121.8f,-43.2f},
529 {122.6f,-43.4f}, {117.f,-35.8f}, {111.4f,-28.2f}, {114.8f,-23.8f}, {114.8f,-23.8f},
530 {113.4f,-17.2f}, {122.2f,-17.6f}, {122.2f,-17.6f}, {124.8f,-15.4f}, {128.2f,-15.4f},
531 {128.2f,-15.4f}, {130.f,-13.4f}, {132.4f,-14.f}, {132.4f,-14.f}, {134.f,-17.8f},
532 {140.2f,-15.8f}, {140.2f,-15.8f}, {141.6f,-18.2f}, {149.8f,-18.6f}, {149.8f,-18.6f},
533 {150.8f,-21.2f}, {151.2f,-22.8f}, {154.6f,-23.4f}, {158.f,-24.f}, {133.4f,-67.f},
534 {133.4f,-67.f}, {139.8f,-67.8f}, {131.6f,-80.2f}, {131.6f,-80.2f}, {129.4f,-86.8f},
535 {140.8f,-72.2f}, {143.f,-70.8f}, {145.2f,-69.4f}, {146.2f,-67.2f}, {144.6f,-67.4f},
536 {143.f,-67.6f}, {141.2f,-65.4f}, {142.6f,-65.2f}, {144.f,-65.f}, {157.f,-50.f},
537 {160.4f,-39.8f}, {163.8f,-29.6f}, {169.8f,-25.6f}, {176.f,-19.6f}, {182.2f,-13.6f},
538 {181.4f,10.6f}, {181.4f,10.6f}, {181.f,19.4f}, {187.f,30.f}, {187.f,30.f}, {189.f,33.8f},
539 {184.8f,52.f}, {184.8f,52.f}, {182.8f,54.2f}, {184.2f,55.f}, {184.2f,55.f}, {185.2f,56.2f},
540 {192.f,69.4f}, {192.f,69.4f}, {190.2f,69.2f}, {193.8f,72.8f}, {193.8f,72.8f}, {199.f,78.8f},
541 {192.6f,75.8f}, {192.6f,75.8f}, {186.6f,74.2f}, {193.6f,84.f}, {193.6f,84.f}, {194.8f,85.8f},
542 {185.8f,81.2f}, {185.8f,81.2f}, {176.6f,80.6f}, {188.2f,87.8f}, {188.2f,87.8f}, {196.8f,95.f},
543 {185.4f,90.6f}, {185.4f,90.6f}, {180.8f,88.8f}, {184.f,95.6f}, {184.f,95.6f}, {187.2f,97.2f},
544 {204.4f,104.2f}, {204.4f,104.2f}, {204.8f,108.f}, {201.8f,113.f}, {201.8f,113.f},
545 {202.2f,117.f}, {200.f,120.4f}, {200.f,120.4f}, {198.8f,128.6f}, {198.2f,129.4f},
546 {198.2f,129.4f}, {194.f,129.6f}, {186.6f,143.4f}, {186.6f,143.4f}, {184.8f,146.f},
547 {174.6f,158.f}, {174.6f,158.f}, {172.6f,165.f}, {154.6f,157.8f}, {154.6f,157.8f},
548 {148.f,161.2f}, {150.f,157.8f}, {150.f,157.8f}, {149.6f,155.6f}, {154.4f,149.6f},
549 {154.4f,149.6f}, {161.4f,147.f}, {158.8f,136.2f}, {158.8f,136.2f}, {162.8f,134.8f},
550 {151.6f,132.f}, {151.8f,130.8f}, {152.f,129.6f}, {157.8f,128.2f}, {157.8f,128.2f},
551 {165.8f,126.2f}, {161.4f,123.8f}, {161.4f,123.8f}, {160.8f,119.8f}, {163.8f,114.2f},
552 {163.8f,114.2f}, {175.4f,113.4f}, {163.8f,97.2f}, {163.8f,97.2f}, {153.f,89.6f},
553 {152.f,83.8f}, {152.f,83.8f}, {164.6f,75.6f}, {156.4f,63.2f}, {156.6f,59.6f}, {156.8f,56.f},
554 {158.f,34.4f}, {158.f,34.4f}, {156.f,28.2f}, {153.f,14.6f}, {153.f,14.6f}, {155.2f,9.39998f},
555 {162.6f,-3.20002f}, {162.6f,-3.20002f}, {165.4f,-7.40002f}, {174.2f,-12.2f}, {172.f,-15.2f},
556 {169.8f,-18.2f}, {162.f,-16.4f}, {162.f,-16.4f}, {154.2f,-17.8f}, {154.8f,-12.6f},
557 {154.8f,-12.6f}, {153.2f,-11.6f}, {152.4f,-6.60002f}, {152.4f,-6.60002f}, {151.68f,1.33298f},
558 {142.8f,7.59998f}, {142.8f,7.59998f}, {131.6f,13.8f}, {140.8f,17.8f}, {140.8f,17.8f},
559 {146.8f,24.4f}, {137.f,24.6f}, {137.f,24.6f}, {126.f,22.8f}, {134.2f,33.f}, {134.2f,33.f},
560 {145.f,45.8f}, {142.f,48.6f}, {142.f,48.6f}, {131.8f,49.6f}, {144.4f,58.8f}, {144.4f,58.8f},
561 {144.4f,58.8f}, {143.6f,56.8f}, {143.8f,58.6f}, {144.f,60.4f}, {147.f,64.6f}, {147.8f,66.6f},
562 {148.6f,68.6f}, {144.6f,68.8f}, {144.6f,68.8f}, {145.2f,78.4f}, {129.8f,74.2f},
563 {129.8f,74.2f}, {128.2f,74.4f}, {126.6f,74.6f}, {115.4f,73.8f}, {109.6f,71.6f},
564 {103.8f,69.4f}, {97.001f,69.4f}, {97.001f,69.4f}, {97.001f,69.4f}, {93.001f,71.2f},
565 {85.4f,71.f}, {77.8f,70.8f}, {69.8f,73.6f}, {69.8f,73.6f}, {65.4f,73.2f}, {74.f,68.8f},
566 {74.2f,69.f}, {74.4f,69.2f}, {80.f,63.6f}, {72.f,64.2f}, {50.203f,65.835f}, {39.4f,55.6f},
567 {39.4f,55.6f}, {37.4f,54.2f}, {34.8f,51.4f}, {34.8f,51.4f}, {24.8f,49.4f}, {36.2f,63.8f},
568 {36.2f,63.8f}, {37.4f,65.2f}, {36.f,66.2f}, {36.f,66.2f}, {35.2f,64.6f}, {27.4f,59.2f},
569 {27.4f,59.2f}, {24.589f,58.227f}, {23.226f,56.893f}, {20.895f,54.407f}}},
570 {"mcccz",
571 {{29.f,128.8f}, {29.f,128.8f}, {28.8f,127.f}, {30.6f,127.8f}, {32.4f,128.6f}, {205.8f,115.6f},
572 {229.4f,148.f}, {229.4f,148.f}, {219.8f,122.4f}, {29.f,128.8f}}},
573 {"mcccz",
574 {{11.526f,104.46f}, {11.526f,104.46f}, {11.082f,106.46f}, {12.631f,105.25f}, {28.699f,92.622f},
575 {61.141f,33.72f}, {116.831f,28.086f}, {116.831f,28.086f}, {78.519f,15.976f},
576 {11.531f,104.46f}}},
577 {"mcccz",
578 {{22.726f,102.66f}, {22.726f,102.66f}, {21.363f,101.47f}, {23.231f,100.85f}, {25.099f,100.22f},
579 {137.541f,27.72f}, {176.831f,35.686f}, {176.831f,35.686f}, {149.721f,28.176f},
580 {22.731f,102.66f}}},
581 {"mcccz",
582 {{36.855f,98.898f}, {36.855f,98.898f}, {35.654f,97.543f}, {37.586f,97.158f}, {39.518f,96.774f},
583 {160.216f,39.061f}, {198.176f,51.927f}, {198.176f,51.927f}, {172.236f,41.053f},
584 {36.856f,98.898f}}},
585};
586
588
589#endif // SK_ENABLE_OPTIMIZE_SIZE
const char * backend
#define SkASSERT(cond)
Definition: SkAssert.h:116
int kNumTigerPaths
constexpr float kTigerTolerance
DEF_BENCH(return new PathToTrianglesBench();)
TigerPath kTigerPaths[]
int pathToTriangles(GrEagerVertexAllocator *vertexAlloc, BreadcrumbTriangleList *breadcrumbList, bool *isLinear)
static int PathToTriangles(const SkPath &path, SkScalar tolerance, const SkRect &clipBounds, GrEagerVertexAllocator *vertexAllocator, bool *isLinear)
static constexpr int kArenaDefaultChunkSize
Definition: SkPath.h:59
void printf(const char format[],...) SK_PRINTF_LIKE(2
Definition: SkString.cpp:534
const char * c_str() const
Definition: SkString.h:133
void unlock(int) override
void onDraw(int loops, SkCanvas *) final
SkArenaAllocWithReset fArena
void onDelayedSetup() override
TriangulatorBenchmark(const char *name)
AutoTMalloc< char > fVertexData
bool isSuitableFor(Backend backend) final
void * lock(size_t stride, int eagerCount) override
const char * onGetName() override
virtual void doLoop()=0
T * reset(size_t count=0)
Definition: SkTemplates.h:296
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
Definition: switches.h:57
DEF_SWITCHES_START aot vmservice shared library name
Definition: switches.h:32
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
Definition: switches.h:259
static constexpr SkRect MakeEmpty()
Definition: SkRect.h:595
std::vector< SkPoint > fPoints
const char * fVerbs
std::shared_ptr< const fml::Mapping > data
Definition: texture_gles.cc:63