Helper class for constructing SkTextBlob.
RunBuffer supplies storage for Glyphs and positions within a run.
A run is a sequence of Glyphs sharing Paint Font Metrics and positioning. Each run may position its Glyphs in one of three ways: by specifying where the first Glyph is drawn, and allowing Paint Font Metrics to determine the advance to subsequent Glyphs; by specifying a baseline, and the position on that baseline for each Glyph in run; or by providing Point array, one per Glyph.
allocRun[2] allocRunPos[2] allocRunPosH[2]
Constructs empty SkTextBlobBuilder. By default, SkTextBlobBuilder has no runs.
empty SkTextBlobBuilder
blob equals nullptr
make SkTextBlob::MakeFromText
Deletes data allocated internally by SkTextBlobBuilder.
SkTextBlobBuilder()
Returns SkTextBlob built from runs of glyphs added by builder. Returned SkTextBlob is immutable; it may be copied, but its contents may not be altered. Returns nullptr if no runs of glyphs were added by builder.
Resets SkTextBlobBuilder to its initial empty state, allowing it to be reused to build a new set of runs.
SkTextBlob or nullptr
blob equals nullptr blob does not equal nullptr blob equals nullptr
SkTextBlob::MakeFromText
Returns run with storage for Glyphs. Caller must write count Glyphs to RunBuffer.glyphs before next call to FontBlobBuilder.
RunBuffer.utf8text, and RunBuffer.clusters should be ignored.
Glyphs share Paint Font Metrics in font, including: Typeface, Paint Text Size, Paint Text Scale X, Paint Text Skew X, Paint Hinting, Anti Alias, Paint Fake Bold, Font Embedded Bitmaps, Full Hinting Spacing, LCD Text, Linear Text, and Subpixel Text.
Glyphs are positioned on a baseline at (x, y), using font Paint Font Metrics to determine their relative placement.
bounds defines an optional bounding box, used to suppress drawing when Text Blob bounds does not intersect Surface bounds. If bounds is nullptr, Text Blob bounds is computed from (x, y) and RunBuffer.glyphs Paint Font Metrics.
writable glyph buffer
allocRunPosH[2] allocRunPos[2]
Returns run with storage for Glyphs. Caller must write count Glyphs to RunBuffer.glyphs before next call to FontBlobBuilder.
RunBuffer.utf8text, and RunBuffer.clusters should be ignored.
Glyphs share Paint Font Metrics in font, including: Typeface, Paint Text Size, Paint Text Scale X, Paint Text Skew X, Paint Hinting, Anti Alias, Paint Fake Bold, Font Embedded Bitmaps, Full Hinting Spacing, LCD Text, Linear Text, and Subpixel Text.
Glyphs are positioned on a baseline at (x, y), using font Paint Font Metrics to determine their relative placement.
bounds defines an optional bounding box, used to suppress drawing when Text Blob bounds does not intersect Surface bounds. If bounds is nullptr, Text Blob bounds is computed from (x, y) and RunBuffer.glyphs Paint Font Metrics.
writable glyph buffer
allocRunPosH[2] allocRunPos[2]
Returns run with storage for Glyphs and positions along baseline. Caller must write count Glyphs to RunBuffer.glyphs, and count Scalars to RunBuffer.pos; before next call to FontBlobBuilder.
RunBuffer.utf8text, and RunBuffer.clusters should be ignored.
Glyphs share Paint Font Metrics in font, including: Typeface, Paint Text Size, Paint Text Scale X, Paint Text Skew X, Paint Hinting, Anti Alias, Paint Fake Bold, Font Embedded Bitmaps, Full Hinting Spacing, LCD Text, Linear Text, and Subpixel Text.
Glyphs are positioned on a baseline at y, using x-axis positions written by caller to RunBuffer.pos.
bounds defines an optional bounding box, used to suppress drawing when Text Blob bounds does not intersect Surface bounds. If bounds is nullptr, Text Blob bounds is computed from y, RunBuffer.pos, and RunBuffer.glyphs Paint Font Metrics.
writable glyph buffer and x-axis position buffer
allocRunPos[2] allocRun[2]
Returns run with storage for Glyphs and positions along baseline. Caller must write count Glyphs to RunBuffer.glyphs, and count Scalars to RunBuffer.pos; before next call to FontBlobBuilder.
RunBuffer.utf8text, and RunBuffer.clusters should be ignored.
Glyphs share Paint Font Metrics in font, including: Typeface, Paint Text Size, Paint Text Scale X, Paint Text Skew X, Paint Hinting, Anti Alias, Paint Fake Bold, Font Embedded Bitmaps, Full Hinting Spacing, LCD Text, Linear Text, and Subpixel Text.
Glyphs are positioned on a baseline at y, using x-axis positions written by caller to RunBuffer.pos.
bounds defines an optional bounding box, used to suppress drawing when Text Blob bounds does not intersect Surface bounds. If bounds is nullptr, Text Blob bounds is computed from y, RunBuffer.pos, and RunBuffer.glyphs Paint Font Metrics.
writable glyph buffer and x-axis position buffer
allocRunPos[2] allocRun[2]
Returns run with storage for Glyphs and Point positions. Caller must write count Glyphs to RunBuffer.glyphs, and count Points to RunBuffer.pos; before next call to FontBlobBuilder.
RunBuffer.utf8text, and RunBuffer.clusters should be ignored.
Glyphs share Paint Font Metrics in font, including: Typeface, Paint Text Size, Paint Text Scale X, Paint Text Skew X, Paint Hinting, Anti Alias, Paint Fake Bold, Font Embedded Bitmaps, Full Hinting Spacing, LCD Text, Linear Text, and Subpixel Text.
Glyphs are positioned using Points written by caller to RunBuffer.pos, using two Scalar values for each Point.
bounds defines an optional bounding box, used to suppress drawing when Text Blob bounds does not intersect Surface bounds. If bounds is nullptr, Text Blob bounds is computed from RunBuffer.pos, and RunBuffer.glyphs Paint Font Metrics.
writable glyph buffer and Point buffer
allocRunPosH[2] allocRun[2]
Returns run with storage for Glyphs and Point positions. Caller must write count Glyphs to RunBuffer.glyphs, and count Points to RunBuffer.pos; before next call to FontBlobBuilder.
RunBuffer.utf8text, and RunBuffer.clusters should be ignored.
Glyphs share Paint Font Metrics in font, including: Typeface, Paint Text Size, Paint Text Scale X, Paint Text Skew X, Paint Hinting, Anti Alias, Paint Fake Bold, Font Embedded Bitmaps, Full Hinting Spacing, LCD Text, Linear Text, and Subpixel Text.
Glyphs are positioned using Points written by caller to RunBuffer.pos, using two Scalar values for each Point.
bounds defines an optional bounding box, used to suppress drawing when Text Blob bounds does not intersect Surface bounds. If bounds is nullptr, Text Blob bounds is computed from RunBuffer.pos, and RunBuffer.glyphs Paint Font Metrics.
writable glyph buffer and Point buffer
allocRunPosH[2] allocRun[2]