OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2003, 2006, 2010, 2011 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003, 2006, 2010, 2011 Apple Inc. All rights reserved. |
6 * Copyright (c) 2007, 2008, 2010 Google Inc. All rights reserved. | 6 * Copyright (c) 2007, 2008, 2010 Google Inc. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 943 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
954 HarfBuzzShaper shaper(this, runInfo.run); | 954 HarfBuzzShaper shaper(this, runInfo.run); |
955 shaper.setDrawRange(runInfo.from, runInfo.to); | 955 shaper.setDrawRange(runInfo.from, runInfo.to); |
956 if (!shaper.shape(&glyphBuffer) || glyphBuffer.isEmpty()) | 956 if (!shaper.shape(&glyphBuffer) || glyphBuffer.isEmpty()) |
957 return 0; | 957 return 0; |
958 return drawGlyphBuffer(gc, runInfo, glyphBuffer, point); | 958 return drawGlyphBuffer(gc, runInfo, glyphBuffer, point); |
959 } | 959 } |
960 | 960 |
961 void Font::drawEmphasisMarksForComplexText(GraphicsContext* context, const TextR
unPaintInfo& runInfo, const AtomicString& mark, const FloatPoint& point) const | 961 void Font::drawEmphasisMarksForComplexText(GraphicsContext* context, const TextR
unPaintInfo& runInfo, const AtomicString& mark, const FloatPoint& point) const |
962 { | 962 { |
963 GlyphBuffer glyphBuffer; | 963 GlyphBuffer glyphBuffer; |
964 | 964 HarfBuzzShaper shaper(this, runInfo.run, HarfBuzzShaper::ForTextEmphasis); |
965 float initialAdvance = getGlyphsAndAdvancesForComplexText(runInfo, glyphBuff
er, ForTextEmphasis); | 965 shaper.setDrawRange(runInfo.from, runInfo.to); |
966 | 966 if (!shaper.shape(&glyphBuffer) || glyphBuffer.isEmpty()) |
967 if (glyphBuffer.isEmpty()) | |
968 return; | 967 return; |
969 | 968 |
970 drawEmphasisMarks(context, runInfo, glyphBuffer, mark, FloatPoint(point.x()
+ initialAdvance, point.y())); | 969 drawEmphasisMarks(context, runInfo, glyphBuffer, mark, point); |
971 } | |
972 | |
973 float Font::getGlyphsAndAdvancesForComplexText(const TextRunPaintInfo& runInfo,
GlyphBuffer& glyphBuffer, ForTextEmphasisOrNot forTextEmphasis) const | |
974 { | |
975 HarfBuzzShaper shaper(this, runInfo.run, HarfBuzzShaper::ForTextEmphasis); | |
976 shaper.setDrawRange(runInfo.from, runInfo.to); | |
977 shaper.shape(&glyphBuffer); | |
978 return 0; | |
979 } | 970 } |
980 | 971 |
981 float Font::floatWidthForComplexText(const TextRun& run, HashSet<const SimpleFon
tData*>* fallbackFonts, IntRectExtent* glyphBounds) const | 972 float Font::floatWidthForComplexText(const TextRun& run, HashSet<const SimpleFon
tData*>* fallbackFonts, IntRectExtent* glyphBounds) const |
982 { | 973 { |
983 HarfBuzzShaper shaper(this, run, HarfBuzzShaper::NotForTextEmphasis, fallbac
kFonts); | 974 HarfBuzzShaper shaper(this, run, HarfBuzzShaper::NotForTextEmphasis, fallbac
kFonts); |
984 if (!shaper.shape()) | 975 if (!shaper.shape()) |
985 return 0; | 976 return 0; |
986 | 977 |
987 glyphBounds->setTop(floorf(-shaper.glyphBoundingBox().top())); | 978 glyphBounds->setTop(floorf(-shaper.glyphBoundingBox().top())); |
988 glyphBounds->setBottom(ceilf(shaper.glyphBoundingBox().bottom())); | 979 glyphBounds->setBottom(ceilf(shaper.glyphBoundingBox().bottom())); |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1186 if (delta <= 0) | 1177 if (delta <= 0) |
1187 break; | 1178 break; |
1188 } | 1179 } |
1189 } | 1180 } |
1190 } | 1181 } |
1191 | 1182 |
1192 return offset; | 1183 return offset; |
1193 } | 1184 } |
1194 | 1185 |
1195 } // namespace blink | 1186 } // namespace blink |
OLD | NEW |