8#ifndef SkTextBlob_DEFINED
9#define SkTextBlob_DEFINED
59 uint32_t
uniqueID()
const {
return fUniqueID; }
120 return MakeFromText(
string, strlen(
string),
font, encoding);
175 size_t serialize(
const SkSerialProcs& procs,
void* memory,
size_t memory_size)
const;
215#ifdef SK_UNTIL_CRBUG_1187654_IS_FIXED
216 const uint32_t* fClusterIndex_forTest;
217 int fUtf8Size_forTest;
218 const char* fUtf8_forTest;
240 const RunRecord* fRunRecord;
254 void operator delete(
void*
p);
255 void*
operator new(size_t);
256 void*
operator new(size_t,
void*
p);
260 using PurgeDelegate = void (*)(uint32_t blobID, uint32_t cacheID);
264 void notifyAddedToCache(uint32_t cacheID, PurgeDelegate purgeDelegate)
const {
265 fCacheID.store(cacheID);
266 fPurgeDelegate.store(purgeDelegate);
275 const uint32_t fUniqueID;
276 mutable std::atomic<uint32_t> fCacheID;
277 mutable std::atomic<PurgeDelegate> fPurgeDelegate;
486 const RunBuffer& allocRunTextPos(
const SkFont&
font,
int count,
int textByteCount,
490 const RunBuffer& allocRunTextRSXform(
const SkFont&
font,
int count,
int textByteCount,
494 void reserve(
size_t size);
499 void updateDeferredBounds();
501 static SkRect ConservativeRunBounds(
const SkTextBlob::RunRecord&);
502 static SkRect TightRunBounds(
const SkTextBlob::RunRecord&);
505 friend class SkTextBlobBuilderPriv;
513 bool fDeferredBounds;
static float next(float f)
@ kUTF8
uses bytes to represent UTF-8 or ASCII
#define INHERITED(method,...)
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
uint32_t uniqueID() const
const SkRect & bounds() const
static sk_sp< SkTextBlob > MakeFromString(const char *string, const SkFont &font, SkTextEncoding encoding=SkTextEncoding::kUTF8)
Optional< SkRect > bounds
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
font
Font Metadata and Metrics.
static void make(SkBitmap *bitmap, SkColorType colorType, SkAlphaType alphaType, sk_sp< SkColorSpace > colorSpace)
SkRSXform * xforms() const
SkScalar * pos
storage for glyph positions in run
char * utf8text
storage for text UTF-8 code units in run
SkGlyphID * glyphs
storage for glyph indexes in run
uint32_t * clusters
storage for glyph clusters (index of UTF-8 code unit)
const SkPoint * positions
const uint16_t * fGlyphIndices
std::shared_ptr< const fml::Mapping > data