SkTextBlob Reference


SkTextBlob combines multiple text runs into an immutable container. Each text run consists of Glyphs, Paint, and position. Only parts of Paint related to fonts and text rendering are used by run.


Returns conservative bounding box. Uses SkPaint associated with each glyph to determine glyph bounds, and unions all bounds. Returned bounds may be larger than the bounds of all glyphs in runs.

Return Value

conservative bounding box

Example

See Also

SkPath::getBounds


Returns a non-zero value unique among all text blobs.

Return Value

identifier for SkTextBlob

Example

See Also

SkRefCnt

Text_Intercepts describe the intersection of drawn text Glyphs with a pair of lines parallel to the text advance. Text_Intercepts permits creating a underline that skips Descenders.


Returns the number of intervals that intersect bounds. bounds describes a pair of lines parallel to the text advance. The return count is zero or a multiple of two, and is at most twice the number of glyphs in the the blob.

Pass nullptr for intervals to determine the size of the interval array.

Runs within the blob that contain SkRSXform are ignored when computing intercepts.

Parameters

Return Value

number of intersections; may be zero

Example


Creates Text_Blob with a single run. text meaning depends on Text_Encoding; by default, text is encoded as UTF-8.

font contains attributes used to define the run text: Typeface, Font_Size, Font_Scale_X, Font_Skew_X, Font_Hinting, Paint_Anti_Alias, Font_Embolden, Font_Force_Hinting, Font_Embedded_Bitmaps, Font_Hinting_Spacing, Font_Anti_Alias, Font_Linear, and Font_Subpixel .

Parameters

Return Value

Text_Blob constructed from one run

Example

See Also

MakeFromString SkTextBlobBuilder


Creates Text_Blob with a single run. string meaning depends on Text_Encoding; by default, string is encoded as UTF-8.

font contains Font_Metrics used to define the run text: Typeface, Font_Size, Font_Scale_X, Font_Skew_X, Font_Hinting, Paint_Anti_Alias, Font_Embolden, Font_Force_Hinting, Font_Embedded_Bitmaps, Font_Hinting_Spacing, Font_Anti_Alias, Font_Linear, and Font_Subpixel .

Parameters

Return Value

Text_Blob constructed from one run

Example

See Also

MakeFromText SkTextBlobBuilder


Writes data to allow later reconstruction of SkTextBlob. memory points to storage to receive the encoded data, and memory_size describes the size of storage. Returns bytes used if provided storage is large enough to hold all data; otherwise, returns zero.

procs.fTypefaceProc permits supplying a custom function to encode SkTypeface. If procs.fTypefaceProc is nullptr, default encoding is used. procs.fTypefaceCtx may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc is called with a pointer to SkTypeface and user context.

Parameters

Return Value

bytes written, or zero if required storage is larger than memory_size

Example

See Also

Deserialize SkSerialProcs


Returns storage containing SkData describing SkTextBlob, using optional custom encoders.

procs.fTypefaceProc permits supplying a custom function to encode SkTypeface. If procs.fTypefaceProc is nullptr, default encoding is used. procs.fTypefaceCtx may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc is called with a pointer to SkTypeface and user context.

Parameters

Return Value

storage containing serialized SkTextBlob

Example

See Also

Deserialize SkData SkSerialProcs


Recreates SkTextBlob that was serialized into data. Returns constructed SkTextBlob if successful; otherwise, returns nullptr. Fails if size is smaller than required data length, or if data does not permit constructing valid SkTextBlob.

procs.fTypefaceProc permits supplying a custom function to decode SkTypeface. If procs.fTypefaceProc is nullptr, default decoding is used. procs.fTypefaceCtx may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc is called with a pointer to SkTypeface data, data byte length, and user context.

Parameters

Return Value

SkTextBlob constructed from data in memory

Example

See Also

serialize SkDeserialProcs