| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 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 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 | 178 |
| 179 // Fill in a buffer with the entire "page" of characters that we want to loo
k up glyphs for. | 179 // Fill in a buffer with the entire "page" of characters that we want to loo
k up glyphs for. |
| 180 if (start < 0x10000) { | 180 if (start < 0x10000) { |
| 181 bufferLength = GlyphPage::size; | 181 bufferLength = GlyphPage::size; |
| 182 for (i = 0; i < GlyphPage::size; i++) | 182 for (i = 0; i < GlyphPage::size; i++) |
| 183 buffer[i] = start + i; | 183 buffer[i] = start + i; |
| 184 | 184 |
| 185 if (start == 0) { | 185 if (start == 0) { |
| 186 // Control characters must not render at all. | 186 // Control characters must not render at all. |
| 187 for (i = 0; i < 0x20; ++i) | 187 for (i = 0; i < 0x20; ++i) |
| 188 buffer[i] = zeroWidthSpace; | 188 buffer[i] = zeroWidthSpaceCharacter; |
| 189 for (i = 0x7F; i < 0xA0; i++) | 189 for (i = 0x7F; i < 0xA0; i++) |
| 190 buffer[i] = zeroWidthSpace; | 190 buffer[i] = zeroWidthSpaceCharacter; |
| 191 buffer[softHyphen] = zeroWidthSpace; | 191 buffer[softHyphenCharacter] = zeroWidthSpaceCharacter; |
| 192 | 192 |
| 193 // \n and \t must render as a space. | 193 // \n and \t must render as a spaceCharacter. |
| 194 buffer[newlineCharacter] = space; | 194 buffer[newlineCharacter] = spaceCharacter; |
| 195 buffer[characterTabulation] = space; | 195 buffer[tabulationCharacter] = spaceCharacter; |
| 196 } else if (start == (arabicLetterMark & ~(GlyphPage::size - 1))) { | 196 } else if (start == (arabicLetterMarkCharacter & ~(GlyphPage::size - 1))
) { |
| 197 buffer[arabicLetterMark - start] = zeroWidthSpace; | 197 buffer[arabicLetterMarkCharacter - start] = zeroWidthSpaceCharacter; |
| 198 } else if (start == (leftToRightMark & ~(GlyphPage::size - 1))) { | 198 } else if (start == (leftToRightMarkCharacter & ~(GlyphPage::size - 1)))
{ |
| 199 // LRM, RLM, LRE, RLE, ZWNJ, ZWJ, and PDF must not render at all. | 199 // LRM, RLM, LRE, RLE, ZWNJ, ZWJ, and PDF must not render at all. |
| 200 buffer[leftToRightMark - start] = zeroWidthSpace; | 200 buffer[leftToRightMarkCharacter - start] = zeroWidthSpaceCharacter; |
| 201 buffer[rightToLeftMark - start] = zeroWidthSpace; | 201 buffer[rightToLeftMarkCharacter - start] = zeroWidthSpaceCharacter; |
| 202 buffer[leftToRightEmbed - start] = zeroWidthSpace; | 202 buffer[leftToRightEmbedCharacter - start] = zeroWidthSpaceCharacter; |
| 203 buffer[rightToLeftEmbed - start] = zeroWidthSpace; | 203 buffer[rightToLeftEmbedCharacter - start] = zeroWidthSpaceCharacter; |
| 204 buffer[leftToRightOverride - start] = zeroWidthSpace; | 204 buffer[leftToRightOverrideCharacter - start] = zeroWidthSpaceCharact
er; |
| 205 buffer[rightToLeftOverride - start] = zeroWidthSpace; | 205 buffer[rightToLeftOverrideCharacter - start] = zeroWidthSpaceCharact
er; |
| 206 buffer[zeroWidthNonJoiner - start] = zeroWidthSpace; | 206 buffer[zeroWidthNonJoinerCharacter - start] = zeroWidthSpaceCharacte
r; |
| 207 buffer[zeroWidthJoiner - start] = zeroWidthSpace; | 207 buffer[zeroWidthJoinerCharacter - start] = zeroWidthSpaceCharacter; |
| 208 buffer[popDirectionalFormatting - start] = zeroWidthSpace; | 208 buffer[popDirectionalFormattingCharacter - start] = zeroWidthSpaceCh
aracter; |
| 209 buffer[activateArabicFormShaping - start] = zeroWidthSpace; | 209 buffer[activateArabicFormShapingCharacter - start] = zeroWidthSpaceC
haracter; |
| 210 buffer[activateSymmetricSwapping - start] = zeroWidthSpace; | 210 buffer[activateSymmetricSwappingCharacter - start] = zeroWidthSpaceC
haracter; |
| 211 buffer[firstStrongIsolate - start] = zeroWidthSpace; | 211 buffer[firstStrongIsolateCharacter - start] = zeroWidthSpaceCharacte
r; |
| 212 buffer[inhibitArabicFormShaping - start] = zeroWidthSpace; | 212 buffer[inhibitArabicFormShapingCharacter - start] = zeroWidthSpaceCh
aracter; |
| 213 buffer[inhibitSymmetricSwapping - start] = zeroWidthSpace; | 213 buffer[inhibitSymmetricSwappingCharacter - start] = zeroWidthSpaceCh
aracter; |
| 214 buffer[leftToRightIsolate - start] = zeroWidthSpace; | 214 buffer[leftToRightIsolateCharacter - start] = zeroWidthSpaceCharacte
r; |
| 215 buffer[nationalDigitShapes - start] = zeroWidthSpace; | 215 buffer[nationalDigitShapesCharacter - start] = zeroWidthSpaceCharact
er; |
| 216 buffer[nominalDigitShapes - start] = zeroWidthSpace; | 216 buffer[nominalDigitShapesCharacter - start] = zeroWidthSpaceCharacte
r; |
| 217 buffer[popDirectionalIsolate - start] = zeroWidthSpace; | 217 buffer[popDirectionalIsolateCharacter - start] = zeroWidthSpaceChara
cter; |
| 218 buffer[rightToLeftIsolate - start] = zeroWidthSpace; | 218 buffer[rightToLeftIsolateCharacter - start] = zeroWidthSpaceCharacte
r; |
| 219 } else if (start == (objectReplacementCharacter & ~(GlyphPage::size - 1)
)) { | 219 } else if (start == (objectReplacementCharacter & ~(GlyphPage::size - 1)
)) { |
| 220 // Object replacement character must not render at all. | 220 // Object replacement character must not render at all. |
| 221 buffer[objectReplacementCharacter - start] = zeroWidthSpace; | 221 buffer[objectReplacementCharacter - start] = zeroWidthSpaceCharacter
; |
| 222 } else if (start == (zeroWidthNoBreakSpace & ~(GlyphPage::size - 1))) { | 222 } else if (start == (zeroWidthNoBreakSpaceCharacter & ~(GlyphPage::size
- 1))) { |
| 223 // ZWNBS/BOM must not render at all. | 223 // ZWNBS/BOM must not render at all. |
| 224 buffer[zeroWidthNoBreakSpace - start] = zeroWidthSpace; | 224 buffer[zeroWidthNoBreakSpaceCharacter - start] = zeroWidthSpaceChara
cter; |
| 225 } | 225 } |
| 226 } else { | 226 } else { |
| 227 bufferLength = GlyphPage::size * 2; | 227 bufferLength = GlyphPage::size * 2; |
| 228 for (i = 0; i < GlyphPage::size; i++) { | 228 for (i = 0; i < GlyphPage::size; i++) { |
| 229 int c = i + start; | 229 int c = i + start; |
| 230 buffer[i * 2] = U16_LEAD(c); | 230 buffer[i * 2] = U16_LEAD(c); |
| 231 buffer[i * 2 + 1] = U16_TRAIL(c); | 231 buffer[i * 2 + 1] = U16_TRAIL(c); |
| 232 } | 232 } |
| 233 } | 233 } |
| 234 | 234 |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 // entries may use different fonts depending on character. If the Font | 438 // entries may use different fonts depending on character. If the Font |
| 439 // ever finds it needs a glyph out of the system fallback page, it will | 439 // ever finds it needs a glyph out of the system fallback page, it will |
| 440 // ask the system for the best font to use and fill that glyph in for us. | 440 // ask the system for the best font to use and fill that glyph in for us. |
| 441 if (GlyphPage* parentPage = m_parent->page()) | 441 if (GlyphPage* parentPage = m_parent->page()) |
| 442 return parentPage->createCopiedSystemFallbackPage(this); | 442 return parentPage->createCopiedSystemFallbackPage(this); |
| 443 return GlyphPage::createForMixedFontData(this); | 443 return GlyphPage::createForMixedFontData(this); |
| 444 } | 444 } |
| 445 | 445 |
| 446 } // namespace blink | 446 } // namespace blink |
| 447 | 447 |
| OLD | NEW |