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

Side by Side Diff: Source/core/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp

Issue 24874002: Have all skia platforms share FontPlatformData::hash() implementation (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 2 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) 2006, 2007, 2008, Google Inc. All rights reserved. 2 * Copyright (c) 2006, 2007, 2008, 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 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 233
234 return typefacesEqual 234 return typefacesEqual
235 && m_textSize == a.m_textSize 235 && m_textSize == a.m_textSize
236 && m_fakeBold == a.m_fakeBold 236 && m_fakeBold == a.m_fakeBold
237 && m_fakeItalic == a.m_fakeItalic 237 && m_fakeItalic == a.m_fakeItalic
238 && m_orientation == a.m_orientation 238 && m_orientation == a.m_orientation
239 && m_style == a.m_style 239 && m_style == a.m_style
240 && m_isHashTableDeletedValue == a.m_isHashTableDeletedValue; 240 && m_isHashTableDeletedValue == a.m_isHashTableDeletedValue;
241 } 241 }
242 242
243 unsigned FontPlatformData::hash() const
244 {
245 unsigned h = SkTypeface::UniqueID(m_typeface.get());
246 h ^= 0x01010101 * ((static_cast<int>(m_orientation) << 2) | (static_cast<int >(m_fakeBold) << 1) | static_cast<int>(m_fakeItalic));
247
248 // This memcpy is to avoid a reinterpret_cast that breaks strict-aliasing
249 // rules. Memcpy is generally optimized enough so that performance doesn't
250 // matter here.
251 uint32_t textSizeBytes;
252 memcpy(&textSizeBytes, &m_textSize, sizeof(uint32_t));
253 h ^= textSizeBytes;
254
255 return h;
256 }
257
258 bool FontPlatformData::isFixedPitch() const 243 bool FontPlatformData::isFixedPitch() const
259 { 244 {
260 notImplemented(); 245 notImplemented();
261 return false; 246 return false;
262 } 247 }
263 248
264 HarfBuzzFace* FontPlatformData::harfBuzzFace() const 249 HarfBuzzFace* FontPlatformData::harfBuzzFace() const
265 { 250 {
266 if (!m_harfBuzzFace) 251 if (!m_harfBuzzFace)
267 m_harfBuzzFace = HarfBuzzFace::create(const_cast<FontPlatformData*>(this ), uniqueID()); 252 m_harfBuzzFace = HarfBuzzFace::create(const_cast<FontPlatformData*>(this ), uniqueID());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 m_style.useAutoHint = useSkiaAutoHint; 291 m_style.useAutoHint = useSkiaAutoHint;
307 if (m_style.useSubpixelPositioning == FontRenderStyle::NoPreference) 292 if (m_style.useSubpixelPositioning == FontRenderStyle::NoPreference)
308 m_style.useSubpixelPositioning = useSkiaSubpixelPositioning; 293 m_style.useSubpixelPositioning = useSkiaSubpixelPositioning;
309 if (m_style.useAntiAlias == FontRenderStyle::NoPreference) 294 if (m_style.useAntiAlias == FontRenderStyle::NoPreference)
310 m_style.useAntiAlias = useSkiaAntiAlias; 295 m_style.useAntiAlias = useSkiaAntiAlias;
311 if (m_style.useSubpixelRendering == FontRenderStyle::NoPreference) 296 if (m_style.useSubpixelRendering == FontRenderStyle::NoPreference)
312 m_style.useSubpixelRendering = useSkiaSubpixelRendering; 297 m_style.useSubpixelRendering = useSkiaSubpixelRendering;
313 } 298 }
314 299
315 } // namespace WebCore 300 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698