{
return false;
}
- if(fabsf(glyphData.advance - floor(glyph.advance)) > Math::MACHINE_EPSILON_1000)
+ if(glyphData.advance >= 0.0f && fabsf(glyphData.advance - round(glyph.advance)) > Math::MACHINE_EPSILON_1000)
{
return false;
}
std::cout << " height : " << glyphInfo.height << std::endl;
std::cout << " xBearing : " << glyphInfo.xBearing << std::endl;
std::cout << " yBearing : " << glyphInfo.yBearing << std::endl;
- std::cout << " advance : " << floor(glyphInfo.advance) << std::endl;
+ std::cout << " advance : " << round(glyphInfo.advance) << std::endl;
std::cout << " scaleFactor : " << glyphInfo.scaleFactor << std::endl;
std::cout << " isItalicRequired : " << glyphInfo.isItalicRequired << std::endl;
std::cout << " isBoldRequired : " << glyphInfo.isBoldRequired << std::endl;
{1u, 306u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 309u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
- {1u, 317u, 0.f, 0.f, 0.f, 0.f, 11.f, 0.f},
+ {1u, 317u, 0.f, 0.f, 0.f, 0.f, 12.f, 0.f},
{1u, 309u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 312u, 0.f, 0.f, 0.f, 0.f, 6.f, 0.f},
{1u, 306u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 306u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 309u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
- {1u, 317u, 0.f, 0.f, 0.f, 0.f, 11.f, 0.f},
+ {1u, 317u, 0.f, 0.f, 0.f, 0.f, 12.f, 0.f},
{1u, 309u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 312u, 0.f, 0.f, 0.f, 0.f, 6.f, 0.f},
{1u, 306u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 0u, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f},
{1u, 298u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {1u, 307u, 0.f, 0.f, 0.f, 0.f, 13.f, 0.f},
+ {1u, 307u, 0.f, 0.f, 0.f, 0.f, 14.f, 0.f},
{1u, 309u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 0u, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f},
};
struct GlyphInfoData glyphs04[] =
{
- {2u, 67u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
+ {2u, 67u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f},
{2u, 27u, 0.f, 0.f, 0.f, 0.f, 15.f, 0.f},
{2u, 59u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {2u, 67u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
- {2u, 55u, 0.f, 0.f, 0.f, 0.f, 19.f, 0.f},
+ {2u, 67u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f},
+ {2u, 55u, 0.f, 0.f, 0.f, 0.f, 20.f, 0.f},
{2u, 59u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {2u, 67u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
+ {2u, 67u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f},
{2u, 56u, 0.f, 0.f, 0.f, 0.f, 19.f, 0.f},
{2u, 59u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {2u, 67u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
+ {2u, 67u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f},
{2u, 52u, 0.f, 0.f, 0.f, 0.f, 15.f, 0.f},
{2u, 59u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
};
struct GlyphInfoData glyphs05[] =
{
- {1u, 280u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
+ {1u, 280u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 309u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
- {1u, 312u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f},
+ {1u, 312u, 0.f, 0.f, 0.f, 0.f, 6.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {1u, 307u, 0.f, 0.f, 0.f, 0.f, 13.f, 0.f},
+ {1u, 307u, 0.f, 0.f, 0.f, 0.f, 14.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 303u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 310u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 313u, 0.f, 0.f, 0.f, 0.f, 7.f, 0.f},
- {1u, 315u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {1u, 307u, 0.f, 0.f, 0.f, 0.f, 13.f, 0.f},
+ {1u, 315u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
+ {1u, 307u, 0.f, 0.f, 0.f, 0.f, 14.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 298u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 309u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 314u, 0.f, 0.f, 0.f, 0.f, 6.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 295u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {1u, 307u, 0.f, 0.f, 0.f, 0.f, 13.f, 0.f},
+ {1u, 307u, 0.f, 0.f, 0.f, 0.f, 14.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 314u, 0.f, 0.f, 0.f, 0.f, 6.f, 0.f},
{1u, 0u, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f},
{1u, 295u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 311u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
- {1u, 315u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
+ {1u, 315u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 298u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {1u, 403u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
+ {1u, 403u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f},
{1u, 308u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 303u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 295u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
- {1u, 307u, 0.f, 0.f, 0.f, 0.f, 13.f, 0.f},
+ {1u, 307u, 0.f, 0.f, 0.f, 0.f, 14.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 303u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 0u, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 303u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
- {1u, 312u, 0.f, 0.f, 0.f, 0.f, 5.f, 0.f},
+ {1u, 312u, 0.f, 0.f, 0.f, 0.f, 6.f, 0.f},
{1u, 295u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {1u, 297u, 0.f, 0.f, 0.f, 0.f, 7.f, 0.f},
- {1u, 315u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
+ {1u, 297u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
+ {1u, 315u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 308u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 298u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 303u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 308u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
{1u, 299u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
{1u, 3u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
- {1u, 297u, 0.f, 0.f, 0.f, 0.f, 7.f, 0.f},
- {1u, 315u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
- {1u, 307u, 0.f, 0.f, 0.f, 0.f, 13.f, 0.f},
- {1u, 4u, 0.f, 0.f, 0.f, 0.f, 3.f, 0.f},
+ {1u, 297u, 0.f, 0.f, 0.f, 0.f, 8.f, 0.f},
+ {1u, 315u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f},
+ {1u, 307u, 0.f, 0.f, 0.f, 0.f, 14.f, 0.f},
+ {1u, 4u, 0.f, 0.f, 0.f, 0.f, 4.f, 0.f},
{1u, 0u, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f},
};
struct GlyphInfoData glyphs01[] =
{
- {4u, 38u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f, true, true},
- {4u, 39u, 0.f, 0.f, 0.f, 0.f, 9.f, 0.f, true, true},
+ {4u, 38u, 0.f, 0.f, 0.f, 0.f, 11.f, 0.f, true, true},
+ {4u, 39u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f, true, true},
{4u, 40u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f, true, true},
{4u, 41u, 0.f, 0.f, 0.f, 0.f, 10.f, 0.f, true, true},
};
bool sizeDefined = false;
// variation selector 16 (Emoji)
+ // Note : Non-scalable font's advance value is undefined. See https://github.com/harfbuzz/harfbuzz/discussions/3023. 2022-06-03 updated.
struct GlyphInfoData glyphsVS16[] =
{
- {2u, 74u, 0.f, 0.f, 0.f, 0.f, 39.0f, 0.f, false, false},
+ {2u, 74u, 0.f, 0.f, 0.f, 0.f, -1.0f /* Special value that we don't check it */, 0.f, false, false},
};
CharacterIndex characterIndicesVS16[] = {0u, 1u};
Length charactersPerGlyphVS16[] = {2u};
struct GlyphInfoData glyphsVS15[] =
{
{1u, 3842u, 0.f, 0.f, 0.f, 0.f, 14.0f, 0.f, false, false},
- {1u, 8203u, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, false, false},
+ {1u, 3u, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, false, false},
};
CharacterIndex characterIndicesVS15[] = {0u, 0u};
Length charactersPerGlyphVS15[] = {0u, 2u};