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 | 7 |
8 #include <cmath> | 8 #include <cmath> |
9 #include "SkCanvas.h" | 9 #include "SkCanvas.h" |
10 #include "SkGeometry.h" | 10 #include "SkGeometry.h" |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 SkPaint paint; | 163 SkPaint paint; |
164 paint.setAntiAlias(true); | 164 paint.setAntiAlias(true); |
165 SkPath path; | 165 SkPath path; |
166 path.moveTo(0, 0); | 166 path.moveTo(0, 0); |
167 path.conicTo(SkBits2Float(0x00003939), SkBits2Float(0x42487fff), // 2.05276
e-41f, 50.125f | 167 path.conicTo(SkBits2Float(0x00003939), SkBits2Float(0x42487fff), // 2.05276
e-41f, 50.125f |
168 SkBits2Float(0x48082361), SkBits2Float(0x4408e8e9), // 139406, 547.
639f | 168 SkBits2Float(0x48082361), SkBits2Float(0x4408e8e9), // 139406, 547.
639f |
169 SkBits2Float(0x4d1ade0f)); // 1.6239e+08f | 169 SkBits2Float(0x4d1ade0f)); // 1.6239e+08f |
170 canvas->drawPath(path, paint); | 170 canvas->drawPath(path, paint); |
171 } | 171 } |
172 | 172 |
| 173 static void test_fuzz_crbug_662780() { |
| 174 auto surface(SkSurface::MakeRasterN32Premul(250, 250)); |
| 175 SkCanvas* canvas = surface->getCanvas(); |
| 176 SkPaint paint; |
| 177 paint.setAntiAlias(true); |
| 178 SkPath path; |
| 179 path.moveTo(SkBits2Float(0x41000000), SkBits2Float(0x431e0000)); // 8, 158 |
| 180 path.lineTo(SkBits2Float(0x41000000), SkBits2Float(0x42f00000)); // 8, 120 |
| 181 // 8, 8, 8.00002f, 8, 0.707107f |
| 182 path.conicTo(SkBits2Float(0x41000000), SkBits2Float(0x41000000), |
| 183 SkBits2Float(0x41000010), SkBits2Float(0x41000000), SkBits2Float(0x3
f3504f3)); |
| 184 path.lineTo(SkBits2Float(0x439a0000), SkBits2Float(0x41000000)); // 308, 8 |
| 185 // 308, 8, 308, 8, 0.707107f |
| 186 path.conicTo(SkBits2Float(0x439a0000), SkBits2Float(0x41000000), |
| 187 SkBits2Float(0x439a0000), SkBits2Float(0x41000000), SkBits2Float(0x3
f3504f3)); |
| 188 path.lineTo(SkBits2Float(0x439a0000), SkBits2Float(0x431e0000)); // 308, 15
8 |
| 189 // 308, 158, 308, 158, 0.707107f |
| 190 path.conicTo(SkBits2Float(0x439a0000), SkBits2Float(0x431e0000), |
| 191 SkBits2Float(0x439a0000), SkBits2Float(0x431e0000), SkBits2Float(0x3
f3504f3)); |
| 192 path.lineTo(SkBits2Float(0x41000000), SkBits2Float(0x431e0000)); // 8, 158 |
| 193 // 8, 158, 8, 158, 0.707107f |
| 194 path.conicTo(SkBits2Float(0x41000000), SkBits2Float(0x431e0000), |
| 195 SkBits2Float(0x41000000), SkBits2Float(0x431e0000), SkBits2Float(0x3
f3504f3)); |
| 196 path.close(); |
| 197 canvas->clipPath(path, true); |
| 198 canvas->drawRectCoords(0, 0, 250, 250, paint); |
| 199 } |
| 200 |
173 /** | 201 /** |
174 * In debug mode, this path was causing an assertion to fail in | 202 * In debug mode, this path was causing an assertion to fail in |
175 * SkPathStroker::preJoinTo() and, in Release, the use of an unitialized value. | 203 * SkPathStroker::preJoinTo() and, in Release, the use of an unitialized value. |
176 */ | 204 */ |
177 static void make_path_crbugskia2820(SkPath* path, skiatest::Reporter* reporter)
{ | 205 static void make_path_crbugskia2820(SkPath* path, skiatest::Reporter* reporter)
{ |
178 SkPoint orig, p1, p2, p3; | 206 SkPoint orig, p1, p2, p3; |
179 orig = SkPoint::Make(1.f, 1.f); | 207 orig = SkPoint::Make(1.f, 1.f); |
180 p1 = SkPoint::Make(1.f - SK_ScalarNearlyZero, 1.f); | 208 p1 = SkPoint::Make(1.f - SK_ScalarNearlyZero, 1.f); |
181 p2 = SkPoint::Make(1.f, 1.f + SK_ScalarNearlyZero); | 209 p2 = SkPoint::Make(1.f, 1.f + SK_ScalarNearlyZero); |
182 p3 = SkPoint::Make(2.f, 2.f); | 210 p3 = SkPoint::Make(2.f, 2.f); |
(...skipping 4140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4323 | 4351 |
4324 DEF_TEST(Paths, reporter) { | 4352 DEF_TEST(Paths, reporter) { |
4325 test_fuzz_crbug_647922(); | 4353 test_fuzz_crbug_647922(); |
4326 test_fuzz_crbug_643933(); | 4354 test_fuzz_crbug_643933(); |
4327 test_sect_with_horizontal_needs_pinning(); | 4355 test_sect_with_horizontal_needs_pinning(); |
4328 test_crbug_629455(reporter); | 4356 test_crbug_629455(reporter); |
4329 test_fuzz_crbug_627414(reporter); | 4357 test_fuzz_crbug_627414(reporter); |
4330 test_path_crbug364224(); | 4358 test_path_crbug364224(); |
4331 test_fuzz_crbug_662952(reporter); | 4359 test_fuzz_crbug_662952(reporter); |
4332 test_fuzz_crbug_662730(reporter); | 4360 test_fuzz_crbug_662730(reporter); |
| 4361 test_fuzz_crbug_662780(); |
4333 | 4362 |
4334 SkTSize<SkScalar>::Make(3,4); | 4363 SkTSize<SkScalar>::Make(3,4); |
4335 | 4364 |
4336 SkPath p, empty; | 4365 SkPath p, empty; |
4337 SkRect bounds, bounds2; | 4366 SkRect bounds, bounds2; |
4338 test_empty(reporter, p); | 4367 test_empty(reporter, p); |
4339 | 4368 |
4340 REPORTER_ASSERT(reporter, p.getBounds().isEmpty()); | 4369 REPORTER_ASSERT(reporter, p.getBounds().isEmpty()); |
4341 | 4370 |
4342 // this triggers a code path in SkPath::operator= which is otherwise unexerc
ised | 4371 // this triggers a code path in SkPath::operator= which is otherwise unexerc
ised |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4478 PathRefTest_Private::TestPathRef(reporter); | 4507 PathRefTest_Private::TestPathRef(reporter); |
4479 PathTest_Private::TestPathrefListeners(reporter); | 4508 PathTest_Private::TestPathrefListeners(reporter); |
4480 test_dump(reporter); | 4509 test_dump(reporter); |
4481 test_path_crbug389050(reporter); | 4510 test_path_crbug389050(reporter); |
4482 test_path_crbugskia2820(reporter); | 4511 test_path_crbugskia2820(reporter); |
4483 test_skbug_3469(reporter); | 4512 test_skbug_3469(reporter); |
4484 test_skbug_3239(reporter); | 4513 test_skbug_3239(reporter); |
4485 test_bounds_crbug_513799(reporter); | 4514 test_bounds_crbug_513799(reporter); |
4486 test_fuzz_crbug_638223(); | 4515 test_fuzz_crbug_638223(); |
4487 } | 4516 } |
OLD | NEW |