|
static sk_sp< SkTextBlob > | MakeFromText (const void *text, size_t byteLength, const SkFont &font, SkTextEncoding encoding=SkTextEncoding::kUTF8) |
| Creates SkTextBlob with a single run. More...
|
|
static sk_sp< SkTextBlob > | MakeFromString (const char *string, const SkFont &font, SkTextEncoding encoding=SkTextEncoding::kUTF8) |
| Creates SkTextBlob with a single run. More...
|
|
static sk_sp< SkTextBlob > | MakeFromPosTextH (const void *text, size_t byteLength, const SkScalar xpos[], SkScalar constY, const SkFont &font, SkTextEncoding encoding=SkTextEncoding::kUTF8) |
| Returns a textblob built from a single run of text with x-positions and a single y value. More...
|
|
static sk_sp< SkTextBlob > | MakeFromPosText (const void *text, size_t byteLength, const SkPoint pos[], const SkFont &font, SkTextEncoding encoding=SkTextEncoding::kUTF8) |
| Returns a textblob built from a single run of text with positions. More...
|
|
static sk_sp< SkTextBlob > | MakeFromRSXform (const void *text, size_t byteLength, const SkRSXform xform[], const SkFont &font, SkTextEncoding encoding=SkTextEncoding::kUTF8) |
|
static sk_sp< SkTextBlob > | Deserialize (const void *data, size_t size, const SkDeserialProcs &procs) |
| Recreates SkTextBlob that was serialized into data. More...
|
|
SkTextBlob combines multiple text runs into an immutable container.
Each text run consists of glyphs, SkPaint, and position. Only parts of SkPaint related to fonts and text rendering are used by run.
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
-
data | pointer for serial data |
size | size of data |
procs | custom serial data decoders; may be nullptr |
- Returns
- SkTextBlob constructed from data in memory
int SkTextBlob::getIntercepts |
( |
const SkScalar |
bounds[2], |
|
|
SkScalar |
intervals[], |
|
|
const SkPaint * |
paint = nullptr |
|
) |
| const |
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
-
bounds | lower and upper line parallel to the advance |
intervals | returned intersections; may be nullptr |
paint | specifies stroking, SkPathEffect that affects the result; may be nullptr |
- Returns
- number of intersections; may be zero
Creates SkTextBlob with a single run.
string meaning depends on SkTextEncoding; by default, string is encoded as UTF-8.
font contains attributes used to define the run text.
When encoding is SkTextEncoding::kUTF8, SkTextEncoding::kUTF16, or SkTextEncoding::kUTF32, this function uses the default character-to-glyph mapping from the SkTypeface in font. It does not perform typeface fallback for characters not found in the SkTypeface. It does not perform kerning or other complex shaping; glyphs are positioned based on their default advances.
- Parameters
-
string | character code points or glyphs drawn |
font | text size, typeface, text scale, and so on, used to draw |
encoding | text encoding used in the text array |
- Returns
- SkTextBlob constructed from one run
size_t SkTextBlob::serialize |
( |
const SkSerialProcs & |
procs, |
|
|
void * |
memory, |
|
|
size_t |
memory_size |
|
) |
| const |
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
-
procs | custom serial data encoders; may be nullptr |
memory | storage for data |
memory_size | size of storage |
- Returns
- bytes written, or zero if required storage is larger than memory_size
example: https://fiddle.skia.org/c/@TextBlob_serialize