Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
PathRefTest_Private Class Reference

Static Public Member Functions

static size_t GetFreeSpace (const SkPathRef &ref)
 
static void TestPathRef (skiatest::Reporter *reporter)
 

Detailed Description

Definition at line 4389 of file PathTest.cpp.

Member Function Documentation

◆ GetFreeSpace()

static size_t PathRefTest_Private::GetFreeSpace ( const SkPathRef ref)
inlinestatic

Definition at line 4391 of file PathTest.cpp.

4391 {
4392 return (ref.fPoints.capacity() - ref.fPoints.size()) * sizeof(SkPoint)
4393 + (ref.fVerbs.capacity() - ref.fVerbs.size()) * sizeof(uint8_t);
4394 }
int capacity() const
Definition SkTArray.h:513
int size() const
Definition SkTArray.h:416

◆ TestPathRef()

static void PathRefTest_Private::TestPathRef ( skiatest::Reporter reporter)
inlinestatic

Definition at line 4396 of file PathTest.cpp.

4396 {
4397 static const int kRepeatCnt = 10;
4398
4399 sk_sp<SkPathRef> pathRef(new SkPathRef);
4400
4401 SkPathRef::Editor ed(&pathRef);
4402
4403 {
4404 ed.growForRepeatedVerb(SkPath::kMove_Verb, kRepeatCnt);
4405 REPORTER_ASSERT(reporter, kRepeatCnt == pathRef->countVerbs());
4406 REPORTER_ASSERT(reporter, kRepeatCnt == pathRef->countPoints());
4407 REPORTER_ASSERT(reporter, 0 == pathRef->getSegmentMasks());
4408 for (int i = 0; i < kRepeatCnt; ++i) {
4409 REPORTER_ASSERT(reporter, SkPath::kMove_Verb == pathRef->atVerb(i));
4410 }
4411 ed.resetToSize(0, 0, 0);
4412 }
4413
4414 {
4415 ed.growForRepeatedVerb(SkPath::kLine_Verb, kRepeatCnt);
4416 REPORTER_ASSERT(reporter, kRepeatCnt == pathRef->countVerbs());
4417 REPORTER_ASSERT(reporter, kRepeatCnt == pathRef->countPoints());
4418 REPORTER_ASSERT(reporter, SkPath::kLine_SegmentMask == pathRef->getSegmentMasks());
4419 for (int i = 0; i < kRepeatCnt; ++i) {
4420 REPORTER_ASSERT(reporter, SkPath::kLine_Verb == pathRef->atVerb(i));
4421 }
4422 ed.resetToSize(0, 0, 0);
4423 }
4424
4425 {
4426 ed.growForRepeatedVerb(SkPath::kQuad_Verb, kRepeatCnt);
4427 REPORTER_ASSERT(reporter, kRepeatCnt == pathRef->countVerbs());
4428 REPORTER_ASSERT(reporter, 2*kRepeatCnt == pathRef->countPoints());
4429 REPORTER_ASSERT(reporter, SkPath::kQuad_SegmentMask == pathRef->getSegmentMasks());
4430 for (int i = 0; i < kRepeatCnt; ++i) {
4431 REPORTER_ASSERT(reporter, SkPath::kQuad_Verb == pathRef->atVerb(i));
4432 }
4433 ed.resetToSize(0, 0, 0);
4434 }
4435
4436 {
4437 SkScalar* weights = nullptr;
4438 ed.growForRepeatedVerb(SkPath::kConic_Verb, kRepeatCnt, &weights);
4439 REPORTER_ASSERT(reporter, kRepeatCnt == pathRef->countVerbs());
4440 REPORTER_ASSERT(reporter, 2*kRepeatCnt == pathRef->countPoints());
4441 REPORTER_ASSERT(reporter, kRepeatCnt == pathRef->countWeights());
4442 REPORTER_ASSERT(reporter, SkPath::kConic_SegmentMask == pathRef->getSegmentMasks());
4443 REPORTER_ASSERT(reporter, weights);
4444 for (int i = 0; i < kRepeatCnt; ++i) {
4445 REPORTER_ASSERT(reporter, SkPath::kConic_Verb == pathRef->atVerb(i));
4446 }
4447 ed.resetToSize(0, 0, 0);
4448 }
4449
4450 {
4451 ed.growForRepeatedVerb(SkPath::kCubic_Verb, kRepeatCnt);
4452 REPORTER_ASSERT(reporter, kRepeatCnt == pathRef->countVerbs());
4453 REPORTER_ASSERT(reporter, 3*kRepeatCnt == pathRef->countPoints());
4454 REPORTER_ASSERT(reporter, SkPath::kCubic_SegmentMask == pathRef->getSegmentMasks());
4455 for (int i = 0; i < kRepeatCnt; ++i) {
4456 REPORTER_ASSERT(reporter, SkPath::kCubic_Verb == pathRef->atVerb(i));
4457 }
4458 ed.resetToSize(0, 0, 0);
4459 }
4460 }
reporter
#define REPORTER_ASSERT(r, cond,...)
Definition Test.h:286
@ kLine_SegmentMask
Definition SkPath.h:1437
@ kQuad_SegmentMask
Definition SkPath.h:1438
@ kCubic_SegmentMask
Definition SkPath.h:1440
@ kConic_SegmentMask
Definition SkPath.h:1439
@ kMove_Verb
Definition SkPath.h:1458
@ kConic_Verb
Definition SkPath.h:1461
@ kCubic_Verb
Definition SkPath.h:1462
@ kQuad_Verb
Definition SkPath.h:1460
@ kLine_Verb
Definition SkPath.h:1459
float SkScalar
Definition extension.cpp:12

The documentation for this class was generated from the following file: