Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: Source/platform/fonts/mac/ComplexTextController.cpp

Issue 327243005: Remove GlyphBufferAdvance abstraction. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase again Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 glyphEndOffset = max<unsigned>(glyphStartOffset, static_cast <unsigned>(g > 0 ? complexTextRun.indexAt(g - 1) : complexTextRun.indexEnd())); 463 glyphEndOffset = max<unsigned>(glyphStartOffset, static_cast <unsigned>(g > 0 ? complexTextRun.indexAt(g - 1) : complexTextRun.indexEnd()));
464 } else 464 } else
465 glyphEndOffset = complexTextRun.endOffsetAt(g); 465 glyphEndOffset = complexTextRun.endOffsetAt(g);
466 466
467 CGSize adjustedAdvance = m_adjustedAdvances[k]; 467 CGSize adjustedAdvance = m_adjustedAdvances[k];
468 468
469 if (glyphStartOffset + complexTextRun.stringLocation() >= m_currentC haracter) 469 if (glyphStartOffset + complexTextRun.stringLocation() >= m_currentC haracter)
470 return; 470 return;
471 471
472 if (glyphBuffer && !m_characterInCurrentGlyph) 472 if (glyphBuffer && !m_characterInCurrentGlyph)
473 glyphBuffer->add(m_adjustedGlyphs[k], complexTextRun.fontData(), adjustedAdvance); 473 glyphBuffer->add(m_adjustedGlyphs[k], complexTextRun.fontData(), FloatSize(adjustedAdvance));
474 474
475 unsigned oldCharacterInCurrentGlyph = m_characterInCurrentGlyph; 475 unsigned oldCharacterInCurrentGlyph = m_characterInCurrentGlyph;
476 m_characterInCurrentGlyph = min(m_currentCharacter - complexTextRun. stringLocation(), glyphEndOffset) - glyphStartOffset; 476 m_characterInCurrentGlyph = min(m_currentCharacter - complexTextRun. stringLocation(), glyphEndOffset) - glyphStartOffset;
477 // FIXME: Instead of dividing the glyph's advance equally between th e characters, this 477 // FIXME: Instead of dividing the glyph's advance equally between th e characters, this
478 // could use the glyph's "ligature carets". However, there is no Cor e Text API to get the 478 // could use the glyph's "ligature carets". However, there is no Cor e Text API to get the
479 // ligature carets. 479 // ligature carets.
480 if (glyphStartOffset == glyphEndOffset) { 480 if (glyphStartOffset == glyphEndOffset) {
481 // When there are multiple glyphs per character we need to advan ce by the full width of the glyph. 481 // When there are multiple glyphs per character we need to advan ce by the full width of the glyph.
482 ASSERT(m_characterInCurrentGlyph == oldCharacterInCurrentGlyph); 482 ASSERT(m_characterInCurrentGlyph == oldCharacterInCurrentGlyph);
483 m_runWidthSoFar += adjustedAdvance.width; 483 m_runWidthSoFar += adjustedAdvance.width;
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 660
661 lastCharacterIndex = characterIndex; 661 lastCharacterIndex = characterIndex;
662 } 662 }
663 if (!isMonotonic) 663 if (!isMonotonic)
664 complexTextRun.setIsNonMonotonic(); 664 complexTextRun.setIsNonMonotonic();
665 } 665 }
666 m_totalWidth += widthSinceLastCommit; 666 m_totalWidth += widthSinceLastCommit;
667 } 667 }
668 668
669 } // namespace WebCore 669 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/platform/fonts/mac/ComplexTextController.h ('k') | Source/platform/fonts/mac/FontMac.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698