usp10: Set fNoGlyphIndex only if the fonts has no opentype/truetype tables.
This commit is contained in:
parent
429bac4c86
commit
7ccf31bde8
|
@ -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,
|
||||||
((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 {
|
||||||
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;
|
||||||
|
|
Loading…
Reference in New Issue