diff options
author | 2011-11-07 16:33:40 +0000 | |
---|---|---|
committer | 2011-11-07 16:33:40 +0000 | |
commit | 24babf45b19bd400a301972dc0d7e3e4007c03bc (patch) | |
tree | a97f012f6b04051ac80aa5fdfb40fc7372aa9c05 | |
parent | c43649962221c348d656d425a3fa9b29c78231d4 (diff) |
Add font scaler gm.
http://codereview.appspot.com/5337044/
git-svn-id: http://skia.googlecode.com/svn/trunk@2619 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r-- | gm/fontscaler.cpp | 2 | ||||
-rw-r--r-- | gyp/gmslides.gypi | 2 | ||||
-rw-r--r-- | src/core/SkPaint.cpp | 18 |
3 files changed, 18 insertions, 4 deletions
diff --git a/gm/fontscaler.cpp b/gm/fontscaler.cpp index 411eb67ef1..5c2a3de8a6 100644 --- a/gm/fontscaler.cpp +++ b/gm/fontscaler.cpp @@ -47,7 +47,7 @@ protected: } virtual SkISize onISize() { - return make_isize(1500, 750); + return make_isize(1450, 750); } static void rotate_about(SkCanvas* canvas, SkScalar degrees, SkScalar px, SkScalar py) { diff --git a/gyp/gmslides.gypi b/gyp/gmslides.gypi index e7cc883895..8a97b0c685 100644 --- a/gyp/gmslides.gypi +++ b/gyp/gmslides.gypi @@ -10,7 +10,7 @@ '../gm/emptypath.cpp', '../gm/filltypes.cpp', '../gm/filltypespersp.cpp', -# '../gm/fontscaler.cpp', + '../gm/fontscaler.cpp', '../gm/gradients.cpp', '../gm/hairmodes.cpp', '../gm/lcdtext.cpp', diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index ce08e0bc60..aa1d7b16fc 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -1569,7 +1569,13 @@ void SkPaint::flatten(SkFlattenableWriteBuffer& buffer) const { ptr = write_scalar(ptr, this->getStrokeWidth()); ptr = write_scalar(ptr, this->getStrokeMiter()); *ptr++ = this->getColor(); - *ptr++ = (this->getFlags() << 16) | (this->getTextAlign() << 8) | flatFlags; + // previously flags:16, textAlign:8, flatFlags:8 + // now flags:16, hinting:4, textAlign:4, flatFlags:8 + *ptr++ = (this->getFlags() << 16) | + // hinting added later. 0 in this nibble means use the default. + ((this->getHinting()+1) << 12) | + (this->getTextAlign() << 8) | + flatFlags; *ptr++ = pack_4(this->getStrokeCap(), this->getStrokeJoin(), this->getStyle(), this->getTextEncoding()); @@ -1602,9 +1608,17 @@ void SkPaint::unflatten(SkFlattenableReadBuffer& buffer) { this->setStrokeMiter(read_scalar(pod)); this->setColor(*pod++); + // previously flags:16, textAlign:8, flatFlags:8 + // now flags:16, hinting:4, textAlign:4, flatFlags:8 uint32_t tmp = *pod++; this->setFlags(tmp >> 16); - this->setTextAlign(static_cast<Align>((tmp >> 8) & 0xFF)); + + // hinting added later. 0 in this nibble means use the default. + uint32_t hinting = (tmp >> 12) & 0xF; + this->setHinting(0 == hinting ? kNormal_Hinting : static_cast<Hinting>(hinting-1)); + + this->setTextAlign(static_cast<Align>((tmp >> 8) & 0xF)); + uint8_t flatFlags = tmp & 0xFF; tmp = *pod++; |