Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 Google Inc. All rights reserved. | 2 * Copyright (c) 2012 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 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 380 return cacheEntry; | 380 return cacheEntry; |
| 381 } | 381 } |
| 382 | 382 |
| 383 hb_font_t* HarfBuzzFace::getScaledFont( | 383 hb_font_t* HarfBuzzFace::getScaledFont( |
| 384 PassRefPtr<UnicodeRangeSet> rangeSet) const { | 384 PassRefPtr<UnicodeRangeSet> rangeSet) const { |
| 385 m_platformData->setupPaint(&m_harfBuzzFontData->m_paint); | 385 m_platformData->setupPaint(&m_harfBuzzFontData->m_paint); |
| 386 m_harfBuzzFontData->m_paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding); | 386 m_harfBuzzFontData->m_paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding); |
| 387 m_harfBuzzFontData->m_rangeSet = rangeSet; | 387 m_harfBuzzFontData->m_rangeSet = rangeSet; |
| 388 m_harfBuzzFontData->updateSimpleFontData(m_platformData); | 388 m_harfBuzzFontData->updateSimpleFontData(m_platformData); |
| 389 | 389 |
| 390 // TODO crbug.com/674879 - Connect variation axis parameters to future | |
| 391 // HarfBuzz API here. | |
| 392 ASSERT(m_harfBuzzFontData->m_simpleFontData); | 390 ASSERT(m_harfBuzzFontData->m_simpleFontData); |
| 393 int scale = SkiaScalarToHarfBuzzPosition(m_platformData->size()); | 391 int scale = SkiaScalarToHarfBuzzPosition(m_platformData->size()); |
| 394 hb_font_set_scale(m_unscaledFont, scale, scale); | 392 hb_font_set_scale(m_unscaledFont, scale, scale); |
| 393 | |
| 394 SkTypeface* typeface = m_harfBuzzFontData->m_paint.getTypeface(); | |
| 395 int axisCount = typeface->getVariationDesignPosition(nullptr, 0); | |
| 396 if (axisCount > 0) { | |
| 397 Vector<SkFontArguments::VariationPosition::Coordinate> axisValues; | |
| 398 axisValues.resize(axisCount); | |
| 399 typeface->getVariationDesignPosition(axisValues.data(), axisValues.size()); | |
| 400 Vector<float> axisValuesFloat; | |
| 401 axisValuesFloat.resize(axisCount); | |
| 402 for (size_t i = 0; i < axisValues.size(); i++) { | |
| 403 axisValuesFloat[i] = axisValues[i].value; | |
| 404 } | |
| 405 hb_font_set_var_coords_design(m_unscaledFont, axisValuesFloat.data(), | |
| 406 axisValuesFloat.size()); | |
| 407 } | |
|
behdad
2017/02/17 19:13:49
Shouldn't you set_var_coords to zero in the else b
| |
| 408 | |
| 395 return m_unscaledFont; | 409 return m_unscaledFont; |
| 396 } | 410 } |
| 397 | 411 |
| 398 } // namespace blink | 412 } // namespace blink |
| OLD | NEW |