OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "SkTypes.h" // Keep this before any #ifdef ... | 9 #include "SkTypes.h" // Keep this before any #ifdef ... |
10 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) | 10 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) |
(...skipping 1341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1352 /* | 1352 /* |
1353 * For subpixel positioning, we want to return an unhinted outline, so it | 1353 * For subpixel positioning, we want to return an unhinted outline, so it |
1354 * can be positioned nicely at fractional offsets. However, we special-case | 1354 * can be positioned nicely at fractional offsets. However, we special-case |
1355 * if the baseline of the (horizontal) text is axis-aligned. In those cases | 1355 * if the baseline of the (horizontal) text is axis-aligned. In those cases |
1356 * we want to retain hinting in the direction orthogonal to the baseline. | 1356 * we want to retain hinting in the direction orthogonal to the baseline. |
1357 * e.g. for horizontal baseline, we want to retain hinting in Y. | 1357 * e.g. for horizontal baseline, we want to retain hinting in Y. |
1358 * The way we remove hinting is to scale the font by some value (4) in that | 1358 * The way we remove hinting is to scale the font by some value (4) in that |
1359 * direction, ask for the path, and then scale the path back down. | 1359 * direction, ask for the path, and then scale the path back down. |
1360 */ | 1360 */ |
1361 if (fDoSubPosition) { | 1361 if (fDoSubPosition) { |
1362 SkMatrix m; | |
1363 fRec.getSingleMatrix(&m); | |
1364 | |
1365 // start out by assuming that we want no hining in X and Y | 1362 // start out by assuming that we want no hining in X and Y |
1366 scaleX = scaleY = kScaleForSubPixelPositionHinting; | 1363 scaleX = scaleY = kScaleForSubPixelPositionHinting; |
1367 // now see if we need to restore hinting for axis-aligned baselines | 1364 // now see if we need to restore hinting for axis-aligned baselines |
1368 switch (SkComputeAxisAlignmentForHText(m)) { | 1365 switch (this->computeAxisAlignmentForHText()) { |
1369 case kX_SkAxisAlignment: | 1366 case kX_SkAxisAlignment: |
1370 scaleY = SK_Scalar1; // want hinting in the Y direction | 1367 scaleY = SK_Scalar1; // want hinting in the Y direction |
1371 break; | 1368 break; |
1372 case kY_SkAxisAlignment: | 1369 case kY_SkAxisAlignment: |
1373 scaleX = SK_Scalar1; // want hinting in the X direction | 1370 scaleX = SK_Scalar1; // want hinting in the X direction |
1374 break; | 1371 break; |
1375 default: | 1372 default: |
1376 break; | 1373 break; |
1377 } | 1374 } |
1378 | 1375 |
(...skipping 1248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2627 } | 2624 } |
2628 return face; | 2625 return face; |
2629 } | 2626 } |
2630 }; | 2627 }; |
2631 | 2628 |
2632 /////////////////////////////////////////////////////////////////////////////// | 2629 /////////////////////////////////////////////////////////////////////////////// |
2633 | 2630 |
2634 SkFontMgr* SkFontMgr::Factory() { return new SkFontMgr_Mac; } | 2631 SkFontMgr* SkFontMgr::Factory() { return new SkFontMgr_Mac; } |
2635 | 2632 |
2636 #endif//defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) | 2633 #endif//defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) |
OLD | NEW |