const <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>&<ahref='#SkTextBlobBuilder_allocRun'>allocRun</a>(const <ahref='SkPaint_Reference#SkPaint'>SkPaint</a>& font, int count, <ahref='undocumented#SkScalar'>SkScalar</a> x, <ahref='undocumented#SkScalar'>SkScalar</a> y,
const <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>&<ahref='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(const <ahref='SkPaint_Reference#SkPaint'>SkPaint</a>& font, int count, <ahref='undocumented#SkScalar'>SkScalar</a> y,
<ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a> supplies storage for <ahref='undocumented#Glyph'>Glyphs</a> and positions within a run.
A run is a sequence of <ahref='undocumented#Glyph'>Glyphs</a> sharing <ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a> and positioning.
Each run may position its <ahref='undocumented#Glyph'>Glyphs</a> in one of three ways:
by specifying where the first <ahref='undocumented#Glyph'>Glyph</a> is drawn, and allowing <ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a> to
determine the advance to subsequent <ahref='undocumented#Glyph'>Glyphs</a>; by specifying a baseline, and
the position on that baseline for each <ahref='undocumented#Glyph'>Glyph</a> in run; or by providing <ahref='SkPoint_Reference#Point'>Point</a>
pos points to memory for <ahref='undocumented#Glyph'>Glyph</a> positions. Depending on how <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>
is allocated, pos may point to zero bytes per <ahref='undocumented#Glyph'>Glyph</a>, one <ahref='undocumented#Scalar'>Scalar</a> per <ahref='undocumented#Glyph'>Glyph</a>,
or one <ahref='SkPoint_Reference#Point'>Point</a> per <ahref='undocumented#Glyph'>Glyph</a>.
const <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>&<ahref='#SkTextBlobBuilder_allocRun'>allocRun</a>(const <ahref='SkPaint_Reference#SkPaint'>SkPaint</a>& font, int count, <ahref='undocumented#SkScalar'>SkScalar</a> x, <ahref='undocumented#SkScalar'>SkScalar</a> y,
Returns run with storage for <ahref='undocumented#Glyph'>Glyphs</a>. Caller must write <ahref='#SkTextBlobBuilder_allocRun_count'>count</a><ahref='undocumented#Glyph'>Glyphs</a> to
<ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.glyphs before next call to FontBlobBuilder.
<ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.utf8text, and <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.clusters should be ignored.
<ahref='undocumented#Glyph'>Glyphs</a> share <ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a> in <ahref='#SkTextBlobBuilder_allocRun_font'>font</a>, including: <ahref='undocumented#Typeface'>Typeface</a>, <ahref='SkPaint_Reference#Text_Size'>Paint Text Size</a>, <ahref='SkPaint_Reference#Text_Scale_X'>Paint Text Scale X</a>,
<ahref='SkPaint_Reference#Text_Skew_X'>Paint Text Skew X</a>, <ahref='SkPaint_Reference#Text_Align'>Paint Text Align</a>, <ahref='SkPaint_Reference#Hinting'>Paint Hinting</a>, <ahref='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <ahref='SkPaint_Reference#Fake_Bold'>Paint Fake Bold</a>,
and <ahref='SkPaint_Reference#Subpixel_Text'>Subpixel Text</a>.
<ahref='undocumented#Glyph'>Glyphs</a> are positioned on a baseline at (<ahref='#SkTextBlobBuilder_allocRun_x'>x</a>, <ahref='#SkTextBlobBuilder_allocRun_y'>y</a>), using <ahref='#SkTextBlobBuilder_allocRun_font'>font</a><ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a> to
determine their relative placement.
<ahref='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> defines an optional bounding box, used to suppress drawing when <ahref='SkTextBlob_Reference#Text_Blob'>Text Blob</a>
<ahref='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> does not intersect <ahref='SkSurface_Reference#Surface'>Surface</a><ahref='#SkTextBlobBuilder_allocRun_bounds'>bounds</a>. If <ahref='#SkTextBlobBuilder_allocRun_bounds'>bounds</a> is nullptr, <ahref='SkTextBlob_Reference#Text_Blob'>Text Blob</a><ahref='#SkTextBlobBuilder_allocRun_bounds'>bounds</a>
is computed from (<ahref='#SkTextBlobBuilder_allocRun_x'>x</a>, <ahref='#SkTextBlobBuilder_allocRun_y'>y</a>) and <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.glyphs <ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a>.
const <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>&<ahref='#SkTextBlobBuilder_allocRunPosH'>allocRunPosH</a>(const <ahref='SkPaint_Reference#SkPaint'>SkPaint</a>& font, int count, <ahref='undocumented#SkScalar'>SkScalar</a> y,
Returns run with storage for <ahref='undocumented#Glyph'>Glyphs</a> and positions along baseline. Caller must
write <ahref='#SkTextBlobBuilder_allocRunPosH_count'>count</a><ahref='undocumented#Glyph'>Glyphs</a> to <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.glyphs, and <ahref='#SkTextBlobBuilder_allocRunPosH_count'>count</a><ahref='undocumented#Scalar'>Scalars</a> to <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.pos;
before next call to FontBlobBuilder.
<ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.utf8text, and <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.clusters should be ignored.
<ahref='undocumented#Glyph'>Glyphs</a> share <ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a> in <ahref='#SkTextBlobBuilder_allocRunPosH_font'>font</a>, including: <ahref='undocumented#Typeface'>Typeface</a>, <ahref='SkPaint_Reference#Text_Size'>Paint Text Size</a>, <ahref='SkPaint_Reference#Text_Scale_X'>Paint Text Scale X</a>,
<ahref='SkPaint_Reference#Text_Skew_X'>Paint Text Skew X</a>, <ahref='SkPaint_Reference#Text_Align'>Paint Text Align</a>, <ahref='SkPaint_Reference#Hinting'>Paint Hinting</a>, <ahref='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <ahref='SkPaint_Reference#Fake_Bold'>Paint Fake Bold</a>,
and <ahref='SkPaint_Reference#Subpixel_Text'>Subpixel Text</a>.
<ahref='undocumented#Glyph'>Glyphs</a> are positioned on a baseline at <ahref='#SkTextBlobBuilder_allocRunPosH_y'>y</a>, using x-axis positions written by
caller to <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.pos.
<ahref='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> defines an optional bounding box, used to suppress drawing when <ahref='SkTextBlob_Reference#Text_Blob'>Text Blob</a>
<ahref='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> does not intersect <ahref='SkSurface_Reference#Surface'>Surface</a><ahref='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a>. If <ahref='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a> is nullptr, <ahref='SkTextBlob_Reference#Text_Blob'>Text Blob</a><ahref='#SkTextBlobBuilder_allocRunPosH_bounds'>bounds</a>
is computed from <ahref='#SkTextBlobBuilder_allocRunPosH_y'>y</a>, <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.pos, and <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.glyphs <ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a>.
Returns run with storage for <ahref='undocumented#Glyph'>Glyphs</a> and <ahref='SkPoint_Reference#Point'>Point</a> positions. Caller must
write <ahref='#SkTextBlobBuilder_allocRunPos_count'>count</a><ahref='undocumented#Glyph'>Glyphs</a> to <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.glyphs, and <ahref='#SkTextBlobBuilder_allocRunPos_count'>count</a><ahref='SkPoint_Reference#Point'>Points</a> to <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.pos;
before next call to FontBlobBuilder.
<ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.utf8text, and <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.clusters should be ignored.
<ahref='undocumented#Glyph'>Glyphs</a> share <ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a> in <ahref='#SkTextBlobBuilder_allocRunPos_font'>font</a>, including: <ahref='undocumented#Typeface'>Typeface</a>, <ahref='SkPaint_Reference#Text_Size'>Paint Text Size</a>, <ahref='SkPaint_Reference#Text_Scale_X'>Paint Text Scale X</a>,
<ahref='SkPaint_Reference#Text_Skew_X'>Paint Text Skew X</a>, <ahref='SkPaint_Reference#Text_Align'>Paint Text Align</a>, <ahref='SkPaint_Reference#Hinting'>Paint Hinting</a>, <ahref='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <ahref='SkPaint_Reference#Fake_Bold'>Paint Fake Bold</a>,
and <ahref='SkPaint_Reference#Subpixel_Text'>Subpixel Text</a>.
<ahref='undocumented#Glyph'>Glyphs</a> are positioned using <ahref='SkPoint_Reference#Point'>Points</a> written by caller to <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.pos, using
two <ahref='undocumented#Scalar'>Scalar</a> values for each <ahref='SkPoint_Reference#Point'>Point</a>.
<ahref='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> defines an optional bounding box, used to suppress drawing when <ahref='SkTextBlob_Reference#Text_Blob'>Text Blob</a>
<ahref='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> does not intersect <ahref='SkSurface_Reference#Surface'>Surface</a><ahref='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a>. If <ahref='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a> is nullptr, <ahref='SkTextBlob_Reference#Text_Blob'>Text Blob</a><ahref='#SkTextBlobBuilder_allocRunPos_bounds'>bounds</a>
is computed from <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.pos, and <ahref='#SkTextBlobBuilder_RunBuffer'>RunBuffer</a>.glyphs <ahref='SkPaint_Reference#Font_Metrics'>Paint Font Metrics</a>.