Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
sktext::gpu::SubRun Class Referenceabstract

#include <SubRunContainer.h>

Public Types

enum  SubRunStreamTag : int
 

Public Member Functions

virtual ~SubRun ()
 
virtual void draw (SkCanvas *, SkPoint drawOrigin, const SkPaint &, sk_sp< SkRefCnt > subRunStorage, const AtlasDrawDelegate &) const =0
 
void flatten (SkWriteBuffer &buffer) const
 
virtual int unflattenSize () const =0
 
virtual bool canReuse (const SkPaint &paint, const SkMatrix &positionMatrix) const =0
 
virtual const AtlasSubRuntestingOnly_atlasSubRun () const =0
 

Static Public Member Functions

static SubRunOwner MakeFromBuffer (SkReadBuffer &buffer, sktext::gpu::SubRunAllocator *alloc, const SkStrikeClient *client)
 

Protected Member Functions

virtual SubRunStreamTag subRunStreamTag () const =0
 
virtual void doFlatten (SkWriteBuffer &buffer) const =0
 

Friends

class SubRunList
 

Detailed Description

Definition at line 130 of file SubRunContainer.h.

Member Enumeration Documentation

◆ SubRunStreamTag

Definition at line 97 of file SubRunContainer.cpp.

97 : int {
98 kBad = 0, // Make this 0 to line up with errors from readInt.
100#if !defined(SK_DISABLE_SDF_TEXT)
102#endif
107};

Constructor & Destructor Documentation

◆ ~SubRun()

sktext::gpu::SubRun::~SubRun ( )
virtualdefault

Member Function Documentation

◆ canReuse()

virtual bool sktext::gpu::SubRun::canReuse ( const SkPaint paint,
const SkMatrix positionMatrix 
) const
pure virtual

◆ doFlatten()

virtual void sktext::gpu::SubRun::doFlatten ( SkWriteBuffer buffer) const
protectedpure virtual

◆ draw()

virtual void sktext::gpu::SubRun::draw ( SkCanvas ,
SkPoint  drawOrigin,
const SkPaint ,
sk_sp< SkRefCnt subRunStorage,
const AtlasDrawDelegate  
) const
pure virtual

◆ flatten()

void sktext::gpu::SubRun::flatten ( SkWriteBuffer buffer) const

Definition at line 1330 of file SubRunContainer.cpp.

1330 {
1331 buffer.writeInt(this->subRunStreamTag());
1332 this->doFlatten(buffer);
1333}
virtual void doFlatten(SkWriteBuffer &buffer) const =0
virtual SubRunStreamTag subRunStreamTag() const =0
static const uint8_t buffer[]

◆ MakeFromBuffer()

SubRunOwner sktext::gpu::SubRun::MakeFromBuffer ( SkReadBuffer buffer,
sktext::gpu::SubRunAllocator alloc,
const SkStrikeClient client 
)
static

Definition at line 1335 of file SubRunContainer.cpp.

1337 {
1338 using Maker = SubRunOwner (*)(SkReadBuffer&,
1340 const SkStrikeClient*);
1341
1342 static Maker makers[kSubRunStreamTagCount] = {
1343 nullptr, // 0 index is bad.
1344 DirectMaskSubRun::MakeFromBuffer,
1345#if !defined(SK_DISABLE_SDF_TEXT)
1346 SDFTSubRun::MakeFromBuffer,
1347#endif
1348 TransformedMaskSubRun::MakeFromBuffer,
1349 PathSubRun::MakeFromBuffer,
1350 DrawableSubRun::MakeFromBuffer,
1351 };
1352 int subRunTypeInt = buffer.readInt();
1353 SkASSERT(kBad < subRunTypeInt && subRunTypeInt < kSubRunStreamTagCount);
1354 if (!buffer.validate(kBad < subRunTypeInt && subRunTypeInt < kSubRunStreamTagCount)) {
1355 return nullptr;
1356 }
1357 auto maker = makers[subRunTypeInt];
1358 if (!buffer.validate(maker != nullptr)) { return nullptr; }
1359 return maker(buffer, alloc, client);
1360}
#define SkASSERT(cond)
Definition SkAssert.h:116
std::unique_ptr< SubRun, SubRunAllocator::Destroyer > SubRunOwner

◆ subRunStreamTag()

virtual SubRunStreamTag sktext::gpu::SubRun::subRunStreamTag ( ) const
protectedpure virtual

◆ testingOnly_atlasSubRun()

virtual const AtlasSubRun * sktext::gpu::SubRun::testingOnly_atlasSubRun ( ) const
pure virtual

◆ unflattenSize()

virtual int sktext::gpu::SubRun::unflattenSize ( ) const
pure virtual

Friends And Related Symbol Documentation

◆ SubRunList

friend class SubRunList
friend

Definition at line 160 of file SubRunContainer.h.


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