gdi32: Add a helper to get the default character index.
This commit is contained in:
parent
e7c3b03531
commit
f6ea5c8a0f
|
@ -5817,6 +5817,25 @@ static FT_UInt get_glyph_index(const GdiFont *font, UINT glyph)
|
||||||
return glyphId;
|
return glyphId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FT_UInt get_default_char_index(GdiFont *font)
|
||||||
|
{
|
||||||
|
FT_UInt default_char;
|
||||||
|
|
||||||
|
if (FT_IS_SFNT(font->ft_face))
|
||||||
|
{
|
||||||
|
TT_OS2 *pOS2 = pFT_Get_Sfnt_Table(font->ft_face, ft_sfnt_os2);
|
||||||
|
default_char = (pOS2->usDefaultChar ? get_glyph_index(font, pOS2->usDefaultChar) : 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TEXTMETRICW textm;
|
||||||
|
get_text_metrics(font, &textm);
|
||||||
|
default_char = textm.tmDefaultChar;
|
||||||
|
}
|
||||||
|
|
||||||
|
return default_char;
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************************
|
/*************************************************************
|
||||||
* freetype_GetGlyphIndices
|
* freetype_GetGlyphIndices
|
||||||
*/
|
*/
|
||||||
|
@ -5849,17 +5868,7 @@ static DWORD freetype_GetGlyphIndices( PHYSDEV dev, LPCWSTR lpstr, INT count, LP
|
||||||
{
|
{
|
||||||
if (!got_default)
|
if (!got_default)
|
||||||
{
|
{
|
||||||
if (FT_IS_SFNT(physdev->font->ft_face))
|
default_char = get_default_char_index(physdev->font);
|
||||||
{
|
|
||||||
TT_OS2 *pOS2 = pFT_Get_Sfnt_Table(physdev->font->ft_face, ft_sfnt_os2);
|
|
||||||
default_char = (pOS2->usDefaultChar ? get_glyph_index(physdev->font, pOS2->usDefaultChar) : 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TEXTMETRICW textm;
|
|
||||||
get_text_metrics(physdev->font, &textm);
|
|
||||||
default_char = textm.tmDefaultChar;
|
|
||||||
}
|
|
||||||
got_default = TRUE;
|
got_default = TRUE;
|
||||||
}
|
}
|
||||||
pgi[i] = default_char;
|
pgi[i] = default_char;
|
||||||
|
|
Loading…
Reference in New Issue