*/
void setTextSkewX(SkScalar skewX);
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- /** Return the paint's scale factor used for correctly rendering
- glyphs in high DPI mode without text subpixel positioning.
- @return the scale factor used for rendering glyphs in high DPI mode.
- */
- SkScalar getHintingScaleFactor() const { return fHintingScaleFactor; }
-
- /** Set the paint's scale factor used for correctly rendering
- glyphs in high DPI mode without text subpixel positioning.
- @param the scale factor used for rendering glyphs in high DPI mode.
- */
- void setHintingScaleFactor(SkScalar hintingScaleFactor);
-#endif
-
/** Describes how to interpret the text parameters that are passed to paint
methods like measureText() and getTextWidths().
*/
SkScalar fTextSize;
SkScalar fTextScaleX;
SkScalar fTextSkewX;
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- SkScalar fHintingScaleFactor;
-#endif
SkPathEffect* fPathEffect;
SkShader* fShader;
fTextSize = SkPaintDefaults_TextSize;
fTextScaleX = SK_Scalar1;
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- fHintingScaleFactor = SK_Scalar1;
-#endif
fColor = SK_ColorBLACK;
fMiterLimit = SkPaintDefaults_MiterLimit;
fFlags = SkPaintDefaults_Flags;
fTextSkewX = skewX;
}
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
-void SkPaint::setHintingScaleFactor(SkScalar hintingScaleFactor) {
- GEN_ID_INC_EVAL(hintingScaleFactor != fHintingScaleFactor);
- fHintingScaleFactor = hintingScaleFactor;
-}
-#endif
-
void SkPaint::setTextEncoding(TextEncoding encoding) {
if ((unsigned)encoding <= kGlyphID_TextEncoding) {
GEN_ID_INC_EVAL((unsigned)encoding != fTextEncoding);
rec->fTextSize = paint.getTextSize();
rec->fPreScaleX = paint.getTextScaleX();
rec->fPreSkewX = paint.getTextSkewX();
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- rec->fHintingScaleFactor = paint.getHintingScaleFactor();
-#endif
if (deviceMatrix) {
rec->fPost2x2[0][0] = sk_relax(deviceMatrix->getScaleX());
};
// The size of a flat paint's POD fields
-
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
-static const uint32_t kPODPaintSize = 6 * sizeof(SkScalar) +
- 1 * sizeof(SkColor) +
- 1 * sizeof(uint16_t) +
- 6 * sizeof(uint8_t);
-#else
static const uint32_t kPODPaintSize = 5 * sizeof(SkScalar) +
1 * sizeof(SkColor) +
1 * sizeof(uint16_t) +
6 * sizeof(uint8_t);
-#endif
/* To save space/time, we analyze the paint, and write a truncated version of
it if there are not tricky elements like shaders, etc.
ptr = write_scalar(ptr, this->getTextSize());
ptr = write_scalar(ptr, this->getTextScaleX());
ptr = write_scalar(ptr, this->getTextSkewX());
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- ptr = write_scalar(ptr, this->getHintingScaleFactor());
-#endif
ptr = write_scalar(ptr, this->getStrokeWidth());
ptr = write_scalar(ptr, this->getStrokeMiter());
*ptr++ = this->getColor();
buffer.writeScalar(fTextSize);
buffer.writeScalar(fTextScaleX);
buffer.writeScalar(fTextSkewX);
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- buffer.writeScalar(fHintingScaleFactor);
-#endif
buffer.writeScalar(fWidth);
buffer.writeScalar(fMiterLimit);
buffer.writeColor(fColor);
this->setTextSize(read_scalar(pod));
this->setTextScaleX(read_scalar(pod));
this->setTextSkewX(read_scalar(pod));
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- this->setHintingScaleFactor(read_scalar(pod));
-#endif
this->setStrokeWidth(read_scalar(pod));
this->setStrokeMiter(read_scalar(pod));
this->setColor(*pod++);
this->setTextSize(buffer.readScalar());
this->setTextScaleX(buffer.readScalar());
this->setTextSkewX(buffer.readScalar());
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- this->setHintingScaleFactor(buffer.readScalar());
-#endif
this->setStrokeWidth(buffer.readScalar());
this->setStrokeMiter(buffer.readScalar());
this->setColor(buffer.readColor());
fMatrix22.xy = fMatrix22.yx = 0;
}
-#ifdef SK_SUPPORT_HINTING_SCALE_FACTOR
- SkScalar hintingScaleFactor = fRec.fHintingScaleFactor;
-
- fScaleX = SkScalarToFixed(sx / hintingScaleFactor);
- fScaleY = SkScalarToFixed(sy / hintingScaleFactor);
-
- fMatrix22.xx *= hintingScaleFactor;
- fMatrix22.xy *= hintingScaleFactor;
- fMatrix22.yx *= hintingScaleFactor;
- fMatrix22.yy *= hintingScaleFactor;
-#else
fScaleX = SkScalarToFixed(sx);
fScaleY = SkScalarToFixed(sy);
-#endif
fLCDIsVert = SkToBool(fRec.fFlags & SkScalerContext::kLCD_Vertical_Flag);