8#ifndef SkScalerContext_DEFINED
9#define SkScalerContext_DEFINED
78 const uint8_t fReservedAlign{0};
132 uint8_t fStrokeJoin : 4;
133 uint8_t fStrokeCap : 4;
146 msg.
appendf(
" textsize %a prescale %a preskew %a post [%a %a %a %a]\n",
149 msg.
appendf(
" frame %g miter %g format %d join %d cap %d flags %#hx\n",
151 msg.
appendf(
" lum bits %x, device gamma %d, paint gamma %d contrast %d\n", fLumBits,
152 fDeviceGamma, fPaintGamma, fContrast);
202 SkMatrix* remainingWithoutRotation =
nullptr,
203 SkMatrix* remainingRotation =
nullptr,
340 static std::unique_ptr<SkScalerContext>
MakeEmpty(
363 return { fPathEffect.
get(), fMaskFilter.
get() };
403 bool verticalLCD,
bool a8FromLCD,
bool hairline);
419 bool doBGR,
bool verticalLCD,
bool a8FromLCD,
bool hairline);
462 bool fGenerateImageFromPath;
473#define kRec_SkDescriptorTag SkSetFourByteTag('s', 'r', 'e', 'c')
474#define kEffects_SkDescriptorTag SkSetFourByteTag('e', 'f', 'c', 't')
constexpr SkColor SK_ColorTRANSPARENT
constexpr SkColor SK_ColorBLACK
#define SK_MAKE_BITFIELD_OPS(X)
#define SK_BEGIN_REQUIRE_DENSE
#define SK_END_REQUIRE_DENSE
#define SkScalarRoundToInt(x)
#define SkScalarFloorToInt(x)
SkTMaskGamma< 3, 3, 3 > SkMaskGamma
@ kFakeGammaAndBoostContrast
void sk_ignore_unused_variable(const T &)
static constexpr bool SkToBool(const T &x)
static const SkMatrix & I()
void forceGenerateImageFromPath()
virtual void generateFontMetrics(SkFontMetrics *)=0
@ kEmbeddedBitmapText_Flag
@ kNeedsForegroundColor_Flag
@ kSubpixelPositioning_Flag
static size_t GetGammaLUTSize(SkScalar contrast, SkScalar paintGamma, SkScalar deviceGamma, int *width, int *height)
virtual void generateImage(const SkGlyph &glyph, void *imageBuffer)=0
static void GenerateImageFromPath(SkMaskBuilder &dst, const SkPath &path, const SkMaskGamma::PreBlend &maskPreBlend, bool doBGR, bool verticalLCD, bool a8FromLCD, bool hairline)
static void MakeRecAndEffects(const SkFont &font, const SkPaint &paint, const SkSurfaceProps &surfaceProps, SkScalerContextFlags scalerContextFlags, const SkMatrix &deviceMatrix, SkScalerContextRec *rec, SkScalerContextEffects *effects)
SkMask::Format getMaskFormat() const
static std::unique_ptr< SkDescriptor > DescriptorGivenRecAndEffects(const SkScalerContextRec &rec, const SkScalerContextEffects &effects)
virtual GlyphMetrics generateMetrics(const SkGlyph &, SkArenaAlloc *)=0
virtual bool generatePath(const SkGlyph &, SkPath *)=0
void getPath(SkGlyph &, SkArenaAlloc *)
const SkMaskGamma::PreBlend fPreBlend
static SkMaskGamma::PreBlend GetMaskPreBlend(const SkScalerContextRec &rec)
SkTypeface * getTypeface() const
static SkDescriptor * CreateDescriptorAndEffectsUsingPaint(const SkFont &, const SkPaint &, const SkSurfaceProps &, SkScalerContextFlags scalerContextFlags, const SkMatrix &deviceMatrix, SkAutoDescriptor *ad, SkScalerContextEffects *effects)
virtual sk_sp< SkDrawable > generateDrawable(const SkGlyph &)
static SkDescriptor * AutoDescriptorGivenRecAndEffects(const SkScalerContextRec &rec, const SkScalerContextEffects &effects, SkAutoDescriptor *ad)
static void MakeRecAndEffectsFromFont(const SkFont &font, SkScalerContextRec *rec, SkScalerContextEffects *effects)
const SkScalerContextRec & getRec() const
static void GenerateMetricsFromPath(SkGlyph *glyph, const SkPath &path, SkMask::Format format, bool verticalLCD, bool a8FromLCD, bool hairline)
static bool CheckBufferSizeForRec(const SkScalerContextRec &rec, const SkScalerContextEffects &effects, size_t size)
SkScalerContextEffects getEffects() const
SkAxisAlignment computeAxisAlignmentForHText() const
sk_sp< SkDrawable > getDrawable(SkGlyph &)
static bool GetGammaLUTData(SkScalar contrast, SkScalar paintGamma, SkScalar deviceGamma, uint8_t *data)
static std::unique_ptr< SkScalerContext > MakeEmpty(sk_sp< SkTypeface > typeface, const SkScalerContextEffects &effects, const SkDescriptor *desc)
SkGlyph makeGlyph(SkPackedGlyphID, SkArenaAlloc *)
static void DescriptorBufferGiveRec(const SkScalerContextRec &rec, void *buffer)
virtual ~SkScalerContext()
bool isLinearMetrics() const
void forceOffGenerateImageFromPath()
void getFontMetrics(SkFontMetrics *)
void getImage(const SkGlyph &)
static void SaturateGlyphBounds(SkGlyph *glyph, SkRect &&)
void void void appendf(const char format[],...) SK_PRINTF_LIKE(2
static constexpr SkScalar kMaxContrastInclusive
static constexpr SkScalar kMaxGammaExclusive
static constexpr SkScalar kMinGammaInclusive
static constexpr SkScalar kMinContrastInclusive
static const uint8_t buffer[]
uint32_t uint32_t * format
SkPathEffect * fPathEffect
SkScalerContextEffects(const SkPaint &paint)
SkScalerContextEffects(SkPathEffect *pe, SkMaskFilter *mf)
SkMaskFilter * fMaskFilter
void setPaintGamma(SkScalar pg)
void getSingleMatrix(SkMatrix *) const
uint32_t fForegroundColor
void getLocalMatrix(SkMatrix *) const
SkAxisAlignment computeAxisAlignmentForHText() const
void setDeviceGamma(SkScalar dg)
SkMask::Format fMaskFormat
void setContrast(SkScalar c)
SkMask::Format getFormat() const
void getMatrixFrom2x2(SkMatrix *) const
bool computeMatrices(PreMatrixScale preMatrixScale, SkVector *scale, SkMatrix *remaining, SkMatrix *remainingWithoutRotation=nullptr, SkMatrix *remainingRotation=nullptr, SkMatrix *total=nullptr)
SkScalar getPaintGamma() const
SkScalar getContrast() const
SkScalar getDeviceGamma() const
SkColor getLuminanceColor() const
SkFontHinting getHinting() const
void setHinting(SkFontHinting)
void setLuminanceColor(SkColor c)
GlyphMetrics(SkMask::Format format)
SkMask::Format maskFormat