| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2000 Antti Koivisto (koivisto@kde.org) | 3 * (C) 2000 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, 2007, 2010, 2011 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003, 2006, 2007, 2010, 2011 Apple Inc. All rights reserved. |
| 6 * Copyright (C) 2008 Holger Hans Peter Freyther | 6 * Copyright (C) 2008 Holger Hans Peter Freyther |
| 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 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 const SimpleFontData* primaryFont() const; | 124 const SimpleFontData* primaryFont() const; |
| 125 const FontData* fontDataAt(unsigned) const; | 125 const FontData* fontDataAt(unsigned) const; |
| 126 inline GlyphData glyphDataForCharacter(UChar32& c, bool mirror, bool spaceNo
rmalize = false, FontDataVariant variant = AutoVariant) const | 126 inline GlyphData glyphDataForCharacter(UChar32& c, bool mirror, bool spaceNo
rmalize = false, FontDataVariant variant = AutoVariant) const |
| 127 { | 127 { |
| 128 return glyphDataAndPageForCharacter(c, mirror, spaceNormalize, variant).
first; | 128 return glyphDataAndPageForCharacter(c, mirror, spaceNormalize, variant).
first; |
| 129 } | 129 } |
| 130 | 130 |
| 131 std::pair<GlyphData, GlyphPage*> glyphDataAndPageForCharacter(UChar32&, bool
mirror, bool normalizeSpace = false, FontDataVariant = AutoVariant) const; | 131 std::pair<GlyphData, GlyphPage*> glyphDataAndPageForCharacter(UChar32&, bool
mirror, bool normalizeSpace = false, FontDataVariant = AutoVariant) const; |
| 132 bool primaryFontHasGlyphForCharacter(UChar32) const; | 132 bool primaryFontHasGlyphForCharacter(UChar32) const; |
| 133 | 133 |
| 134 CodePath codePath(const TextRun&) const; | 134 CodePath codePath(const TextRunPaintInfo&) const; |
| 135 | 135 |
| 136 PassTextBlobPtr buildTextBlob(const TextRunPaintInfo&, const FloatPoint& tex
tOrigin, bool couldUseLCDRenderedText, CustomFontNotReadyAction = DoNotPaintIfFo
ntNotReady) const; | 136 PassTextBlobPtr buildTextBlob(const TextRunPaintInfo&, const FloatPoint& tex
tOrigin, bool couldUseLCDRenderedText, CustomFontNotReadyAction = DoNotPaintIfFo
ntNotReady) const; |
| 137 void drawTextBlob(GraphicsContext*, const SkTextBlob*, const SkPoint& origin
) const; | 137 void drawTextBlob(GraphicsContext*, const SkTextBlob*, const SkPoint& origin
) const; |
| 138 | 138 |
| 139 private: | 139 private: |
| 140 enum ForTextEmphasisOrNot { NotForTextEmphasis, ForTextEmphasis }; | 140 enum ForTextEmphasisOrNot { NotForTextEmphasis, ForTextEmphasis }; |
| 141 | 141 |
| 142 // Returns the initial in-stream advance. | 142 // Returns the initial in-stream advance. |
| 143 float getGlyphsAndAdvancesForSimpleText(const TextRunPaintInfo&, GlyphBuffer
&, ForTextEmphasisOrNot = NotForTextEmphasis) const; | 143 float getGlyphsAndAdvancesForSimpleText(const TextRunPaintInfo&, GlyphBuffer
&, ForTextEmphasisOrNot = NotForTextEmphasis) const; |
| 144 float drawSimpleText(GraphicsContext*, const TextRunPaintInfo&, const FloatP
oint&) const; | 144 float drawSimpleText(GraphicsContext*, const TextRunPaintInfo&, const FloatP
oint&) const; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 160 int offsetForPositionForComplexText(const TextRun&, float position, bool inc
ludePartialGlyphs) const; | 160 int offsetForPositionForComplexText(const TextRun&, float position, bool inc
ludePartialGlyphs) const; |
| 161 FloatRect selectionRectForComplexText(const TextRun&, const FloatPoint&, int
h, int from, int to) const; | 161 FloatRect selectionRectForComplexText(const TextRun&, const FloatPoint&, int
h, int from, int to) const; |
| 162 | 162 |
| 163 PassTextBlobPtr buildTextBlobForSimpleText(const TextRunPaintInfo&, const Fl
oatPoint& textOrigin, bool couldUseLCDRenderedText) const; | 163 PassTextBlobPtr buildTextBlobForSimpleText(const TextRunPaintInfo&, const Fl
oatPoint& textOrigin, bool couldUseLCDRenderedText) const; |
| 164 PassTextBlobPtr buildTextBlob(const GlyphBuffer&, float initialAdvance, cons
t FloatRect& bounds, float& advance, bool couldUseLCD) const; | 164 PassTextBlobPtr buildTextBlob(const GlyphBuffer&, float initialAdvance, cons
t FloatRect& bounds, float& advance, bool couldUseLCD) const; |
| 165 | 165 |
| 166 friend struct SimpleShaper; | 166 friend struct SimpleShaper; |
| 167 friend class SVGTextRunRenderingContext; | 167 friend class SVGTextRunRenderingContext; |
| 168 | 168 |
| 169 public: | 169 public: |
| 170 // Useful for debugging the different font rendering code paths. | |
| 171 static void setCodePath(CodePath); | |
| 172 static CodePath codePath(); | |
| 173 static CodePath s_codePath; | |
| 174 | |
| 175 FontSelector* fontSelector() const; | 170 FontSelector* fontSelector() const; |
| 176 | 171 |
| 177 FontFallbackList* fontList() const { return m_fontFallbackList.get(); } | 172 FontFallbackList* fontList() const { return m_fontFallbackList.get(); } |
| 178 | 173 |
| 179 void willUseFontData(UChar32) const; | 174 void willUseFontData(UChar32) const; |
| 180 | 175 |
| 181 static FloatRect pixelSnappedSelectionRect(float fromX, float toX, float y,
float height); | 176 static FloatRect pixelSnappedSelectionRect(float fromX, float toX, float y,
float height); |
| 182 private: | 177 private: |
| 183 bool loadingCustomFonts() const | 178 bool loadingCustomFonts() const |
| 184 { | 179 { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 { | 220 { |
| 226 if (!tabSize) | 221 if (!tabSize) |
| 227 return fontDescription().letterSpacing(); | 222 return fontDescription().letterSpacing(); |
| 228 float tabWidth = tabSize * fontData.spaceWidth() + fontDescription().letterS
pacing(); | 223 float tabWidth = tabSize * fontData.spaceWidth() + fontDescription().letterS
pacing(); |
| 229 return tabWidth - fmodf(position, tabWidth); | 224 return tabWidth - fmodf(position, tabWidth); |
| 230 } | 225 } |
| 231 | 226 |
| 232 } // namespace blink | 227 } // namespace blink |
| 233 | 228 |
| 234 #endif | 229 #endif |
| OLD | NEW |