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

Public Member Functions

 ImageMakeWithFilterDAGBench ()
 
- 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 onDelayedSetup () 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 onPerCanvasPreDraw (SkCanvas *)
 
virtual void onPerCanvasPostDraw (SkCanvas *)
 
virtual void onPreDraw (SkCanvas *)
 
virtual void onPostDraw (SkCanvas *)
 
virtual SkISize onGetSize ()
 

Additional Inherited Members

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

Detailed Description

Definition at line 66 of file ImageFilterDAGBench.cpp.

Constructor & Destructor Documentation

◆ ImageMakeWithFilterDAGBench()

ImageMakeWithFilterDAGBench::ImageMakeWithFilterDAGBench ( )
inline

Definition at line 68 of file ImageFilterDAGBench.cpp.

68{}

Member Function Documentation

◆ onDelayedSetup()

void ImageMakeWithFilterDAGBench::onDelayedSetup ( )
inlineoverrideprotectedvirtual

Reimplemented from Benchmark.

Definition at line 75 of file ImageFilterDAGBench.cpp.

75 {
76 fImage = ToolUtils::GetResourceAsImage("images/mandrill_512.png");
77 }
sk_sp< SkImage > GetResourceAsImage(const char *resource)
Definition DecodeUtils.h:25

◆ onDraw()

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

Implements Benchmark.

Definition at line 79 of file ImageFilterDAGBench.cpp.

79 {
80 SkIRect subset = SkIRect::MakeSize(fImage->dimensions());
82 SkIRect discardSubset;
83
84 // Set up the filters once so the allocation cost isn't included per-loop
85 sk_sp<SkImageFilter> blur(SkImageFilters::Blur(20.0f, 20.0f, nullptr));
86 sk_sp<SkImageFilter> inputs[kNumInputs];
87 for (int i = 0; i < kNumInputs; ++i) {
88 inputs[i] = blur;
89 }
90 sk_sp<SkImageFilter> mergeFilter = SkImageFilters::Merge(inputs, kNumInputs);
91
92 // But measure MakeWithFilter() per loop since that's the focus of this benchmark
93 for (int j = 0; j < loops; j++) {
95
96#if defined(SK_GANESH)
97 if (auto rContext = canvas->recordingContext()) {
98 image = SkImages::MakeWithFilter(rContext, fImage, mergeFilter.get(),
99 subset, subset, &discardSubset, &offset);
100 } else
101#endif
102#if defined(SK_GRAPHITE)
103 if (auto recorder = canvas->recorder()) {
104 image = SkImages::MakeWithFilter(recorder, fImage, mergeFilter.get(),
105 subset, subset, &discardSubset, &offset);
106 } else
107#endif
108 {
109 image = SkImages::MakeWithFilter(fImage, mergeFilter.get(),
110 subset, subset, &discardSubset, &offset);
111 }
112 }
113 }
virtual GrRecordingContext * recordingContext() const
virtual skgpu::graphite::Recorder * recorder() const
static sk_sp< SkImageFilter > Merge(sk_sp< SkImageFilter > *const filters, int count, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Blur(SkScalar sigmaX, SkScalar sigmaY, SkTileMode tileMode, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
SkISize dimensions() const
Definition SkImage.h:297
T * get() const
Definition SkRefCnt.h:303
sk_sp< SkImage > image
Definition examples.cpp:29
SK_API sk_sp< SkImage > MakeWithFilter(sk_sp< SkImage > src, const SkImageFilter *filter, const SkIRect &subset, const SkIRect &clipBounds, SkIRect *outSubset, SkIPoint *offset)
Point offset
static constexpr SkIPoint Make(int32_t x, int32_t y)
static constexpr SkIRect MakeSize(const SkISize &size)
Definition SkRect.h:66

◆ onGetName()

const char * ImageMakeWithFilterDAGBench::onGetName ( )
inlineoverrideprotectedvirtual

Implements Benchmark.

Definition at line 71 of file ImageFilterDAGBench.cpp.

71 {
72 return "image_make_with_filter_dag";
73 }

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