Commit 7ccf31bd authored by Aric Stewart's avatar Aric Stewart Committed by Alexandre Julliard

usp10: Set fNoGlyphIndex only if the fonts has no opentype/truetype tables.

parent 429bac4c
...@@ -427,6 +427,7 @@ static HRESULT init_script_cache(const HDC hdc, SCRIPT_CACHE *psc) ...@@ -427,6 +427,7 @@ static HRESULT init_script_cache(const HDC hdc, SCRIPT_CACHE *psc)
heap_free(sc); heap_free(sc);
return E_INVALIDARG; return E_INVALIDARG;
} }
sc->sfnt = (GetFontData(hdc, MS_MAKE_TAG('h','e','a','d'), 0, NULL, 0)!=GDI_ERROR);
*psc = sc; *psc = sc;
TRACE("<- %p\n", sc); TRACE("<- %p\n", sc);
return S_OK; return S_OK;
...@@ -1747,11 +1748,8 @@ HRESULT WINAPI ScriptShapeOpenType( HDC hdc, SCRIPT_CACHE *psc, ...@@ -1747,11 +1748,8 @@ HRESULT WINAPI ScriptShapeOpenType( HDC hdc, SCRIPT_CACHE *psc,
((ScriptCache *)*psc)->userScript = tagScript; ((ScriptCache *)*psc)->userScript = tagScript;
((ScriptCache *)*psc)->userLang = tagLangSys; ((ScriptCache *)*psc)->userLang = tagLangSys;
/* set fNoGlyphIndex for symbolic, and device fonts or non truetype fonts */ /* set fNoGlyphIndex non truetype/opentype fonts */
if (!psa->fNoGlyphIndex && if (!psa->fNoGlyphIndex && !((ScriptCache *)*psc)->sfnt)
(!(get_cache_pitch_family(psc) & TMPF_TRUETYPE) ||
(get_cache_pitch_family(psc) & TMPF_DEVICE) ||
(((ScriptCache *)*psc)->tm.tmCharSet == SYMBOL_CHARSET)))
psa->fNoGlyphIndex = TRUE; psa->fNoGlyphIndex = TRUE;
/* Initialize a SCRIPT_VISATTR and LogClust for each char in this run */ /* Initialize a SCRIPT_VISATTR and LogClust for each char in this run */
......
...@@ -85,6 +85,7 @@ typedef struct { ...@@ -85,6 +85,7 @@ typedef struct {
typedef struct { typedef struct {
LOGFONTW lf; LOGFONTW lf;
TEXTMETRICW tm; TEXTMETRICW tm;
BOOL sfnt;
WORD *glyphs[GLYPH_MAX / GLYPH_BLOCK_SIZE]; WORD *glyphs[GLYPH_MAX / GLYPH_BLOCK_SIZE];
ABC *widths[GLYPH_MAX / GLYPH_BLOCK_SIZE]; ABC *widths[GLYPH_MAX / GLYPH_BLOCK_SIZE];
LPVOID GSUB_Table; LPVOID GSUB_Table;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment