OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 "PathOpsExtendedTest.h" | 7 #include "PathOpsExtendedTest.h" |
8 #include "PathOpsTestCommon.h" | 8 #include "PathOpsTestCommon.h" |
9 | 9 |
10 #define TEST(name) { name, #name } | 10 #define TEST(name) { name, #name } |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 path.cubicTo(SkBits2Float(0x44036ccd), SkBits2Float(0x4282b37d), SkBits2Float(0x
4403999a), SkBits2Float(0x4282b5c0), SkBits2Float(0x4403c666), SkBits2Float(0x42
82b65d)); // 525.7f, 65.3506f, 526.4f, 65.355f, 527.1f, 65.3562f | 360 path.cubicTo(SkBits2Float(0x44036ccd), SkBits2Float(0x4282b37d), SkBits2Float(0x
4403999a), SkBits2Float(0x4282b5c0), SkBits2Float(0x4403c666), SkBits2Float(0x42
82b65d)); // 525.7f, 65.3506f, 526.4f, 65.355f, 527.1f, 65.3562f |
361 path.cubicTo(SkBits2Float(0x4403f333), SkBits2Float(0x4282b6f9), SkBits2Float(0x
44042000), SkBits2Float(0x4282c91b), SkBits2Float(0x44044ccd), SkBits2Float(0x42
82b33f)); // 527.8f, 65.3574f, 528.5f, 65.3928f, 529.2f, 65.3501f | 361 path.cubicTo(SkBits2Float(0x4403f333), SkBits2Float(0x4282b6f9), SkBits2Float(0x
44042000), SkBits2Float(0x4282c91b), SkBits2Float(0x44044ccd), SkBits2Float(0x42
82b33f)); // 527.8f, 65.3574f, 528.5f, 65.3928f, 529.2f, 65.3501f |
362 path.cubicTo(SkBits2Float(0x4404799a), SkBits2Float(0x42829d63), SkBits2Float(0x
4404a666), SkBits2Float(0x4282488a), SkBits2Float(0x4404d333), SkBits2Float(0x42
823333)); // 529.9f, 65.3074f, 530.6f, 65.1417f, 531.3f, 65.1f | 362 path.cubicTo(SkBits2Float(0x4404799a), SkBits2Float(0x42829d63), SkBits2Float(0x
4404a666), SkBits2Float(0x4282488a), SkBits2Float(0x4404d333), SkBits2Float(0x42
823333)); // 529.9f, 65.3074f, 530.6f, 65.1417f, 531.3f, 65.1f |
363 path.cubicTo(SkBits2Float(0x44050000), SkBits2Float(0x42821ddb), SkBits2Float(0x
44052ccd), SkBits2Float(0x42823333), SkBits2Float(0x4405599a), SkBits2Float(0x42
823333)); // 532, 65.0583f, 532.7f, 65.1f, 533.4f, 65.1f | 363 path.cubicTo(SkBits2Float(0x44050000), SkBits2Float(0x42821ddb), SkBits2Float(0x
44052ccd), SkBits2Float(0x42823333), SkBits2Float(0x4405599a), SkBits2Float(0x42
823333)); // 532, 65.0583f, 532.7f, 65.1f, 533.4f, 65.1f |
364 path.lineTo(SkBits2Float(0x4405599a), SkBits2Float(0x42823333)); // 533.4f, 65.
1f | 364 path.lineTo(SkBits2Float(0x4405599a), SkBits2Float(0x42823333)); // 533.4f, 65.
1f |
365 path.lineTo(SkBits2Float(0x43fc0000), SkBits2Float(0x42823333)); // 504, 65.1f | 365 path.lineTo(SkBits2Float(0x43fc0000), SkBits2Float(0x42823333)); // 504, 65.1f |
366 path.close(); | 366 path.close(); |
367 return path; | 367 return path; |
368 } | 368 } |
369 | 369 |
| 370 static SkPath path1_a() { |
| 371 SkPath path; |
| 372 path.moveTo(SkBits2Float(0x43994ccd), SkBits2Float(0x42823333)); // 306.6f, 65.
1f |
| 373 path.lineTo(SkBits2Float(0x43994ccd), SkBits2Float(0x42823333)); // 306.6f, 65.
1f |
| 374 path.cubicTo(SkBits2Float(0x4399a666), SkBits2Float(0x42823332), SkBits2Float(0x
439a0000), SkBits2Float(0x42823842), SkBits2Float(0x439a599a), SkBits2Float(0x42
82332a)); // 307.3f, 65.1f, 308, 65.1099f, 308.7f, 65.0999f |
| 375 path.cubicTo(SkBits2Float(0x439ab333), SkBits2Float(0x42822e12), SkBits2Float(0x
439b0ccd), SkBits2Float(0x42821e94), SkBits2Float(0x439b6666), SkBits2Float(0x42
8214a4)); // 309.4f, 65.09f, 310.1f, 65.0597f, 310.8f, 65.0403f |
| 376 path.cubicTo(SkBits2Float(0x439bc000), SkBits2Float(0x42820ab4), SkBits2Float(0x
439c199a), SkBits2Float(0x42820185), SkBits2Float(0x439c7333), SkBits2Float(0x42
81f789)); // 311.5f, 65.0209f, 312.2f, 65.003f, 312.9f, 64.9835f |
| 377 #if 0 |
| 378 path.cubicTo(SkBits2Float(0x439ccccd), SkBits2Float(0x4281ed8d), SkBits2Float(0x
439d2666), SkBits2Float(0x4281e391), SkBits2Float(0x439d8000), SkBits2Float(0x42
81d8bc)); // 313.6f, 64.964f, 314.3f, 64.9445f, 315, 64.9233f |
| 379 #if 0 |
| 380 path.cubicTo(SkBits2Float(0x439dd99a), SkBits2Float(0x4281cde7), SkBits2Float(0x
439e3333), SkBits2Float(0x4281c0c4), SkBits2Float(0x439e8ccd), SkBits2Float(0x42
81b68b)); // 315.7f, 64.9022f, 316.4f, 64.8765f, 317.1f, 64.8565f |
| 381 path.cubicTo(SkBits2Float(0x439ee666), SkBits2Float(0x4281ac53), SkBits2Float(0x
439f4000), SkBits2Float(0x4281a27a), SkBits2Float(0x439f999a), SkBits2Float(0x42
819b69)); // 317.8f, 64.8366f, 318.5f, 64.8173f, 319.2f, 64.8035f |
| 382 path.cubicTo(SkBits2Float(0x439ff333), SkBits2Float(0x42819459), SkBits2Float(0x
43a04ccd), SkBits2Float(0x42818f8b), SkBits2Float(0x43a0a666), SkBits2Float(0x42
818c26)); // 319.9f, 64.7897f, 320.6f, 64.7804f, 321.3f, 64.7737f |
| 383 path.cubicTo(SkBits2Float(0x43a10000), SkBits2Float(0x428188c2), SkBits2Float(0x
43a1599a), SkBits2Float(0x42818795), SkBits2Float(0x43a1b333), SkBits2Float(0x42
818710)); // 322, 64.7671f, 322.7f, 64.7648f, 323.4f, 64.7638f |
| 384 path.cubicTo(SkBits2Float(0x43a20ccd), SkBits2Float(0x4281868b), SkBits2Float(0x
43a26666), SkBits2Float(0x42818824), SkBits2Float(0x43a2c000), SkBits2Float(0x42
818909)); // 324.1f, 64.7628f, 324.8f, 64.7659f, 325.5f, 64.7676f |
| 385 path.cubicTo(SkBits2Float(0x43a3199a), SkBits2Float(0x428189ee), SkBits2Float(0x
43a37333), SkBits2Float(0x42818de2), SkBits2Float(0x43a3cccd), SkBits2Float(0x42
818c6d)); // 326.2f, 64.7694f, 326.9f, 64.7771f, 327.6f, 64.7743f |
| 386 path.cubicTo(SkBits2Float(0x43a42666), SkBits2Float(0x42818af7), SkBits2Float(0x
43a48000), SkBits2Float(0x428185be), SkBits2Float(0x43a4d99a), SkBits2Float(0x42
818048)); // 328.3f, 64.7714f, 329, 64.7612f, 329.7f, 64.7505f |
| 387 path.cubicTo(SkBits2Float(0x43a53333), SkBits2Float(0x42817ad1), SkBits2Float(0x
43a58ccd), SkBits2Float(0x42816e33), SkBits2Float(0x43a5e666), SkBits2Float(0x42
816ba7)); // 330.4f, 64.7399f, 331.1f, 64.7152f, 331.8f, 64.7103f |
| 388 path.cubicTo(SkBits2Float(0x43a64000), SkBits2Float(0x4281691c), SkBits2Float(0x
43a6999a), SkBits2Float(0x42816b46), SkBits2Float(0x43a6f333), SkBits2Float(0x42
817104)); // 332.5f, 64.7053f, 333.2f, 64.7095f, 333.9f, 64.7207f |
| 389 path.cubicTo(SkBits2Float(0x43a74ccd), SkBits2Float(0x428176c3), SkBits2Float(0x
43a7a666), SkBits2Float(0x42817fa9), SkBits2Float(0x43a80000), SkBits2Float(0x42
818e1f)); // 334.6f, 64.732f, 335.3f, 64.7493f, 336, 64.7776f |
| 390 path.cubicTo(SkBits2Float(0x43a8599a), SkBits2Float(0x42819c95), SkBits2Float(0x
43a8b333), SkBits2Float(0x4281b1ec), SkBits2Float(0x43a90ccd), SkBits2Float(0x42
81c7c7)); // 336.7f, 64.8058f, 337.4f, 64.8475f, 338.1f, 64.8902f |
| 391 path.cubicTo(SkBits2Float(0x43a96666), SkBits2Float(0x4281dda2), SkBits2Float(0x
43a9c000), SkBits2Float(0x428209cf), SkBits2Float(0x43aa199a), SkBits2Float(0x42
821140)); // 338.8f, 64.9329f, 339.5f, 65.0192f, 340.2f, 65.0337f |
| 392 path.cubicTo(SkBits2Float(0x43aa7333), SkBits2Float(0x428218b0), SkBits2Float(0x
43aacccd), SkBits2Float(0x42820dff), SkBits2Float(0x43ab2666), SkBits2Float(0x42
81f46b)); // 340.9f, 65.0482f, 341.6f, 65.0273f, 342.3f, 64.9774f |
| 393 path.cubicTo(SkBits2Float(0x43ab8000), SkBits2Float(0x4281dad8), SkBits2Float(0x
43abd99a), SkBits2Float(0x42819956), SkBits2Float(0x43ac3333), SkBits2Float(0x42
8177cd)); // 343, 64.9274f, 343.7f, 64.7995f, 344.4f, 64.734f |
| 394 path.cubicTo(SkBits2Float(0x43ac8ccd), SkBits2Float(0x42815644), SkBits2Float(0x
43ace666), SkBits2Float(0x42813910), SkBits2Float(0x43ad4000), SkBits2Float(0x42
812b37)); // 345.1f, 64.6685f, 345.8f, 64.6115f, 346.5f, 64.5844f |
| 395 path.cubicTo(SkBits2Float(0x43ad999a), SkBits2Float(0x42811d5e), SkBits2Float(0x
43adf333), SkBits2Float(0x42812394), SkBits2Float(0x43ae4ccd), SkBits2Float(0x42
8124b5)); // 347.2f, 64.5574f, 347.9f, 64.5695f, 348.6f, 64.5717f |
| 396 path.cubicTo(SkBits2Float(0x43aea666), SkBits2Float(0x428125d6), SkBits2Float(0x
43af0000), SkBits2Float(0x42812c1c), SkBits2Float(0x43af599a), SkBits2Float(0x42
8131ff)); // 349.3f, 64.5739f, 350, 64.5862f, 350.7f, 64.5976f |
| 397 path.cubicTo(SkBits2Float(0x43afb333), SkBits2Float(0x428137e3), SkBits2Float(0x
43b00ccd), SkBits2Float(0x4281417f), SkBits2Float(0x43b06666), SkBits2Float(0x42
81480b)); // 351.4f, 64.6092f, 352.1f, 64.6279f, 352.8f, 64.6407f |
| 398 path.cubicTo(SkBits2Float(0x43b0c000), SkBits2Float(0x42814e97), SkBits2Float(0x
43b1199a), SkBits2Float(0x4281534c), SkBits2Float(0x43b17333), SkBits2Float(0x42
815947)); // 353.5f, 64.6535f, 354.2f, 64.6627f, 354.9f, 64.6744f |
| 399 path.cubicTo(SkBits2Float(0x43b1cccd), SkBits2Float(0x42815f42), SkBits2Float(0x
43b22666), SkBits2Float(0x428165ff), SkBits2Float(0x43b28000), SkBits2Float(0x42
816bee)); // 355.6f, 64.6861f, 356.3f, 64.6992f, 357, 64.7108f |
| 400 path.cubicTo(SkBits2Float(0x43b2d99a), SkBits2Float(0x428171de), SkBits2Float(0x
43b33333), SkBits2Float(0x42817af5), SkBits2Float(0x43b38ccd), SkBits2Float(0x42
817ce3)); // 357.7f, 64.7224f, 358.4f, 64.7402f, 359.1f, 64.7439f |
| 401 path.cubicTo(SkBits2Float(0x43b3e666), SkBits2Float(0x42817ed2), SkBits2Float(0x
43b44000), SkBits2Float(0x42817bcf), SkBits2Float(0x43b4999a), SkBits2Float(0x42
817786)); // 359.8f, 64.7477f, 360.5f, 64.7418f, 361.2f, 64.7334f |
| 402 path.cubicTo(SkBits2Float(0x43b4f333), SkBits2Float(0x4281733d), SkBits2Float(0x
43b54ccd), SkBits2Float(0x428167a7), SkBits2Float(0x43b5a666), SkBits2Float(0x42
81632d)); // 361.9f, 64.7251f, 362.6f, 64.7024f, 363.3f, 64.6937f |
| 403 path.cubicTo(SkBits2Float(0x43b60000), SkBits2Float(0x42815eb3), SkBits2Float(0x
43b6599a), SkBits2Float(0x42815b7e), SkBits2Float(0x43b6b333), SkBits2Float(0x42
815cab)); // 364, 64.685f, 364.7f, 64.6787f, 365.4f, 64.681f |
| 404 path.cubicTo(SkBits2Float(0x43b70ccd), SkBits2Float(0x42815dd8), SkBits2Float(0x
43b76666), SkBits2Float(0x4281644d), SkBits2Float(0x43b7c000), SkBits2Float(0x42
816a3c)); // 366.1f, 64.6833f, 366.8f, 64.6959f, 367.5f, 64.7075f |
| 405 path.cubicTo(SkBits2Float(0x43b8199a), SkBits2Float(0x4281702b), SkBits2Float(0x
43b87333), SkBits2Float(0x428179d3), SkBits2Float(0x43b8cccd), SkBits2Float(0x42
818048)); // 368.2f, 64.7191f, 368.9f, 64.7379f, 369.6f, 64.7505f |
| 406 path.cubicTo(SkBits2Float(0x43b92666), SkBits2Float(0x428186bc), SkBits2Float(0x
43b98000), SkBits2Float(0x42818d4a), SkBits2Float(0x43b9d99a), SkBits2Float(0x42
8190f6)); // 370.3f, 64.7632f, 371, 64.776f, 371.7f, 64.7831f |
| 407 path.cubicTo(SkBits2Float(0x43ba3333), SkBits2Float(0x428194a3), SkBits2Float(0x
43ba8ccd), SkBits2Float(0x428193b0), SkBits2Float(0x43bae666), SkBits2Float(0x42
819653)); // 372.4f, 64.7903f, 373.1f, 64.7885f, 373.8f, 64.7936f |
| 408 path.cubicTo(SkBits2Float(0x43bb4000), SkBits2Float(0x428198f6), SkBits2Float(0x
43bb999a), SkBits2Float(0x42819840), SkBits2Float(0x43bbf333), SkBits2Float(0x42
81a0c6)); // 374.5f, 64.7988f, 375.2f, 64.7974f, 375.9f, 64.814f |
| 409 #endif |
| 410 path.cubicTo(SkBits2Float(0x43bc4ccd), SkBits2Float(0x4281a94d), SkBits2Float(0x
43bca666), SkBits2Float(0x4281bc0d), SkBits2Float(0x43bd0000), SkBits2Float(0x42
81c979)); // 376.6f, 64.8307f, 377.3f, 64.8673f, 378, 64.8935f |
| 411 path.cubicTo(SkBits2Float(0x43bd599a), SkBits2Float(0x4281d6e5), SkBits2Float(0x
43bdb333), SkBits2Float(0x4281e6fe), SkBits2Float(0x43be0ccd), SkBits2Float(0x42
81f14e)); // 378.7f, 64.9197f, 379.4f, 64.9512f, 380.1f, 64.9713f |
| 412 path.cubicTo(SkBits2Float(0x43be6666), SkBits2Float(0x4281fb9e), SkBits2Float(0x
43bec000), SkBits2Float(0x4281fd75), SkBits2Float(0x43bf199a), SkBits2Float(0x42
820759)); // 380.8f, 64.9914f, 381.5f, 64.995f, 382.2f, 65.0144f |
| 413 path.cubicTo(SkBits2Float(0x43bf7333), SkBits2Float(0x4282113e), SkBits2Float(0x
43bfcccd), SkBits2Float(0x42822559), SkBits2Float(0x43c02666), SkBits2Float(0x42
822ca8)); // 382.9f, 65.0337f, 383.6f, 65.0729f, 384.3f, 65.0872f |
| 414 #endif |
| 415 path.lineTo(SkBits2Float(0x43c02666), SkBits2Float(0x42823333)); // 384.3f, 65.
1f |
| 416 path.lineTo(SkBits2Float(0x43994ccd), SkBits2Float(0x42823333)); // 306.6f, 65.
1f |
| 417 path.close(); |
| 418 return path; |
| 419 } |
| 420 |
| 421 static SkPath path2_a() { |
| 422 SkPath path; |
| 423 path.moveTo(SkBits2Float(0x43994ccd), SkBits2Float(0x42823333)); // 306.6f, 65.
1f |
| 424 path.lineTo(SkBits2Float(0x43994ccd), SkBits2Float(0x42823333)); // 306.6f, 65.
1f |
| 425 path.cubicTo(SkBits2Float(0x4399a666), SkBits2Float(0x42823334), SkBits2Float(0x
439a0000), SkBits2Float(0x42822e24), SkBits2Float(0x439a599a), SkBits2Float(0x42
82333c)); // 307.3f, 65.1f, 308, 65.0901f, 308.7f, 65.1001f |
| 426 path.cubicTo(SkBits2Float(0x439ab333), SkBits2Float(0x42823854), SkBits2Float(0x
439b0ccd), SkBits2Float(0x428247d2), SkBits2Float(0x439b6666), SkBits2Float(0x42
8251c2)); // 309.4f, 65.11f, 310.1f, 65.1403f, 310.8f, 65.1597f |
| 427 path.cubicTo(SkBits2Float(0x439bc000), SkBits2Float(0x42825bb2), SkBits2Float(0x
439c199a), SkBits2Float(0x428264e1), SkBits2Float(0x439c7333), SkBits2Float(0x42
826edd)); // 311.5f, 65.1791f, 312.2f, 65.197f, 312.9f, 65.2165f |
| 428 #if 0 |
| 429 path.cubicTo(SkBits2Float(0x439ccccd), SkBits2Float(0x428278d9), SkBits2Float(0x
439d2666), SkBits2Float(0x428282d5), SkBits2Float(0x439d8000), SkBits2Float(0x42
828daa)); // 313.6f, 65.236f, 314.3f, 65.2555f, 315, 65.2767f |
| 430 #if 0 |
| 431 path.cubicTo(SkBits2Float(0x439dd99a), SkBits2Float(0x4282987f), SkBits2Float(0x
439e3333), SkBits2Float(0x4282a5a2), SkBits2Float(0x439e8ccd), SkBits2Float(0x42
82afdb)); // 315.7f, 65.2978f, 316.4f, 65.3235f, 317.1f, 65.3435f |
| 432 path.cubicTo(SkBits2Float(0x439ee666), SkBits2Float(0x4282ba13), SkBits2Float(0x
439f4000), SkBits2Float(0x4282c3ec), SkBits2Float(0x439f999a), SkBits2Float(0x42
82cafd)); // 317.8f, 65.3634f, 318.5f, 65.3827f, 319.2f, 65.3965f |
| 433 path.cubicTo(SkBits2Float(0x439ff333), SkBits2Float(0x4282d20d), SkBits2Float(0x
43a04ccd), SkBits2Float(0x4282d6db), SkBits2Float(0x43a0a666), SkBits2Float(0x42
82da40)); // 319.9f, 65.4103f, 320.6f, 65.4196f, 321.3f, 65.4263f |
| 434 path.cubicTo(SkBits2Float(0x43a10000), SkBits2Float(0x4282dda4), SkBits2Float(0x
43a1599a), SkBits2Float(0x4282ded1), SkBits2Float(0x43a1b333), SkBits2Float(0x42
82df56)); // 322, 65.4329f, 322.7f, 65.4352f, 323.4f, 65.4362f |
| 435 path.cubicTo(SkBits2Float(0x43a20ccd), SkBits2Float(0x4282dfdb), SkBits2Float(0x
43a26666), SkBits2Float(0x4282de42), SkBits2Float(0x43a2c000), SkBits2Float(0x42
82dd5d)); // 324.1f, 65.4372f, 324.8f, 65.4341f, 325.5f, 65.4324f |
| 436 path.cubicTo(SkBits2Float(0x43a3199a), SkBits2Float(0x4282dc78), SkBits2Float(0x
43a37333), SkBits2Float(0x4282d884), SkBits2Float(0x43a3cccd), SkBits2Float(0x42
82d9f9)); // 326.2f, 65.4306f, 326.9f, 65.4229f, 327.6f, 65.4257f |
| 437 path.cubicTo(SkBits2Float(0x43a42666), SkBits2Float(0x4282db6f), SkBits2Float(0x
43a48000), SkBits2Float(0x4282e0a8), SkBits2Float(0x43a4d99a), SkBits2Float(0x42
82e61e)); // 328.3f, 65.4286f, 329, 65.4388f, 329.7f, 65.4494f |
| 438 path.cubicTo(SkBits2Float(0x43a53333), SkBits2Float(0x4282eb95), SkBits2Float(0x
43a58ccd), SkBits2Float(0x4282f833), SkBits2Float(0x43a5e666), SkBits2Float(0x42
82fabf)); // 330.4f, 65.4601f, 331.1f, 65.4848f, 331.8f, 65.4897f |
| 439 path.cubicTo(SkBits2Float(0x43a64000), SkBits2Float(0x4282fd4a), SkBits2Float(0x
43a6999a), SkBits2Float(0x4282fb20), SkBits2Float(0x43a6f333), SkBits2Float(0x42
82f562)); // 332.5f, 65.4947f, 333.2f, 65.4905f, 333.9f, 65.4793f |
| 440 path.cubicTo(SkBits2Float(0x43a74ccd), SkBits2Float(0x4282efa3), SkBits2Float(0x
43a7a666), SkBits2Float(0x4282e6bd), SkBits2Float(0x43a80000), SkBits2Float(0x42
82d847)); // 334.6f, 65.468f, 335.3f, 65.4507f, 336, 65.4224f |
| 441 path.cubicTo(SkBits2Float(0x43a8599a), SkBits2Float(0x4282c9d1), SkBits2Float(0x
43a8b333), SkBits2Float(0x4282b47a), SkBits2Float(0x43a90ccd), SkBits2Float(0x42
829e9f)); // 336.7f, 65.3942f, 337.4f, 65.3525f, 338.1f, 65.3098f |
| 442 path.cubicTo(SkBits2Float(0x43a96666), SkBits2Float(0x428288c4), SkBits2Float(0x
43a9c000), SkBits2Float(0x42825c97), SkBits2Float(0x43aa199a), SkBits2Float(0x42
825526)); // 338.8f, 65.2671f, 339.5f, 65.1808f, 340.2f, 65.1663f |
| 443 path.cubicTo(SkBits2Float(0x43aa7333), SkBits2Float(0x42824db6), SkBits2Float(0x
43aacccd), SkBits2Float(0x42825867), SkBits2Float(0x43ab2666), SkBits2Float(0x42
8271fb)); // 340.9f, 65.1518f, 341.6f, 65.1727f, 342.3f, 65.2226f |
| 444 path.cubicTo(SkBits2Float(0x43ab8000), SkBits2Float(0x42828b8e), SkBits2Float(0x
43abd99a), SkBits2Float(0x4282cd10), SkBits2Float(0x43ac3333), SkBits2Float(0x42
82ee99)); // 343, 65.2726f, 343.7f, 65.4005f, 344.4f, 65.466f |
| 445 path.cubicTo(SkBits2Float(0x43ac8ccd), SkBits2Float(0x42831022), SkBits2Float(0x
43ace666), SkBits2Float(0x42832d56), SkBits2Float(0x43ad4000), SkBits2Float(0x42
833b2f)); // 345.1f, 65.5315f, 345.8f, 65.5885f, 346.5f, 65.6156f |
| 446 path.cubicTo(SkBits2Float(0x43ad999a), SkBits2Float(0x42834908), SkBits2Float(0x
43adf333), SkBits2Float(0x428342d2), SkBits2Float(0x43ae4ccd), SkBits2Float(0x42
8341b1)); // 347.2f, 65.6426f, 347.9f, 65.6305f, 348.6f, 65.6283f |
| 447 path.cubicTo(SkBits2Float(0x43aea666), SkBits2Float(0x42834090), SkBits2Float(0x
43af0000), SkBits2Float(0x42833a4a), SkBits2Float(0x43af599a), SkBits2Float(0x42
833467)); // 349.3f, 65.6261f, 350, 65.6138f, 350.7f, 65.6023f |
| 448 path.cubicTo(SkBits2Float(0x43afb333), SkBits2Float(0x42832e83), SkBits2Float(0x
43b00ccd), SkBits2Float(0x428324e7), SkBits2Float(0x43b06666), SkBits2Float(0x42
831e5b)); // 351.4f, 65.5908f, 352.1f, 65.5721f, 352.8f, 65.5593f |
| 449 path.cubicTo(SkBits2Float(0x43b0c000), SkBits2Float(0x428317cf), SkBits2Float(0x
43b1199a), SkBits2Float(0x4283131a), SkBits2Float(0x43b17333), SkBits2Float(0x42
830d1f)); // 353.5f, 65.5465f, 354.2f, 65.5373f, 354.9f, 65.5256f |
| 450 path.cubicTo(SkBits2Float(0x43b1cccd), SkBits2Float(0x42830724), SkBits2Float(0x
43b22666), SkBits2Float(0x42830067), SkBits2Float(0x43b28000), SkBits2Float(0x42
82fa78)); // 355.6f, 65.5139f, 356.3f, 65.5008f, 357, 65.4892f |
| 451 path.cubicTo(SkBits2Float(0x43b2d99a), SkBits2Float(0x4282f488), SkBits2Float(0x
43b33333), SkBits2Float(0x4282eb71), SkBits2Float(0x43b38ccd), SkBits2Float(0x42
82e983)); // 357.7f, 65.4776f, 358.4f, 65.4598f, 359.1f, 65.4561f |
| 452 path.cubicTo(SkBits2Float(0x43b3e666), SkBits2Float(0x4282e794), SkBits2Float(0x
43b44000), SkBits2Float(0x4282ea97), SkBits2Float(0x43b4999a), SkBits2Float(0x42
82eee0)); // 359.8f, 65.4523f, 360.5f, 65.4582f, 361.2f, 65.4666f |
| 453 path.cubicTo(SkBits2Float(0x43b4f333), SkBits2Float(0x4282f329), SkBits2Float(0x
43b54ccd), SkBits2Float(0x4282febf), SkBits2Float(0x43b5a666), SkBits2Float(0x42
830339)); // 361.9f, 65.4749f, 362.6f, 65.4976f, 363.3f, 65.5063f |
| 454 path.cubicTo(SkBits2Float(0x43b60000), SkBits2Float(0x428307b3), SkBits2Float(0x
43b6599a), SkBits2Float(0x42830ae8), SkBits2Float(0x43b6b333), SkBits2Float(0x42
8309bb)); // 364, 65.515f, 364.7f, 65.5213f, 365.4f, 65.519f |
| 455 path.cubicTo(SkBits2Float(0x43b70ccd), SkBits2Float(0x4283088e), SkBits2Float(0x
43b76666), SkBits2Float(0x42830219), SkBits2Float(0x43b7c000), SkBits2Float(0x42
82fc2a)); // 366.1f, 65.5167f, 366.8f, 65.5041f, 367.5f, 65.4925f |
| 456 path.cubicTo(SkBits2Float(0x43b8199a), SkBits2Float(0x4282f63b), SkBits2Float(0x
43b87333), SkBits2Float(0x4282ec93), SkBits2Float(0x43b8cccd), SkBits2Float(0x42
82e61e)); // 368.2f, 65.4809f, 368.9f, 65.4621f, 369.6f, 65.4494f |
| 457 path.cubicTo(SkBits2Float(0x43b92666), SkBits2Float(0x4282dfaa), SkBits2Float(0x
43b98000), SkBits2Float(0x4282d91c), SkBits2Float(0x43b9d99a), SkBits2Float(0x42
82d570)); // 370.3f, 65.4368f, 371, 65.424f, 371.7f, 65.4169f |
| 458 path.cubicTo(SkBits2Float(0x43ba3333), SkBits2Float(0x4282d1c3), SkBits2Float(0x
43ba8ccd), SkBits2Float(0x4282d2b6), SkBits2Float(0x43bae666), SkBits2Float(0x42
82d013)); // 372.4f, 65.4097f, 373.1f, 65.4115f, 373.8f, 65.4064f |
| 459 path.cubicTo(SkBits2Float(0x43bb4000), SkBits2Float(0x4282cd70), SkBits2Float(0x
43bb999a), SkBits2Float(0x4282ce26), SkBits2Float(0x43bbf333), SkBits2Float(0x42
82c5a0)); // 374.5f, 65.4012f, 375.2f, 65.4026f, 375.9f, 65.386f |
| 460 #endif |
| 461 path.cubicTo(SkBits2Float(0x43bc4ccd), SkBits2Float(0x4282bd19), SkBits2Float(0x
43bca666), SkBits2Float(0x4282aa59), SkBits2Float(0x43bd0000), SkBits2Float(0x42
829ced)); // 376.6f, 65.3693f, 377.3f, 65.3327f, 378, 65.3065f |
| 462 path.cubicTo(SkBits2Float(0x43bd599a), SkBits2Float(0x42828f81), SkBits2Float(0x
43bdb333), SkBits2Float(0x42827f68), SkBits2Float(0x43be0ccd), SkBits2Float(0x42
827518)); // 378.7f, 65.2803f, 379.4f, 65.2488f, 380.1f, 65.2287f |
| 463 path.cubicTo(SkBits2Float(0x43be6666), SkBits2Float(0x42826ac8), SkBits2Float(0x
43bec000), SkBits2Float(0x428268f1), SkBits2Float(0x43bf199a), SkBits2Float(0x42
825f0d)); // 380.8f, 65.2086f, 381.5f, 65.205f, 382.2f, 65.1856f |
| 464 path.cubicTo(SkBits2Float(0x43bf7333), SkBits2Float(0x42825528), SkBits2Float(0x
43bfcccd), SkBits2Float(0x4282410d), SkBits2Float(0x43c02666), SkBits2Float(0x42
8239be)); // 382.9f, 65.1663f, 383.6f, 65.1271f, 384.3f, 65.1128f |
| 465 #endif |
| 466 path.lineTo(SkBits2Float(0x43c02666), SkBits2Float(0x42823333)); // 384.3f, 65.
1f |
| 467 path.lineTo(SkBits2Float(0x43994ccd), SkBits2Float(0x42823333)); // 306.6f, 65.
1f |
| 468 path.close(); |
| 469 return path; |
| 470 } |
| 471 |
| 472 static void issue3651_1a(skiatest::Reporter* reporter, const char* filename) { |
| 473 SkPath path = path1_a(); |
| 474 SkPath pathB = path2_a(); |
| 475 testPathOp(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename); |
| 476 } |
| 477 |
370 static SkPath path3() { | 478 static SkPath path3() { |
371 SkPath path; | 479 SkPath path; |
372 path.moveTo(SkBits2Float(0x42b06666), SkBits2Float(0x42bd0000)); // 88.2f, 94.5
f | 480 path.moveTo(SkBits2Float(0x42b06666), SkBits2Float(0x42bd0000)); // 88.2f, 94.5
f |
373 path.lineTo(SkBits2Float(0x42b06666), SkBits2Float(0x42bd0000)); // 88.2f, 94.5
f | 481 path.lineTo(SkBits2Float(0x42b06666), SkBits2Float(0x42bd0000)); // 88.2f, 94.5
f |
374 path.cubicTo(SkBits2Float(0x42b1cccd), SkBits2Float(0x42bd0000), SkBits2Float(0x
42b33333), SkBits2Float(0x42bd2573), SkBits2Float(0x42b4999a), SkBits2Float(0x42
bd0000)); // 88.9f, 94.5f, 89.6f, 94.5731f, 90.3f, 94.5f | 482 path.cubicTo(SkBits2Float(0x42b1cccd), SkBits2Float(0x42bd0000), SkBits2Float(0x
42b33333), SkBits2Float(0x42bd2573), SkBits2Float(0x42b4999a), SkBits2Float(0x42
bd0000)); // 88.9f, 94.5f, 89.6f, 94.5731f, 90.3f, 94.5f |
375 path.cubicTo(SkBits2Float(0x42b60000), SkBits2Float(0x42bcda8d), SkBits2Float(0x
42b76666), SkBits2Float(0x42bc4598), SkBits2Float(0x42b8cccd), SkBits2Float(0x42
bc1f4b)); // 91, 94.4269f, 91.7f, 94.1359f, 92.4f, 94.0611f | 483 path.cubicTo(SkBits2Float(0x42b60000), SkBits2Float(0x42bcda8d), SkBits2Float(0x
42b76666), SkBits2Float(0x42bc4598), SkBits2Float(0x42b8cccd), SkBits2Float(0x42
bc1f4b)); // 91, 94.4269f, 91.7f, 94.1359f, 92.4f, 94.0611f |
376 path.cubicTo(SkBits2Float(0x42ba3333), SkBits2Float(0x42bbf8ff), SkBits2Float(0x
42bb999a), SkBits2Float(0x42bc1b9e), SkBits2Float(0x42bd0000), SkBits2Float(0x42
bc1a35)); // 93.1f, 93.9863f, 93.8f, 94.0539f, 94.5f, 94.0512f | 484 path.cubicTo(SkBits2Float(0x42ba3333), SkBits2Float(0x42bbf8ff), SkBits2Float(0x
42bb999a), SkBits2Float(0x42bc1b9e), SkBits2Float(0x42bd0000), SkBits2Float(0x42
bc1a35)); // 93.1f, 93.9863f, 93.8f, 94.0539f, 94.5f, 94.0512f |
377 path.cubicTo(SkBits2Float(0x42be6666), SkBits2Float(0x42bc18cb), SkBits2Float(0x
42bfcccd), SkBits2Float(0x42bc17f2), SkBits2Float(0x42c13333), SkBits2Float(0x42
bc16d0)); // 95.2f, 94.0484f, 95.9f, 94.0468f, 96.6f, 94.0446f | 485 path.cubicTo(SkBits2Float(0x42be6666), SkBits2Float(0x42bc18cb), SkBits2Float(0x
42bfcccd), SkBits2Float(0x42bc17f2), SkBits2Float(0x42c13333), SkBits2Float(0x42
bc16d0)); // 95.2f, 94.0484f, 95.9f, 94.0468f, 96.6f, 94.0446f |
378 path.cubicTo(SkBits2Float(0x42c2999a), SkBits2Float(0x42bc15af), SkBits2Float(0x
42c40000), SkBits2Float(0x42bc13fd), SkBits2Float(0x42c56666), SkBits2Float(0x42
bc136c)); // 97.3f, 94.0424f, 98, 94.039f, 98.7f, 94.0379f | 486 path.cubicTo(SkBits2Float(0x42c2999a), SkBits2Float(0x42bc15af), SkBits2Float(0x
42c40000), SkBits2Float(0x42bc13fd), SkBits2Float(0x42c56666), SkBits2Float(0x42
bc136c)); // 97.3f, 94.0424f, 98, 94.039f, 98.7f, 94.0379f |
379 path.cubicTo(SkBits2Float(0x42c6cccd), SkBits2Float(0x42bc12dc), SkBits2Float(0x
42c83333), SkBits2Float(0x42bc12e7), SkBits2Float(0x42c9999a), SkBits2Float(0x42
bc136c)); // 99.4f, 94.0368f, 100.1f, 94.0369f, 100.8f, 94.0379f | 487 path.cubicTo(SkBits2Float(0x42c6cccd), SkBits2Float(0x42bc12dc), SkBits2Float(0x
42c83333), SkBits2Float(0x42bc12e7), SkBits2Float(0x42c9999a), SkBits2Float(0x42
bc136c)); // 99.4f, 94.0368f, 100.1f, 94.0369f, 100.8f, 94.0379f |
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1087 path.cubicTo(SkBits2Float(0x4403f333), SkBits2Float(0x42c99d06), SkBits2Float(0x
44042000), SkBits2Float(0x42c99bdf), SkBits2Float(0x44044ccd), SkBits2Float(0x42
c9999a)); // 527.8f, 100.807f, 528.5f, 100.804f, 529.2f, 100.8f | 1195 path.cubicTo(SkBits2Float(0x4403f333), SkBits2Float(0x42c99d06), SkBits2Float(0x
44042000), SkBits2Float(0x42c99bdf), SkBits2Float(0x44044ccd), SkBits2Float(0x42
c9999a)); // 527.8f, 100.807f, 528.5f, 100.804f, 529.2f, 100.8f |
1088 path.lineTo(SkBits2Float(0x44044ccd), SkBits2Float(0x42c9999a)); // 529.2f, 100
.8f | 1196 path.lineTo(SkBits2Float(0x44044ccd), SkBits2Float(0x42c9999a)); // 529.2f, 100
.8f |
1089 path.lineTo(SkBits2Float(0x43dfa666), SkBits2Float(0x42c9999a)); // 447.3f, 100
.8f | 1197 path.lineTo(SkBits2Float(0x43dfa666), SkBits2Float(0x42c9999a)); // 447.3f, 100
.8f |
1090 path.close(); | 1198 path.close(); |
1091 return path; | 1199 return path; |
1092 } | 1200 } |
1093 | 1201 |
1094 static void issue3651_1(skiatest::Reporter* reporter, const char* filename) { | 1202 static void issue3651_1(skiatest::Reporter* reporter, const char* filename) { |
1095 SkPath path = path1(); | 1203 SkPath path = path1(); |
1096 SkPath pathB = path2(); | 1204 SkPath pathB = path2(); |
1097 testPathOpCheck(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename,
FLAGS_runFail); | 1205 testPathOp(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename); |
1098 } | 1206 } |
1099 | 1207 |
1100 static void issue3651_2(skiatest::Reporter* reporter, const char* filename) { | 1208 static void issue3651_2(skiatest::Reporter* reporter, const char* filename) { |
1101 SkPath path = path3(); | 1209 SkPath path = path3(); |
1102 SkPath pathB = path4(); | 1210 SkPath pathB = path4(); |
1103 testPathOp(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename); | 1211 testPathOp(reporter, path, pathB, SkPathOp::kUnion_SkPathOp, filename); |
1104 } | 1212 } |
1105 | 1213 |
1106 static void issue3651_3(skiatest::Reporter* reporter, const char* filename) { | 1214 static void issue3651_3(skiatest::Reporter* reporter, const char* filename) { |
1107 SkPath path = path5(); | 1215 SkPath path = path5(); |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1536 path.cubicTo(SkBits2Float(0x436e5555), SkBits2Float(0x42967b7c), SkBits2Float(0x
436f1111), SkBits2Float(0x42967079), SkBits2Float(0x436fcccd), SkBits2Float(0x42
9666cd)); // 238.333f, 75.2412f, 239.067f, 75.2197f, 239.8f, 75.2008f | 1644 path.cubicTo(SkBits2Float(0x436e5555), SkBits2Float(0x42967b7c), SkBits2Float(0x
436f1111), SkBits2Float(0x42967079), SkBits2Float(0x436fcccd), SkBits2Float(0x42
9666cd)); // 238.333f, 75.2412f, 239.067f, 75.2197f, 239.8f, 75.2008f |
1537 path.cubicTo(SkBits2Float(0x43708889), SkBits2Float(0x42965d20), SkBits2Float(0x
43714444), SkBits2Float(0x42965d94), SkBits2Float(0x43720000), SkBits2Float(0x42
964dd6)); // 240.533f, 75.1819f, 241.267f, 75.1828f, 242, 75.152f | 1645 path.cubicTo(SkBits2Float(0x43708889), SkBits2Float(0x42965d20), SkBits2Float(0x
43714444), SkBits2Float(0x42965d94), SkBits2Float(0x43720000), SkBits2Float(0x42
964dd6)); // 240.533f, 75.1819f, 241.267f, 75.1828f, 242, 75.152f |
1538 path.cubicTo(SkBits2Float(0x4372bbbc), SkBits2Float(0x42963e19), SkBits2Float(0x
43737777), SkBits2Float(0x42961c64), SkBits2Float(0x43743333), SkBits2Float(0x42
96085b)); // 242.733f, 75.1213f, 243.467f, 75.0555f, 244.2f, 75.0163f | 1646 path.cubicTo(SkBits2Float(0x4372bbbc), SkBits2Float(0x42963e19), SkBits2Float(0x
43737777), SkBits2Float(0x42961c64), SkBits2Float(0x43743333), SkBits2Float(0x42
96085b)); // 242.733f, 75.1213f, 243.467f, 75.0555f, 244.2f, 75.0163f |
1539 path.cubicTo(SkBits2Float(0x4374eeef), SkBits2Float(0x4295f453), SkBits2Float(0x
4375aaab), SkBits2Float(0x4295e407), SkBits2Float(0x43766666), SkBits2Float(0x42
95d5a4)); // 244.933f, 74.9772f, 245.667f, 74.9454f, 246.4f, 74.9173f | 1647 path.cubicTo(SkBits2Float(0x4374eeef), SkBits2Float(0x4295f453), SkBits2Float(0x
4375aaab), SkBits2Float(0x4295e407), SkBits2Float(0x43766666), SkBits2Float(0x42
95d5a4)); // 244.933f, 74.9772f, 245.667f, 74.9454f, 246.4f, 74.9173f |
1540 path.cubicTo(SkBits2Float(0x43772222), SkBits2Float(0x4295c741), SkBits2Float(0x
4377ddde), SkBits2Float(0x4295bc09), SkBits2Float(0x4378999a), SkBits2Float(0x42
95b207)); // 247.133f, 74.8892f, 247.867f, 74.8673f, 248.6f, 74.8477f | 1648 path.cubicTo(SkBits2Float(0x43772222), SkBits2Float(0x4295c741), SkBits2Float(0x
4377ddde), SkBits2Float(0x4295bc09), SkBits2Float(0x4378999a), SkBits2Float(0x42
95b207)); // 247.133f, 74.8892f, 247.867f, 74.8673f, 248.6f, 74.8477f |
1541 path.cubicTo(SkBits2Float(0x43795555), SkBits2Float(0x4295a806), SkBits2Float(0x
437a1111), SkBits2Float(0x42959dad), SkBits2Float(0x437acccd), SkBits2Float(0x42
95999a)); // 249.333f, 74.8282f, 250.067f, 74.808f, 250.8f, 74.8f | 1649 path.cubicTo(SkBits2Float(0x43795555), SkBits2Float(0x4295a806), SkBits2Float(0x
437a1111), SkBits2Float(0x42959dad), SkBits2Float(0x437acccd), SkBits2Float(0x42
95999a)); // 249.333f, 74.8282f, 250.067f, 74.808f, 250.8f, 74.8f |
1542 path.cubicTo(SkBits2Float(0x437b8889), SkBits2Float(0x42959588), SkBits2Float(0x
437c4444), SkBits2Float(0x4295999a), SkBits2Float(0x437d0000), SkBits2Float(0x42
95999a)); // 251.533f, 74.7921f, 252.267f, 74.8f, 253, 74.8f | 1650 path.cubicTo(SkBits2Float(0x437b8889), SkBits2Float(0x42959588), SkBits2Float(0x
437c4444), SkBits2Float(0x4295999a), SkBits2Float(0x437d0000), SkBits2Float(0x42
95999a)); // 251.533f, 74.7921f, 252.267f, 74.8f, 253, 74.8f |
1543 path.lineTo(SkBits2Float(0x437d0000), SkBits2Float(0x4295999a)); // 253, 74.8f | 1651 path.lineTo(SkBits2Float(0x437d0000), SkBits2Float(0x4295999a)); // 253, 74.8f |
1544 path.lineTo(SkBits2Float(0x42886666), SkBits2Float(0x4295999a)); // 68.2f, 74.8
f | 1652 path.lineTo(SkBits2Float(0x42886666), SkBits2Float(0x4295999a)); // 68.2f, 74.8
f |
1545 path.close(); | 1653 path.close(); |
1546 testPathOpCheck(reporter, pathA, path, SkPathOp::kUnion_SkPathOp, filename,
FLAGS_runFail); | 1654 testPathOp(reporter, pathA, path, SkPathOp::kUnion_SkPathOp, filename); |
1547 } | 1655 } |
1548 | 1656 |
1549 | 1657 |
1550 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0; | 1658 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0; |
1551 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; | 1659 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; |
1552 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; | 1660 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; |
1553 | 1661 |
1554 static struct TestDesc tests[] = { | 1662 static struct TestDesc tests[] = { |
| 1663 TEST(issue3651_6), |
| 1664 TEST(issue3651_1a), |
| 1665 TEST(issue3651_1), |
1555 TEST(issue3651_7), | 1666 TEST(issue3651_7), |
1556 TEST(issue3651_6), | |
1557 TEST(issue3651_5), | 1667 TEST(issue3651_5), |
1558 TEST(issue3651_4), | 1668 TEST(issue3651_4), |
1559 TEST(issue3651_1), | |
1560 TEST(issue3651_2), | 1669 TEST(issue3651_2), |
1561 TEST(issue3651_3), | 1670 TEST(issue3651_3), |
1562 }; | 1671 }; |
1563 | 1672 |
1564 static const size_t testCount = SK_ARRAY_COUNT(tests); | 1673 static const size_t testCount = SK_ARRAY_COUNT(tests); |
1565 | 1674 |
1566 static bool runReverse = false; | 1675 static bool runReverse = false; |
1567 | 1676 |
1568 DEF_TEST(PathOpsIssue3651, reporter) { | 1677 DEF_TEST(PathOpsIssue3651, reporter) { |
1569 #if DEBUG_SHOW_TEST_NAME | 1678 #if DEBUG_SHOW_TEST_NAME |
1570 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); | 1679 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); |
1571 #endif | 1680 #endif |
1572 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev
erse); | 1681 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev
erse); |
1573 } | 1682 } |
OLD | NEW |