aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-11-07 16:33:40 +0000
committerGravatar bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-11-07 16:33:40 +0000
commit24babf45b19bd400a301972dc0d7e3e4007c03bc (patch)
treea97f012f6b04051ac80aa5fdfb40fc7372aa9c05
parentc43649962221c348d656d425a3fa9b29c78231d4 (diff)
Add font scaler gm.
-rw-r--r--gm/fontscaler.cpp2
-rw-r--r--gyp/gmslides.gypi2
-rw-r--r--src/core/SkPaint.cpp18
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++;