8#ifndef SkSVGTextPriv_DEFINED
9#define SkSVGTextPriv_DEFINED
56 bool has(
Attr a)
const {
return fStorage[
a] != kNone; }
69 inline static constexpr auto kNone = std::numeric_limits<float>::infinity();
71 float fStorage[5] = { kNone, kNone, kNone, kNone, kNone };
72 bool fImplicitRotate =
false;
97 const size_t fCharIndexOffset;
98 const std::vector<float> fX,
102 const std::vector<float>& fRotate;
123 struct PositionAdjustment {
133 void reserve(
size_t size) {
140 fUtf8PosAdjust.
clear();
148 std::unique_ptr<SkPaint> fillPaint,
150 std::unique_ptr<SkGlyphID[]>
glyphs;
151 std::unique_ptr<SkPoint[]> glyphPos;
152 std::unique_ptr<PositionAdjustment[]> glyhPosAdjust;
164 float length()
const {
return fLength; }
167 std::vector<sk_sp<SkContourMeasure>> fContours;
174 const PositionAdjustment&)
const;
177 void beginLine()
override {}
178 void runInfo(
const RunInfo&)
override {}
179 void commitRunInfo()
override {}
180 Buffer runBuffer(
const RunInfo& ri)
override;
181 void commitRunBuffer(
const RunInfo& ri)
override;
182 void commitLine()
override;
187 std::unique_ptr<SkShaper> fShaper;
188 std::vector<RunRec> fRuns;
189 const ScopedPosResolver* fPosResolver =
nullptr;
190 std::unique_ptr<PathData> fPathData;
193 ShapeBuffer fShapeBuffer;
194 std::vector<uint32_t> fShapeClusterBuffer;
199 float fChunkAlignmentFactor;
202 size_t fCurrentCharIndex = 0;
208 bool fPrevCharSpace =
true;
209 bool fForcePrimitiveShaping =
false;
constexpr int SkToInt(S x)
float & operator[](Attr a)
void setImplicitRotate(bool imp)
float operator[](Attr a) const
bool isImplicitRotate() const
ScopedPosResolver(const SkSVGTextContainer &, const SkSVGLengthContext &, SkSVGTextContext *, size_t)
PosAttrs resolve(size_t charIndex) const
const ShapedTextCallback & getCallback() const
void flushChunk(const SkSVGRenderContext &ctx)
void shapeFragment(const SkString &, const SkSVGRenderContext &, SkSVGXmlSpace)
std::function< void(const SkSVGRenderContext &, const sk_sp< SkTextBlob > &, const SkPaint *, const SkPaint *)> ShapedTextCallback
SkSVGTextContext(const SkSVGRenderContext &, const ShapedTextCallback &, const SkSVGTextPath *=nullptr)
~SkSVGTextContext() override
void reserve_exact(int n)
static void append(char **dst, size_t *count, const char *src, size_t n)
Dart_NativeFunction function
static float max(float r, float g, float b)
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
font
Font Metadata and Metrics.