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

Private Member Functions

bool isSuitableFor (Backend backend) override
 
const char * onGetName () override
 
void onPerCanvasPreDraw (SkCanvas *canvas) override
 
void onDraw (int loops, SkCanvas *canvas) override
 

Additional Inherited Members

- Public Types inherited from Benchmark
enum class  Backend {
  kNonRendering , kRaster , kGanesh , kGraphite ,
  kPDF , kHWUI
}
 
- Public Member Functions inherited from Benchmark
 Benchmark ()
 
const char * getName ()
 
const char * getUniqueName ()
 
SkISize getSize ()
 
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 inherited from Benchmark
void setUnits (int units)
 
virtual void setupPaint (SkPaint *paint)
 
virtual const char * onGetUniqueName ()
 
virtual void onDelayedSetup ()
 
virtual void onPerCanvasPostDraw (SkCanvas *)
 
virtual void onPreDraw (SkCanvas *)
 
virtual void onPostDraw (SkCanvas *)
 
virtual SkISize onGetSize ()
 

Detailed Description

Definition at line 39 of file GlyphQuadFillBench.cpp.

Member Function Documentation

◆ isSuitableFor()

bool DirectMaskGlyphVertexFillBenchmark::isSuitableFor ( Backend  backend)
inlineoverrideprivatevirtual

Reimplemented from Benchmark.

Definition at line 40 of file GlyphQuadFillBench.cpp.

40 {
41 return backend == Backend::kGanesh;
42 }
const char * backend

◆ onDraw()

void DirectMaskGlyphVertexFillBenchmark::onDraw ( int  loops,
SkCanvas canvas 
)
inlineoverrideprivatevirtual

Implements Benchmark.

Definition at line 75 of file GlyphQuadFillBench.cpp.

75 {
76 const sktext::gpu::AtlasSubRun* subRun =
78 SkASSERT_RELEASE(subRun);
79
82 GrColor grColor = SkColorToPremulGrColor(paint.getColor());
83 SkMatrix positionMatrix = SkMatrix::Translate(100, 100);
84
85 for (int loop = 0; loop < loops; loop++) {
86 subRun->fillVertexData(fVertices.get(), 0, subRun->glyphCount(),
87 grColor, positionMatrix, {0, 0}, clip);
88 }
89 }
uint32_t GrColor
Definition GrColor.h:25
#define SkASSERT_RELEASE(cond)
Definition SkAssert.h:100
static GrColor SkColorToPremulGrColor(SkColor c)
Definition SkGr.h:51
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
Definition SkPath.cpp:3824
static SkMatrix Translate(SkScalar dx, SkScalar dy)
Definition SkMatrix.h:91
T * get() const
Definition SkRefCnt.h:303
virtual int glyphCount() const =0
static const AtlasSubRun * FirstSubRun(const TextBlob *)
const Paint & paint
static constexpr SkIRect MakeEmpty()
Definition SkRect.h:45

◆ onGetName()

const char * DirectMaskGlyphVertexFillBenchmark::onGetName ( )
inlineoverrideprivatevirtual

Implements Benchmark.

Definition at line 44 of file GlyphQuadFillBench.cpp.

44 {
45 return "DirectMaskGlyphVertexFillBenchmark";
46 }

◆ onPerCanvasPreDraw()

void DirectMaskGlyphVertexFillBenchmark::onPerCanvasPreDraw ( SkCanvas canvas)
inlineoverrideprivatevirtual

Reimplemented from Benchmark.

Definition at line 48 of file GlyphQuadFillBench.cpp.

48 {
49 auto typeface = ToolUtils::CreateTestTypeface("monospace", SkFontStyle());
50 SkFont font(typeface);
51
52 SkMatrix view = SkMatrix::I();
53 size_t len = strlen(gText);
56 auto glyphRunList = builder.textToGlyphRunList(font, paint, gText, len, {100, 100});
57 SkASSERT_RELEASE(!glyphRunList.empty());
59 SkMatrix drawMatrix = view;
60 const SkPoint drawOrigin = glyphRunList.origin();
61 drawMatrix.preTranslate(drawOrigin.x(), drawOrigin.y());
62 fBlob = sktext::gpu::TextBlob::Make(glyphRunList,
63 paint,
64 drawMatrix,
65 device->strikeDeviceInfo(),
67
68 const sktext::gpu::AtlasSubRun* subRun =
70 SkASSERT_RELEASE(subRun);
71 subRun->testingOnly_packedGlyphIDToGlyph(&fCache);
72 fVertices.reset(new char[subRun->vertexStride(drawMatrix) * subRun->glyphCount() * 4]);
73 }
static const char * gText
static const SkMatrix & I()
SkMatrix & preTranslate(SkScalar dx, SkScalar dy)
Definition SkMatrix.cpp:263
static SkStrikeCache * GlobalStrikeCache()
virtual void testingOnly_packedGlyphIDToGlyph(StrikeCache *cache) const =0
static sk_sp< TextBlob > Make(const sktext::GlyphRunList &glyphRunList, const SkPaint &paint, const SkMatrix &positionMatrix, SkStrikeDeviceInfo strikeDeviceInfo, StrikeForGPUCacheInterface *strikeCache)
Definition TextBlob.cpp:194
VkDevice device
Definition main.cc:53
sk_sp< SkTypeface > CreateTestTypeface(const char *name, SkFontStyle style)
font
Font Metadata and Metrics.
constexpr float y() const
constexpr float x() const

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