Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | List of all members
ClipStrategyBench Class Reference
Inheritance diagram for ClipStrategyBench:
Benchmark SkRefCnt SkRefCntBase

Public Types

enum class  Mode { kClipPath , kMask }
 
- Public Types inherited from Benchmark
enum class  Backend {
  kNonRendering , kRaster , kGanesh , kGraphite ,
  kPDF , kHWUI
}
 

Public Member Functions

 ClipStrategyBench (Mode mode, size_t count)
 
 ~ClipStrategyBench () override=default
 
- Public Member Functions inherited from Benchmark
 Benchmark ()
 
const char * getName ()
 
const char * getUniqueName ()
 
SkISize getSize ()
 
virtual bool isSuitableFor (Backend backend)
 
virtual void modifyGrContextOptions (GrContextOptions *)
 
virtual bool shouldLoop () const
 
void delayedSetup ()
 
void perCanvasPreDraw (SkCanvas *)
 
void perCanvasPostDraw (SkCanvas *)
 
void preDraw (SkCanvas *)
 
void postDraw (SkCanvas *)
 
void draw (int loops, SkCanvas *)
 
virtual void getGpuStats (SkCanvas *, skia_private::TArray< SkString > *keys, skia_private::TArray< double > *values)
 
virtual bool getDMSAAStats (GrRecordingContext *)
 
int getUnits () const
 
- Public Member Functions inherited from SkRefCntBase
 SkRefCntBase ()
 
virtual ~SkRefCntBase ()
 
bool unique () const
 
void ref () const
 
void unref () const
 

Protected Member Functions

const char * onGetName () override
 
void onDraw (int loops, SkCanvas *canvas) override
 
- Protected Member Functions inherited from Benchmark
void setUnits (int units)
 
virtual void setupPaint (SkPaint *paint)
 
virtual const char * onGetUniqueName ()
 
virtual void onDelayedSetup ()
 
virtual void onPerCanvasPreDraw (SkCanvas *)
 
virtual void onPerCanvasPostDraw (SkCanvas *)
 
virtual void onPreDraw (SkCanvas *)
 
virtual void onPostDraw (SkCanvas *)
 
virtual SkISize onGetSize ()
 

Detailed Description

Definition at line 13 of file ClipStrategyBench.cpp.

Member Enumeration Documentation

◆ Mode

enum class ClipStrategyBench::Mode
strong
Enumerator
kClipPath 
kMask 

Definition at line 15 of file ClipStrategyBench.cpp.

Constructor & Destructor Documentation

◆ ClipStrategyBench()

ClipStrategyBench::ClipStrategyBench ( Mode  mode,
size_t  count 
)
inline

Definition at line 20 of file ClipStrategyBench.cpp.

21 : fMode(mode)
22 , fCount(count)
23 , fName("clip_strategy_"){
24
25 if (fMode == Mode::kClipPath) {
26 fName.append("path_");
27 this->forEachClipCircle([&](float x, float y, float r) {
28 fClipPath.addCircle(x, y, r);
29 });
30 } else {
31 fName.append("mask_");
32 }
33 fName.appendf("%zu", count);
34 }
int count
SkPath & addCircle(SkScalar x, SkScalar y, SkScalar radius, SkPathDirection dir=SkPathDirection::kCW)
Definition SkPath.cpp:1149
void append(const char text[])
Definition SkString.h:203
void void void appendf(const char format[],...) SK_PRINTF_LIKE(2
Definition SkString.cpp:550
double y
double x

◆ ~ClipStrategyBench()

ClipStrategyBench::~ClipStrategyBench ( )
overridedefault

Member Function Documentation

◆ onDraw()

void ClipStrategyBench::onDraw ( int  loops,
SkCanvas canvas 
)
inlineoverrideprotectedvirtual

Implements Benchmark.

Definition at line 43 of file ClipStrategyBench.cpp.

43 {
44 SkPaint p, srcIn;
45 p.setAntiAlias(true);
47
48 for (int i = 0; i < loops; ++i) {
49 SkAutoCanvasRestore acr(canvas, false);
50
51 if (fMode == Mode::kClipPath) {
52 canvas->save();
53 canvas->clipPath(fClipPath, true);
54 } else {
55 canvas->saveLayer(nullptr, nullptr);
56 this->forEachClipCircle([&](float x, float y, float r) {
57 canvas->drawCircle(x, y, r, p);
58 });
59 canvas->saveLayer(nullptr, &srcIn);
60 }
61 canvas->drawColor(SK_ColorGREEN);
62 }
63 }
@ kSrcIn
r = s * da
constexpr SkColor SK_ColorGREEN
Definition SkColor.h:131
int saveLayer(const SkRect *bounds, const SkPaint *paint)
Definition SkCanvas.cpp:500
void drawColor(SkColor color, SkBlendMode mode=SkBlendMode::kSrcOver)
Definition SkCanvas.h:1182
void clipPath(const SkPath &path, SkClipOp op, bool doAntiAlias)
int save()
Definition SkCanvas.cpp:451
void drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint &paint)
void setBlendMode(SkBlendMode mode)
Definition SkPaint.cpp:151

◆ onGetName()

const char * ClipStrategyBench::onGetName ( )
inlineoverrideprotectedvirtual

Implements Benchmark.

Definition at line 39 of file ClipStrategyBench.cpp.

39 {
40 return fName.c_str();
41 }
const char * c_str() const
Definition SkString.h:133

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