diff options
-rw-r--r-- | Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp | 12 | ||||
-rw-r--r-- | Build/source/texk/web2c/xetexdir/XeTeX_ext.c | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/xetexdir/xetex.ch | 2 |
3 files changed, 12 insertions, 4 deletions
diff --git a/Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp b/Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp index d8827416bb4..9378b380c06 100644 --- a/Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp +++ b/Build/source/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp @@ -680,11 +680,15 @@ UInt32 getRgbValue(XeTeXLayoutEngine engine) void getGlyphBounds(XeTeXLayoutEngine engine, UInt32 glyphID, GlyphBBox* bbox) { engine->font->getGlyphBounds(glyphID, bbox); + if (engine->extend != 0.0) { + bbox->xMin *= engine->extend; + bbox->xMax *= engine->extend; + } } float getGlyphWidthFromEngine(XeTeXLayoutEngine engine, UInt32 glyphID) { - return engine->font->getGlyphWidth(glyphID); + return engine->extend * engine->font->getGlyphWidth(glyphID); } void getGlyphHeightDepth(XeTeXLayoutEngine engine, UInt32 glyphID, float* height, float* depth) @@ -695,11 +699,15 @@ void getGlyphHeightDepth(XeTeXLayoutEngine engine, UInt32 glyphID, float* height void getGlyphSidebearings(XeTeXLayoutEngine engine, UInt32 glyphID, float* lsb, float* rsb) { engine->font->getGlyphSidebearings(glyphID, lsb, rsb); + if (engine->extend != 0.0) { + *lsb *= engine->extend; + *rsb *= engine->extend; + } } float getGlyphItalCorr(XeTeXLayoutEngine engine, UInt32 glyphID) { - return engine->font->getGlyphItalCorr(glyphID); + return engine->extend * engine->font->getGlyphItalCorr(glyphID); } UInt32 mapCharToGlyph(XeTeXLayoutEngine engine, UInt32 charCode) diff --git a/Build/source/texk/web2c/xetexdir/XeTeX_ext.c b/Build/source/texk/web2c/xetexdir/XeTeX_ext.c index 44abaa0afd3..a6b55929882 100644 --- a/Build/source/texk/web2c/xetexdir/XeTeX_ext.c +++ b/Build/source/texk/web2c/xetexdir/XeTeX_ext.c @@ -2243,7 +2243,7 @@ measure_native_node(void* pNode, int use_glyph_metrics) realGlyphCount = 0; for (i = 0; i < nGlyphs; ++i) { if (glyphs[i] < 0xfffe) { - float rhs = positions[2*i] + getGlyphWidth(getFont(engine), glyphs[i]); + float rhs = positions[2*i] + getGlyphWidthFromEngine(engine, glyphs[i]); if (rhs > maxRhs) maxRhs = rhs; glyphIDs[realGlyphCount] = glyphs[i]; diff --git a/Build/source/texk/web2c/xetexdir/xetex.ch b/Build/source/texk/web2c/xetexdir/xetex.ch index a8149933ef5..e5911c59117 100644 --- a/Build/source/texk/web2c/xetexdir/xetex.ch +++ b/Build/source/texk/web2c/xetexdir/xetex.ch @@ -65,7 +65,7 @@ authorization from SIL International. @d XeTeX_version=0 @d XeTeX_revision==".9994" -@d XeTeX_version_string=='-0.9994.0' {current \XeTeX\ version} +@d XeTeX_version_string=='-0.9994.1' {current \XeTeX\ version} @z @x |