Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
skiagm::PreserveFillRuleGM Class Reference
Inheritance diagram for skiagm::PreserveFillRuleGM:
skiagm::GM

Public Member Functions

 PreserveFillRuleGM (bool big)
 
- Public Member Functions inherited from skiagm::GM
 GM (SkColor backgroundColor=SK_ColorWHITE)
 
virtual ~GM ()
 
void setMode (Mode mode)
 
Mode getMode () const
 
DrawResult gpuSetup (SkCanvas *, SkString *errorMsg, GraphiteTestContext *=nullptr)
 
void gpuTeardown ()
 
void onceBeforeDraw ()
 
DrawResult draw (SkCanvas *canvas)
 
DrawResult draw (SkCanvas *, SkString *errorMsg)
 
void drawBackground (SkCanvas *)
 
DrawResult drawContent (SkCanvas *canvas)
 
DrawResult drawContent (SkCanvas *, SkString *errorMsg)
 
virtual bool runAsBench () const
 
SkScalar width ()
 
SkScalar height ()
 
SkColor getBGColor () const
 
void setBGColor (SkColor)
 
void drawSizeBounds (SkCanvas *, SkColor)
 
bool animate (double)
 
virtual bool onChar (SkUnichar)
 
bool getControls (SkMetaData *controls)
 
void setControls (const SkMetaData &controls)
 
virtual void modifyGraphiteContextOptions (skgpu::graphite::ContextOptions *) const
 
virtual bool isBazelOnly () const
 
virtual std::map< std::string, std::string > getGoldKeys () const
 

Private Member Functions

SkString getName () const override
 
SkISize getISize () override
 
void modifyGrContextOptions (GrContextOptions *ctxOptions) override
 
void onDraw (SkCanvas *canvas) override
 

Additional Inherited Members

- Public Types inherited from skiagm::GM
enum  Mode { kGM_Mode , kSample_Mode , kBench_Mode }
 
using DrawResult = skiagm::DrawResult
 
using GraphiteTestContext = skiatest::graphite::GraphiteTestContext
 
- Static Public Attributes inherited from skiagm::GM
static constexpr char kErrorMsg_DrawSkippedGpuOnly []
 
- Protected Member Functions inherited from skiagm::GM
virtual DrawResult onGpuSetup (SkCanvas *, SkString *, GraphiteTestContext *)
 
virtual void onGpuTeardown ()
 
virtual void onOnceBeforeDraw ()
 
virtual DrawResult onDraw (SkCanvas *, SkString *errorMsg)
 
virtual bool onAnimate (double)
 
virtual bool onGetControls (SkMetaData *)
 
virtual void onSetControls (const SkMetaData &)
 
GraphiteTestContextgraphiteTestContext () const
 

Detailed Description

This test originally ensured that the ccpr path cache preserved fill rules properly. CCPR is gone now, but we decided to keep the test.

Definition at line 36 of file preservefillrule.cpp.

Constructor & Destructor Documentation

◆ PreserveFillRuleGM()

skiagm::PreserveFillRuleGM::PreserveFillRuleGM ( bool  big)
inline

Definition at line 38 of file preservefillrule.cpp.

38: fBig(big) , fStarSize((big) ? 200 : 20) {}

Member Function Documentation

◆ getISize()

SkISize skiagm::PreserveFillRuleGM::getISize ( )
inlineoverrideprivatevirtual

Implements skiagm::GM.

Definition at line 46 of file preservefillrule.cpp.

46{ return SkISize::Make(fStarSize * 2, fStarSize * 2); }
static constexpr SkISize Make(int32_t w, int32_t h)
Definition SkSize.h:20

◆ getName()

SkString skiagm::PreserveFillRuleGM::getName ( ) const
inlineoverrideprivatevirtual

Implements skiagm::GM.

Definition at line 41 of file preservefillrule.cpp.

41 {
42 SkString name("preservefillrule");
43 name += (fBig) ? "_big" : "_little";
44 return name;
45 }
const char * name
Definition fuchsia.cc:50

◆ modifyGrContextOptions()

void skiagm::PreserveFillRuleGM::modifyGrContextOptions ( GrContextOptions ctxOptions)
inlineoverrideprivatevirtual

Reimplemented from skiagm::GM.

Definition at line 48 of file preservefillrule.cpp.

48 {
49 ctxOptions->fAllowPathMaskCaching = true;
50 }

◆ onDraw()

void skiagm::PreserveFillRuleGM::onDraw ( SkCanvas canvas)
inlineoverrideprivatevirtual

Reimplemented from skiagm::GM.

Definition at line 52 of file preservefillrule.cpp.

52 {
53 auto starRect = SkRect::MakeWH(fStarSize, fStarSize);
54 SkPath star7_winding = ToolUtils::make_star(starRect, 7);
56
57 SkPath star7_evenOdd = star7_winding;
58 star7_evenOdd.transform(SkMatrix::Translate(0, fStarSize));
60
61 SkPath star5_winding = ToolUtils::make_star(starRect, 5);
62 star5_winding.transform(SkMatrix::Translate(fStarSize, 0));
64
65 SkPath star5_evenOdd = star5_winding;
66 star5_evenOdd.transform(SkMatrix::Translate(0, fStarSize));
68
70 paint.setColor(SK_ColorGREEN);
71 paint.setAntiAlias(true);
72
73 canvas->clear(SK_ColorWHITE);
74 canvas->drawPath(star7_winding, paint);
75 canvas->drawPath(star7_evenOdd, paint);
76 canvas->drawPath(star5_winding, paint);
77 canvas->drawPath(star5_evenOdd, paint);
78
79 auto dContext = GrAsDirectContext(canvas->recordingContext());
80 if (dContext) {
81 dContext->flush();
82 }
83 }
static GrDirectContext * GrAsDirectContext(GrContext_Base *base)
constexpr SkColor SK_ColorGREEN
Definition SkColor.h:131
constexpr SkColor SK_ColorWHITE
Definition SkColor.h:122
virtual GrRecordingContext * recordingContext() const
void clear(SkColor color)
Definition SkCanvas.h:1199
void drawPath(const SkPath &path, const SkPaint &paint)
static SkMatrix Translate(SkScalar dx, SkScalar dy)
Definition SkMatrix.h:91
void setFillType(SkPathFillType ft)
Definition SkPath.h:235
void transform(const SkMatrix &matrix, SkPath *dst, SkApplyPerspectiveClip pc=SkApplyPerspectiveClip::kYes) const
Definition SkPath.cpp:1647
const Paint & paint
SkPath make_star(const SkRect &bounds, int numPts, int step)
static constexpr SkRect MakeWH(float w, float h)
Definition SkRect.h:609

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