42 std::unique_ptr<SkScalerContext> fProxy;
56 fProxy->forceGenerateImageFromPath();
74 mx.
advance = glyph.advanceVector();
79 if (fFakeIt || (glyph.getGlyphID() % 4) != 2) {
85 fProxy->getPath(glyph, alloc);
93 const auto packedID = glyph.getPackedID();
94 const SkGlyph* proxyGlyph = fProxyGlyphs.
set(packedID, std::move(glyph));
118 if (!proxyGlyph || !proxyGlyph->
path()) {
119 fProxy->getImage(glyph);
144 if (shadowProxyGlyph && shadowProxyGlyph->
path()) {
148 return fProxy->generatePath(glyph, path);
153 if (shadowProxyGlyph && shadowProxyGlyph->
path()) {
156 return fProxy->generateDrawable(glyph);
160 fProxy->getFontMetrics(metrics);
174 return std::make_unique<RandomScalerContext>(
189 return fProxy->getAdvancedMetrics();
201 return sk_make_sp<SkRandomTypeface>(
proxy, fPaint, fFakeIt);
235 return fProxy->glyphMaskNeedsCurrentColor();
240 int coordinateCount)
const {
245 int parameterCount)
const {
const TextureProxy * fProxy
@ kNone
glyph outlines unchanged
static void sk_bzero(void *buffer, size_t size)
sk_sp< T > sk_ref_sp(T *obj)
bool generatePath(const SkGlyph &, SkPath *) override
GlyphMetrics generateMetrics(const SkGlyph &, SkArenaAlloc *) override
void generateFontMetrics(SkFontMetrics *) override
sk_sp< SkDrawable > generateDrawable(const SkGlyph &) override
void generateImage(const SkGlyph &, void *) override
bool installPixels(const SkImageInfo &info, void *pixels, size_t rowBytes, void(*releaseProc)(void *addr, void *context), void *context)
void eraseColor(SkColor4f) const
void translate(SkScalar dx, SkScalar dy)
void drawPath(const SkPath &path, const SkPaint &paint)
uint16_t extraBits() const
SkGlyphID getGlyphID() const
const SkPath * path() const
bool pathIsHairline() const
SkPackedGlyphID getPackedID() const
SkVector advanceVector() const
@ kStroke_Style
set to stroke geometry
@ kFill_Style
set to fill geometry
const SkRect & getBounds() const
void getPostScriptGlyphNames(SkString *) const override
SkTypeface::LocalizedStrings * onCreateFamilyNameIterator() const override
int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[], int coordinateCount) const override
void onGetFontDescriptor(SkFontDescriptor *, bool *isLocal) const override
int onGetTableTags(SkFontTableTag tags[]) const override
void onGetFamilyName(SkString *familyName) const override
const SkPaint & paint() const
int onCountGlyphs() const override
std::unique_ptr< SkStreamAsset > onOpenStream(int *ttcIndex) const override
std::unique_ptr< SkAdvancedTypefaceMetrics > onGetAdvancedMetrics() const override
void onFilterRec(SkScalerContextRec *) const override
sk_sp< SkTypeface > onMakeClone(const SkFontArguments &args) const override
std::unique_ptr< SkScalerContext > onCreateScalerContext(const SkScalerContextEffects &, const SkDescriptor *) const override
bool onGetPostScriptName(SkString *) const override
bool onGlyphMaskNeedsCurrentColor() const override
int onGetVariationDesignParameters(SkFontParameters::Variation::Axis parameters[], int parameterCount) const override
void onCharsToGlyphs(const SkUnichar *chars, int count, SkGlyphID glyphs[]) const override
void getGlyphToUnicodeMap(SkUnichar *) const override
SkTypeface * proxy() const
size_t onGetTableData(SkFontTableTag, size_t offset, size_t length, void *data) const override
int onGetUPEM() const override
SkTypeface * getTypeface() const
friend class RandomScalerContext
LocalizedStrings * createFamilyNameIterator() const
virtual void getPostScriptGlyphNames(SkString *) const =0
void getFontDescriptor(SkFontDescriptor *desc, bool *isLocal) const
int getUnitsPerEm() const
virtual void getGlyphToUnicodeMap(SkUnichar *dstArray) const =0
void getFamilyName(SkString *name) const
int getTableTags(SkFontTableTag tags[]) const
void filterRec(SkScalerContextRec *rec) const
friend class SkRandomTypeface
bool getPostScriptName(SkString *name) const
std::unique_ptr< SkStreamAsset > openStream(int *ttcIndex) const
virtual int onGetVariationDesignParameters(SkFontParameters::Variation::Axis parameters[], int parameterCount) const =0
size_t getTableData(SkFontTableTag tag, size_t offset, size_t length, void *data) const
void unicharsToGlyphs(const SkUnichar uni[], int count, SkGlyphID glyphs[]) const
virtual int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[], int coordinateCount) const =0
sk_sp< SkTypeface > makeClone(const SkFontArguments &) const
V * find(const K &key) const
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
uint32_t uint32_t * format
static SkImageInfo MakeN32Premul(int width, int height)
@ kA8_Format
8bits per pixel mask (e.g. antialiasing)
@ kLCD16_Format
565 alpha for r/g/b
@ kARGB32_Format
SkPMColor.
@ kBW_Format
1bit per pixel mask (e.g. monochrome)
void roundOut(SkIRect *dst) const
SkMask::Format fMaskFormat
void setHinting(SkFontHinting)
SkMask::Format maskFormat