OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007 Apple Computer, Inc. | 2 * Copyright (C) 2007 Apple Computer, Inc. |
3 * Copyright (c) 2007, 2008, 2009, Google Inc. All rights reserved. | 3 * Copyright (c) 2007, 2008, 2009, Google Inc. All rights reserved. |
4 * Copyright (C) 2010 Company 100, Inc. | 4 * Copyright (C) 2010 Company 100, Inc. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions are | 7 * modification, are permitted provided that the following conditions are |
8 * met: | 8 * met: |
9 * | 9 * |
10 * * Redistributions of source code must retain the above copyright | 10 * * Redistributions of source code must retain the above copyright |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 { | 49 { |
50 } | 50 } |
51 | 51 |
52 FontCustomPlatformData::~FontCustomPlatformData() | 52 FontCustomPlatformData::~FontCustomPlatformData() |
53 { | 53 { |
54 } | 54 } |
55 | 55 |
56 FontPlatformData FontCustomPlatformData::fontPlatformData(float size, bool bold,
bool italic, FontOrientation orientation, FontWidthVariant) | 56 FontPlatformData FontCustomPlatformData::fontPlatformData(float size, bool bold,
bool italic, FontOrientation orientation, FontWidthVariant) |
57 { | 57 { |
58 ASSERT(m_typeface); | 58 ASSERT(m_typeface); |
| 59 #if OS(WIN) |
| 60 // FIXME: Skia currently renders synthetic bold and italics with hinting and
without |
| 61 // linear metrics on windows. Using CreateFromName and specifying the bold/i
talics |
| 62 // style allows for proper rendering of synthetic style. Once Skia has been
updated |
| 63 // this workaround will no longer be needed. crbug.com/332958 |
| 64 bool syntheticBold = bold && !m_typeface->isBold(); |
| 65 bool syntheticItalic = italic && !m_typeface->isItalic(); |
| 66 if (syntheticBold || syntheticItalic) { |
| 67 SkString name; |
| 68 m_typeface->getFamilyName(&name); |
| 69 |
| 70 int style = SkTypeface::kNormal; |
| 71 if (syntheticBold) |
| 72 style |= SkTypeface::kBold; |
| 73 if (syntheticItalic) |
| 74 style |= SkTypeface::kItalic; |
| 75 |
| 76 RefPtr<SkTypeface> typeface = adoptRef(SkTypeface::CreateFromName(name.c
_str(), static_cast<SkTypeface::Style>(style))); |
| 77 syntheticBold = false; |
| 78 syntheticItalic = false; |
| 79 return FontPlatformData(typeface.release(), "", size, syntheticBold, syn
theticItalic, orientation); |
| 80 } |
| 81 #endif |
59 return FontPlatformData(m_typeface.get(), "", size, bold && !m_typeface->isB
old(), italic && !m_typeface->isItalic(), orientation); | 82 return FontPlatformData(m_typeface.get(), "", size, bold && !m_typeface->isB
old(), italic && !m_typeface->isItalic(), orientation); |
60 } | 83 } |
61 | 84 |
62 PassOwnPtr<FontCustomPlatformData> FontCustomPlatformData::create(SharedBuffer*
buffer) | 85 PassOwnPtr<FontCustomPlatformData> FontCustomPlatformData::create(SharedBuffer*
buffer) |
63 { | 86 { |
64 ASSERT_ARG(buffer, buffer); | 87 ASSERT_ARG(buffer, buffer); |
65 | 88 |
66 OpenTypeSanitizer sanitizer(buffer); | 89 OpenTypeSanitizer sanitizer(buffer); |
67 RefPtr<SharedBuffer> transcodeBuffer = sanitizer.sanitize(); | 90 RefPtr<SharedBuffer> transcodeBuffer = sanitizer.sanitize(); |
68 if (!transcodeBuffer) | 91 if (!transcodeBuffer) |
(...skipping 11 matching lines...) Expand all Loading... |
80 | 103 |
81 return adoptPtr(new FontCustomPlatformData(typeface.release())); | 104 return adoptPtr(new FontCustomPlatformData(typeface.release())); |
82 } | 105 } |
83 | 106 |
84 bool FontCustomPlatformData::supportsFormat(const String& format) | 107 bool FontCustomPlatformData::supportsFormat(const String& format) |
85 { | 108 { |
86 return equalIgnoringCase(format, "truetype") || equalIgnoringCase(format, "o
pentype") || OpenTypeSanitizer::supportsFormat(format); | 109 return equalIgnoringCase(format, "truetype") || equalIgnoringCase(format, "o
pentype") || OpenTypeSanitizer::supportsFormat(format); |
87 } | 110 } |
88 | 111 |
89 } | 112 } |
OLD | NEW |