OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2008, 2009, Google Inc. All rights reserved. | 2 * Copyright (c) 2008, 2009, Google 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 SkDebugf("%s last char is high-surrogate", __FUNCTION__); | 286 SkDebugf("%s last char is high-surrogate", __FUNCTION__); |
287 return false; | 287 return false; |
288 } | 288 } |
289 | 289 |
290 SkAutoSTMalloc<GlyphPage::size, uint16_t> glyphStorage(length); | 290 SkAutoSTMalloc<GlyphPage::size, uint16_t> glyphStorage(length); |
291 | 291 |
292 uint16_t* glyphs = glyphStorage.get(); | 292 uint16_t* glyphs = glyphStorage.get(); |
293 SkTypeface* typeface = platformData().typeface(); | 293 SkTypeface* typeface = platformData().typeface(); |
294 typeface->charsToGlyphs(buffer, SkTypeface::kUTF16_Encoding, glyphs, length)
; | 294 typeface->charsToGlyphs(buffer, SkTypeface::kUTF16_Encoding, glyphs, length)
; |
295 | 295 |
296 unsigned allGlyphs = 0; // track if any of the glyphIDs are non-zero | 296 bool haveGlyphs = false; |
297 for (unsigned i = 0; i < length; i++) { | 297 for (unsigned i = 0; i < length; i++) { |
298 pageToFill->setGlyphDataForIndex(offset + i, glyphs[i], glyphs[i] ? this
: 0); | 298 if (glyphs[i]) { |
299 allGlyphs |= glyphs[i]; | 299 pageToFill->setGlyphDataForIndex(offset + i, glyphs[i], this); |
| 300 haveGlyphs = true; |
| 301 } |
300 } | 302 } |
301 | 303 |
302 return allGlyphs; | 304 return haveGlyphs; |
303 } | 305 } |
304 | 306 |
305 } // namespace WebCore | 307 } // namespace WebCore |
OLD | NEW |