class <ahref='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> final : public <ahref='undocumented#SkNVRefCnt'>SkNVRefCnt</a><<ahref='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> {
<ahref='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> combines multiple <ahref='undocumented#Text'>text</a> runs into an immutable container. Each <ahref='undocumented#Text'>text</a>
run consists of <ahref='undocumented#Glyph'>Glyphs</a>, <ahref='SkPaint_Reference#Paint'>Paint</a>, and position. Only parts of <ahref='SkPaint_Reference#Paint'>Paint</a> related to
fonts and <ahref='undocumented#Text'>text</a> rendering are used by run.
<ahref='#Text_Blob_Text_Intercepts'>Text_Intercepts</a> describe the intersection of drawn <ahref='undocumented#Text'>text</a><ahref='undocumented#Glyph'>Glyphs</a> with a pair
of <ahref='undocumented#Line'>lines</a> parallel to the <ahref='undocumented#Text'>text</a> advance. <ahref='#Text_Blob_Text_Intercepts'>Text_Intercepts</a> permits creating a
Returns the number of <ahref='#SkTextBlob_getIntercepts_intervals'>intervals</a> that intersect <ahref='#SkTextBlob_getIntercepts_bounds'>bounds</a>.
<ahref='#SkTextBlob_getIntercepts_bounds'>bounds</a> describes a pair of <ahref='undocumented#Line'>lines</a> parallel to the <ahref='undocumented#Text'>text</a> advance.
The return count is zero or a multiple of two, and is at most twice the number of <ahref='undocumented#Glyph'>glyphs</a> in
the the blob.
Pass nullptr for <ahref='#SkTextBlob_getIntercepts_intervals'>intervals</a> to determine the <ahref='undocumented#Size'>size</a> of the interval array.
Creates <ahref='#Text_Blob'>Text_Blob</a> with a single run. <ahref='#SkTextBlob_MakeFromText_text'>text</a> meaning depends on <ahref='#Text_Encoding'>Text_Encoding</a>;
<ahref='#SkTextBlob_MakeFromText_font'>font</a> contains attributes used to define the run <ahref='#SkTextBlob_MakeFromText_text'>text</a>: <ahref='undocumented#Typeface'>Typeface</a>, <ahref='#Font_Size'>Font_Size</a>, <ahref='#Font_Scale_X'>Font_Scale_X</a>,
<td><ahref='#SkTextBlob_MakeFromText_text'>text</a><ahref='undocumented#Size'>size</a>, <ahref='undocumented#Typeface'>typeface</a>, <ahref='#SkTextBlob_MakeFromText_text'>text scale</a>, and so on, used to draw</td>
Creates <ahref='#Text_Blob'>Text_Blob</a> with a single run. <ahref='#SkTextBlob_MakeFromString_string'>string</a> meaning depends on <ahref='#Text_Encoding'>Text_Encoding</a>;
<ahref='#SkTextBlob_MakeFromString_font'>font</a> contains <ahref='#Font_Metrics'>Font_Metrics</a> used to define the run <ahref='undocumented#Text'>text</a>: <ahref='undocumented#Typeface'>Typeface</a>, <ahref='#Font_Size'>Font_Size</a>, <ahref='#Font_Scale_X'>Font_Scale_X</a>,
<td><ahref='undocumented#Text'>text</a><ahref='undocumented#Size'>size</a>, <ahref='undocumented#Typeface'>typeface</a>, <ahref='undocumented#Text'>text scale</a>, and so on, used to draw</td>
Writes <ahref='undocumented#Data'>data</a> to allow later reconstruction of <ahref='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>. <ahref='#SkTextBlob_serialize_memory'>memory</a><ahref='SkPoint_Reference#Point'>points</a> to storage
to receive the encoded <ahref='undocumented#Data'>data</a>, and <ahref='#SkTextBlob_serialize_memory_size'>memory_size</a> describes the <ahref='undocumented#Size'>size</a> of storage.
<ahref='#SkTextBlob_serialize_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to encode <ahref='undocumented#SkTypeface'>SkTypeface</a>.
If <ahref='#SkTextBlob_serialize_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default encoding is used. <ahref='#SkTextBlob_serialize_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceCtx'>fTypefaceCtx</a>
may be used to provide user context to <ahref='#SkTextBlob_serialize_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>; <ahref='#SkTextBlob_serialize_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>
<ahref='#SkTextBlob_serialize_2_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to encode <ahref='undocumented#SkTypeface'>SkTypeface</a>.
If <ahref='#SkTextBlob_serialize_2_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default encoding is used. <ahref='#SkTextBlob_serialize_2_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceCtx'>fTypefaceCtx</a>
may be used to provide user context to <ahref='#SkTextBlob_serialize_2_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>; <ahref='#SkTextBlob_serialize_2_procs'>procs</a>.<ahref='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>
Recreates <ahref='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> that was serialized into <ahref='#SkTextBlob_Deserialize_data'>data</a>. Returns constructed <ahref='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
if successful; otherwise, returns nullptr. Fails if <ahref='#SkTextBlob_Deserialize_size'>size</a> is smaller than
required <ahref='#SkTextBlob_Deserialize_data'>data</a> length, or if <ahref='#SkTextBlob_Deserialize_data'>data</a> does not permit constructing valid <ahref='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>.
<ahref='#SkTextBlob_Deserialize_procs'>procs</a>.<ahref='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to decode <ahref='undocumented#SkTypeface'>SkTypeface</a>.
If <ahref='#SkTextBlob_Deserialize_procs'>procs</a>.<ahref='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default decoding is used. <ahref='#SkTextBlob_Deserialize_procs'>procs</a>.<ahref='#SkDeserialProcs_fTypefaceCtx'>fTypefaceCtx</a>
may be used to provide user context to <ahref='#SkTextBlob_Deserialize_procs'>procs</a>.<ahref='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a>; <ahref='#SkTextBlob_Deserialize_procs'>procs</a>.<ahref='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a>
is called with a pointer to <ahref='undocumented#SkTypeface'>SkTypeface</a><ahref='#SkTextBlob_Deserialize_data'>data</a>, <ahref='#SkTextBlob_Deserialize_data'>data</a> byte length, and user context.
<div><fiddle-embedname="68b6d0208eb0b4de67fc152381af7a58"><div><ahref='undocumented#Text'>Text</a> "Hacker" replaces "World!", but does not update its metrics.
When drawn, "Hacker" uses the spacing computed for "World!".