Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Target Struct Reference

#include <nanobench.h>

Inheritance diagram for Target:
GPUTarget

Public Member Functions

 Target (const Config &c)
 
virtual ~Target ()
 
void setup ()
 
virtual void onSetup ()
 
virtual SkCanvasbeginTiming (SkCanvas *canvas)
 
virtual void endTiming ()
 
virtual void submitWorkAndSyncCPU ()
 
virtual bool needsFrameTiming (int *frameLag) const
 
virtual bool init (SkImageInfo info, Benchmark *bench)
 
virtual bool capturePixels (SkBitmap *bmp)
 
virtual void dumpStats ()
 
SkCanvasgetCanvas () const
 

Public Attributes

const Config config
 
sk_sp< SkSurfacesurface
 

Detailed Description

Definition at line 36 of file nanobench.h.

Constructor & Destructor Documentation

◆ Target()

Target::Target ( const Config c)
inlineexplicit

Definition at line 37 of file nanobench.h.

37: config(c) { }
const Config config
Definition nanobench.h:40

◆ ~Target()

virtual Target::~Target ( )
inlinevirtual

Definition at line 38 of file nanobench.h.

38{ }

Member Function Documentation

◆ beginTiming()

virtual SkCanvas * Target::beginTiming ( SkCanvas canvas)
inlinevirtual

Called after the clock timer is started, before the benchmark is drawn. Most back ends just return the canvas passed in, but some may replace it.

Definition at line 54 of file nanobench.h.

54{ return canvas; }

◆ capturePixels()

bool Target::capturePixels ( SkBitmap bmp)
virtual

Stores any pixels drawn to the screen in the bitmap. Returns false on error.

Definition at line 231 of file nanobench.cpp.

231 {
232 SkCanvas* canvas = this->getCanvas();
233 if (!canvas) {
234 return false;
235 }
236 bmp->allocPixels(canvas->imageInfo());
237 if (!canvas->readPixels(*bmp, 0, 0)) {
238 SkDebugf("Can't read canvas pixels.\n");
239 return false;
240 }
241 return true;
242}
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
void allocPixels(const SkImageInfo &info, size_t rowBytes)
Definition SkBitmap.cpp:258
SkImageInfo imageInfo() const
bool readPixels(const SkImageInfo &dstInfo, void *dstPixels, size_t dstRowBytes, int srcX, int srcY)
Definition SkCanvas.cpp:386
SkCanvas * getCanvas() const
Definition nanobench.h:81

◆ dumpStats()

virtual void Target::dumpStats ( )
inlinevirtual

Writes gathered stats using SkDebugf.

Reimplemented in GPUTarget.

Definition at line 79 of file nanobench.h.

79{}

◆ endTiming()

virtual void Target::endTiming ( )
inlinevirtual

Called after a benchmark is drawn, but before the clock timer is stopped.

Reimplemented in GPUTarget.

Definition at line 58 of file nanobench.h.

58{ }

◆ getCanvas()

SkCanvas * Target::getCanvas ( ) const
inline

Definition at line 81 of file nanobench.h.

81 {
82 if (!surface) {
83 return nullptr;
84 }
85 return surface->getCanvas();
86 }
SkCanvas * getCanvas()
Definition SkSurface.cpp:82
sk_sp< SkSurface > surface
Definition nanobench.h:41

◆ init()

bool Target::init ( SkImageInfo  info,
Benchmark bench 
)
virtual

Called once per target, during program initialization. Returns false if initialization fails.

Reimplemented in GPUTarget.

Definition at line 222 of file nanobench.cpp.

222 {
223 if (Benchmark::Backend::kRaster == config.backend) {
224 this->surface = SkSurfaces::Raster(info);
225 if (!this->surface) {
226 return false;
227 }
228 }
229 return true;
230}
SK_API sk_sp< SkSurface > Raster(const SkImageInfo &imageInfo, size_t rowBytes, const SkSurfaceProps *surfaceProps)

◆ needsFrameTiming()

virtual bool Target::needsFrameTiming ( int frameLag) const
inlinevirtual

CPU-like targets can just be timed, but GPU-like targets need to pay attention to frame boundaries or other similar details.

Reimplemented in GPUTarget.

Definition at line 68 of file nanobench.h.

68{ return false; }

◆ onSetup()

virtual void Target::onSetup ( )
inlinevirtual

Reimplemented in GPUTarget.

Definition at line 49 of file nanobench.h.

49{ }

◆ setup()

void Target::setup ( )
inline

Called once per target, immediately before any timing or drawing.

Definition at line 44 of file nanobench.h.

44 {
45 this->onSetup();
46 // Make sure we're done with setup work before we start timing.
48 }
virtual void submitWorkAndSyncCPU()
Definition nanobench.h:63
virtual void onSetup()
Definition nanobench.h:49

◆ submitWorkAndSyncCPU()

virtual void Target::submitWorkAndSyncCPU ( )
inlinevirtual

Called between benchmarks (or between calibration and measured runs) to make sure all pending work in drivers / threads is complete.

Reimplemented in GPUTarget.

Definition at line 63 of file nanobench.h.

63{ }

Member Data Documentation

◆ config

const Config Target::config

Definition at line 40 of file nanobench.h.

◆ surface

sk_sp<SkSurface> Target::surface

Definition at line 41 of file nanobench.h.


The documentation for this struct was generated from the following files: