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 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
517 | 517 |
518 const FontData* fontData = fontDataAt(0); | 518 const FontData* fontData = fontDataAt(0); |
519 if (fontData) { | 519 if (fontData) { |
520 const SimpleFontData* fontDataToSubstitute = fontData->fontDataForCharac ter(characterToRender); | 520 const SimpleFontData* fontDataToSubstitute = fontData->fontDataForCharac ter(characterToRender); |
521 RefPtr<SimpleFontData> characterFontData = FontCache::fontCache()->fallb ackFontForCharacter(m_fontDescription, characterToRender, fontDataToSubstitute); | 521 RefPtr<SimpleFontData> characterFontData = FontCache::fontCache()->fallb ackFontForCharacter(m_fontDescription, characterToRender, fontDataToSubstitute); |
522 if (characterFontData && variant != NormalVariant) { | 522 if (characterFontData && variant != NormalVariant) { |
523 characterFontData = characterFontData->variantFontData(m_fontDescrip tion, variant); | 523 characterFontData = characterFontData->variantFontData(m_fontDescrip tion, variant); |
524 } | 524 } |
525 if (characterFontData) { | 525 if (characterFontData) { |
526 // Got the fallback glyph and font. | 526 // Got the fallback glyph and font. |
527 GlyphPage* fallbackPage = GlyphPageTreeNode::getRootChild(characterF ontData.get(), pageNumber)->page(); | 527 unsigned pageNumberForRendering = (characterToRender / GlyphPage::si ze); |
eae
2015/08/27 16:57:19
Remove unnecessary parentheses.
| |
528 GlyphData data = fallbackPage && fallbackPage->glyphForCharacter(c) ? fallbackPage->glyphDataForCharacter(c) : characterFontData->missingGlyphData() ; | 528 GlyphPage* fallbackPage = GlyphPageTreeNode::getRootChild(characterF ontData.get(), pageNumberForRendering)->page(); |
529 GlyphData data = fallbackPage && fallbackPage->glyphForCharacter(cha racterToRender) ? fallbackPage->glyphDataForCharacter(characterToRender) : chara cterFontData->missingGlyphData(); | |
529 // Cache it so we don't have to do system fallback again next time. | 530 // Cache it so we don't have to do system fallback again next time. |
530 if (variant == NormalVariant) { | 531 if (variant == NormalVariant) { |
531 page->setGlyphDataForCharacter(c, data.glyph, data.fontData); | 532 page->setGlyphDataForCharacter(c, data.glyph, data.fontData); |
532 data.fontData->setMaxGlyphPageTreeLevel(std::max(data.fontData-> maxGlyphPageTreeLevel(), node->level())); | 533 data.fontData->setMaxGlyphPageTreeLevel(std::max(data.fontData-> maxGlyphPageTreeLevel(), node->level())); |
533 if (data.fontData->platformData().isVerticalAnyUpright() && !dat a.fontData->isTextOrientationFallback() && !Character::isCJKIdeographOrSymbol(c) ) | 534 if (data.fontData->platformData().isVerticalAnyUpright() && !dat a.fontData->isTextOrientationFallback() && !Character::isCJKIdeographOrSymbol(ch aracterToRender)) |
534 return glyphDataForNonCJKCharacterWithGlyphOrientation(c, m_ fontDescription.isVerticalUpright(c), data, pageNumber); | 535 return glyphDataForNonCJKCharacterWithGlyphOrientation(chara cterToRender, m_fontDescription.isVerticalUpright(characterToRender), data, page NumberForRendering); |
535 } | 536 } |
536 return data; | 537 return data; |
537 } | 538 } |
538 } | 539 } |
539 | 540 |
540 // Even system fallback can fail; use the missing glyph in that case. | 541 // Even system fallback can fail; use the missing glyph in that case. |
541 // FIXME: It would be nicer to use the missing glyph from the last resort fo nt instead. | 542 // FIXME: It would be nicer to use the missing glyph from the last resort fo nt instead. |
542 ASSERT(primaryFont()); | 543 ASSERT(primaryFont()); |
543 GlyphData data = primaryFont()->missingGlyphData(); | 544 GlyphData data = primaryFont()->missingGlyphData(); |
544 if (variant == NormalVariant) { | 545 if (variant == NormalVariant) { |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
820 { | 821 { |
821 return m_fontFallbackList && m_fontFallbackList->loadingCustomFonts(); | 822 return m_fontFallbackList && m_fontFallbackList->loadingCustomFonts(); |
822 } | 823 } |
823 | 824 |
824 bool Font::isFallbackValid() const | 825 bool Font::isFallbackValid() const |
825 { | 826 { |
826 return !m_fontFallbackList || m_fontFallbackList->isValid(); | 827 return !m_fontFallbackList || m_fontFallbackList->isValid(); |
827 } | 828 } |
828 | 829 |
829 } // namespace blink | 830 } // namespace blink |
OLD | NEW |