skia2/docs/SkTextBlobBuilder_Reference.bmh
Cary Clark abaffd85ab bookmaker does deprecated
Bookmaker does not require documentation for public symbols
described as "deprecated", "private", or "experimental".
Adding one of these words (case-insensitive) to the symbol
description in the include file tells bookmaker that the bmh file
should not include documentation, and the generated markdown
should omit it in its indices and descriptions.

Symbols marked as "to be deprecated" or "may be deprecated"
are still regarded as public and documented.

Private notes in the includes that start with TODO: are
omitted as well.

This CL updated generated includes to describe its symbols
accordingly. The includes will be fully regenerated in a future
CL. The corresponding documentation has been deleted from the
bmh files, and the web markup has been regenerated.

TBR=reed@google.com
Docs-Preview: https://skia.org/?cl=169830
Bug: skia:
Change-Id: Ie6ec3ccdadb7be9ac15db4811823a30948c4af25
Reviewed-on: https://skia-review.googlesource.com/c/169830
Commit-Queue: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
2018-11-15 14:08:45 +00:00

202 lines
5.2 KiB
Plaintext

#Topic Text_Blob_Builder
#Alias Text_Blob_Builder_Reference ##
#Class SkTextBlobBuilder
#Code
#Populate
##
Helper class for constructing SkTextBlob.
# ------------------------------------------------------------------------------
#Struct RunBuffer
#Line # storage for Glyphs and Glyph positions ##
#Code
struct RunBuffer {
SkGlyphID* glyphs;
SkScalar* pos;
char* utf8text;
uint32_t* clusters;
};
##
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.
#Member SkGlyphID* glyphs
#Line # storage for Glyphs in run ##
glyphs points to memory for one or more Glyphs. glyphs memory must be
written to by the caller.
##
#Member SkScalar* pos
#Line # storage for positions in run ##
pos points to memory for Glyph positions. Depending on how RunBuffer
is allocated, pos may point to zero bytes per Glyph, one Scalar per Glyph,
or one Point per Glyph.
##
#Member char* utf8text
#Line # reserved for future use ##
Reserved for future use. utf8text should not be read or written.
##
#Member uint32_t* clusters
#Line # reserved for future use ##
Reserved for future use. clusters should not be read or written.
##
#SeeAlso allocRun allocRunPos allocRunPosH
#Struct RunBuffer ##
# ------------------------------------------------------------------------------
#Method SkTextBlobBuilder()
#In Constructors
#Line # constructs with default values ##
#Populate
#Example
SkTextBlobBuilder builder;
sk_sp<SkTextBlob> blob = builder.make();
SkDebugf("blob " "%s" " nullptr", blob == nullptr ? "equals" : "does not equal");
#StdOut
blob equals nullptr
##
##
#SeeAlso make SkTextBlob::MakeFromText
#Method ##
# ------------------------------------------------------------------------------
#Method ~SkTextBlobBuilder()
#In Constructors
#Line # deletes storage ##
#Populate
#NoExample
##
#SeeAlso SkTextBlobBuilder()
#Method ##
# ------------------------------------------------------------------------------
#Method sk_sp<SkTextBlob> make()
#In Constructors
#Line # constructs Text_Blob from bulider ##
#Populate
#Example
SkTextBlobBuilder builder;
sk_sp<SkTextBlob> blob = builder.make();
SkDebugf("blob " "%s" " nullptr\n", blob == nullptr ? "equals" : "does not equal");
SkPaint paint;
paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
paint.textToGlyphs("x", 1, builder.allocRun(paint, 1, 20, 20).glyphs);
blob = builder.make();
SkDebugf("blob " "%s" " nullptr\n", blob == nullptr ? "equals" : "does not equal");
blob = builder.make();
SkDebugf("blob " "%s" " nullptr\n", blob == nullptr ? "equals" : "does not equal");
#StdOut
blob equals nullptr
blob does not equal nullptr
blob equals nullptr
##
##
#SeeAlso SkTextBlob::MakeFromText
#Method ##
# ------------------------------------------------------------------------------
#Method const RunBuffer& allocRun(const SkFont& font, int count, SkScalar x, SkScalar y,
const SkRect* bounds = nullptr)
#In Allocator
#Line # returns writable glyph buffer at Point ##
#Populate
#Example
#Height 60
SkTextBlobBuilder builder;
SkFont font;
SkPaint paint;
const SkTextBlobBuilder::RunBuffer& run = builder.allocRun(font, 5, 20, 20);
paint.textToGlyphs("hello", 5, run.glyphs);
canvas->drawRect({20, 20, 30, 30}, paint);
canvas->drawTextBlob(builder.make(), 20, 20, paint);
##
#SeeAlso allocRunPosH allocRunPos
#Method ##
# ------------------------------------------------------------------------------
#Method const RunBuffer& allocRunPosH(const SkFont& font, int count, SkScalar y,
const SkRect* bounds = nullptr)
#In Allocator
#Line # returns writable glyph and x-axis position buffers ##
#Populate
#Example
#Height 60
SkTextBlobBuilder builder;
SkPaint paint;
SkFont font;
const SkTextBlobBuilder::RunBuffer& run = builder.allocRunPosH(font, 5, 20);
paint.textToGlyphs("hello", 5, run.glyphs);
SkScalar positions[] = {0, 10, 20, 40, 80};
memcpy(run.pos, positions, sizeof(positions));
canvas->drawTextBlob(builder.make(), 20, 20, paint);
##
#SeeAlso allocRunPos allocRun
#Method ##
# ------------------------------------------------------------------------------
#Method const RunBuffer& allocRunPos(const SkFont& font, int count,
const SkRect* bounds = nullptr)
#In Allocator
#Line # returns writable glyph and Point buffers ##
#Populate
#Example
#Height 90
SkTextBlobBuilder builder;
SkPaint paint;
SkFont font;
const SkTextBlobBuilder::RunBuffer& run = builder.allocRunPos(font, 5);
paint.textToGlyphs("hello", 5, run.glyphs);
SkPoint positions[] = {{0, 0}, {10, 10}, {20, 20}, {40, 40}, {80, 80}};
memcpy(run.pos, positions, sizeof(positions));
canvas->drawTextBlob(builder.make(), 20, 20, paint);
##
#SeeAlso allocRunPosH allocRun
#Method ##
#Class SkTextBlobBuilder ##
#Topic Text_Blob_Builder ##