Chromium Code Reviews| 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 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 136 return width; | 136 return width; |
| 137 } | 137 } |
| 138 | 138 |
| 139 void Font::drawText(SkCanvas* canvas, const TextRunPaintInfo& runInfo, | 139 void Font::drawText(SkCanvas* canvas, const TextRunPaintInfo& runInfo, |
| 140 const FloatPoint& point, float deviceScaleFactor, const SkPaint& paint) cons t | 140 const FloatPoint& point, float deviceScaleFactor, const SkPaint& paint) cons t |
| 141 { | 141 { |
| 142 // Don't draw anything while we are using custom fonts that are in the proce ss of loading. | 142 // Don't draw anything while we are using custom fonts that are in the proce ss of loading. |
| 143 if (shouldSkipDrawing()) | 143 if (shouldSkipDrawing()) |
| 144 return; | 144 return; |
| 145 | 145 |
| 146 if (fontSelector()) | |
|
drott
2015/09/16 07:26:20
If I am not mistaken, this keeps calling reportFir
Kunihiko Sakamoto
2015/09/17 08:36:10
That's right - I optimistically assumed the functi
| |
| 147 fontSelector()->reportFirstNonBlankText(m_fontFallbackList->hasCustomFon t()); | |
| 148 | |
| 146 if (runInfo.cachedTextBlob && runInfo.cachedTextBlob->get()) { | 149 if (runInfo.cachedTextBlob && runInfo.cachedTextBlob->get()) { |
| 147 // we have a pre-cached blob -- happy joy! | 150 // we have a pre-cached blob -- happy joy! |
| 148 drawTextBlob(canvas, paint, runInfo.cachedTextBlob->get(), point.data()) ; | 151 drawTextBlob(canvas, paint, runInfo.cachedTextBlob->get(), point.data()) ; |
| 149 return; | 152 return; |
| 150 } | 153 } |
| 151 | 154 |
| 152 GlyphBuffer glyphBuffer; | 155 GlyphBuffer glyphBuffer; |
| 153 buildGlyphBuffer(runInfo, glyphBuffer); | 156 buildGlyphBuffer(runInfo, glyphBuffer); |
| 154 | 157 |
| 155 drawGlyphBuffer(canvas, paint, runInfo, glyphBuffer, point, deviceScaleFacto r); | 158 drawGlyphBuffer(canvas, paint, runInfo, glyphBuffer, point, deviceScaleFacto r); |
| 156 } | 159 } |
| 157 | 160 |
| 158 void Font::drawBidiText(SkCanvas* canvas, const TextRunPaintInfo& runInfo, const FloatPoint& point, CustomFontNotReadyAction customFontNotReadyAction, float dev iceScaleFactor, const SkPaint& paint) const | 161 void Font::drawBidiText(SkCanvas* canvas, const TextRunPaintInfo& runInfo, const FloatPoint& point, CustomFontNotReadyAction customFontNotReadyAction, float dev iceScaleFactor, const SkPaint& paint) const |
| 159 { | 162 { |
| 160 // Don't draw anything while we are using custom fonts that are in the proce ss of loading, | 163 // Don't draw anything while we are using custom fonts that are in the proce ss of loading, |
| 161 // except if the 'force' argument is set to true (in which case it will use a fallback | 164 // except if the 'force' argument is set to true (in which case it will use a fallback |
| 162 // font). | 165 // font). |
| 163 if (shouldSkipDrawing() && customFontNotReadyAction == DoNotPaintIfFontNotRe ady) | 166 if (shouldSkipDrawing() && customFontNotReadyAction == DoNotPaintIfFontNotRe ady) |
| 164 return; | 167 return; |
| 165 | 168 |
| 169 if (fontSelector()) | |
|
drott
2015/09/16 07:26:20
Dito.
| |
| 170 fontSelector()->reportFirstNonBlankText(m_fontFallbackList->hasCustomFon t()); | |
| 171 | |
| 166 // sub-run painting is not supported for Bidi text. | 172 // sub-run painting is not supported for Bidi text. |
| 167 const TextRun& run = runInfo.run; | 173 const TextRun& run = runInfo.run; |
| 168 ASSERT((runInfo.from == 0) && (runInfo.to == run.length())); | 174 ASSERT((runInfo.from == 0) && (runInfo.to == run.length())); |
| 169 BidiResolver<TextRunIterator, BidiCharacterRun> bidiResolver; | 175 BidiResolver<TextRunIterator, BidiCharacterRun> bidiResolver; |
| 170 bidiResolver.setStatus(BidiStatus(run.direction(), run.directionalOverride() )); | 176 bidiResolver.setStatus(BidiStatus(run.direction(), run.directionalOverride() )); |
| 171 bidiResolver.setPositionIgnoringNestedIsolates(TextRunIterator(&run, 0)); | 177 bidiResolver.setPositionIgnoringNestedIsolates(TextRunIterator(&run, 0)); |
| 172 | 178 |
| 173 // FIXME: This ownership should be reversed. We should pass BidiRunList | 179 // FIXME: This ownership should be reversed. We should pass BidiRunList |
| 174 // to BidiResolver in createBidiRunsForLine. | 180 // to BidiResolver in createBidiRunsForLine. |
| 175 BidiRunList<BidiCharacterRun>& bidiRuns = bidiResolver.runs(); | 181 BidiRunList<BidiCharacterRun>& bidiRuns = bidiResolver.runs(); |
| (...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 821 { | 827 { |
| 822 return m_fontFallbackList && m_fontFallbackList->loadingCustomFonts(); | 828 return m_fontFallbackList && m_fontFallbackList->loadingCustomFonts(); |
| 823 } | 829 } |
| 824 | 830 |
| 825 bool Font::isFallbackValid() const | 831 bool Font::isFallbackValid() const |
| 826 { | 832 { |
| 827 return !m_fontFallbackList || m_fontFallbackList->isValid(); | 833 return !m_fontFallbackList || m_fontFallbackList->isValid(); |
| 828 } | 834 } |
| 829 | 835 |
| 830 } // namespace blink | 836 } // namespace blink |
| OLD | NEW |