From dea6d2e8f0e297b697ed6ae2bfdb169c17765ebb Mon Sep 17 00:00:00 2001 From: Mikael Sand Date: Sun, 23 Jul 2017 07:54:44 +0300 Subject: [PATCH] Simplify scaling logic --- .../java/com/horcrux/svg/GlyphContext.java | 22 +++++++++---------- .../java/com/horcrux/svg/TSpanShadowNode.java | 6 ++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/android/src/main/java/com/horcrux/svg/GlyphContext.java b/android/src/main/java/com/horcrux/svg/GlyphContext.java index 18eed2b0..54800dbd 100644 --- a/android/src/main/java/com/horcrux/svg/GlyphContext.java +++ b/android/src/main/java/com/horcrux/svg/GlyphContext.java @@ -188,15 +188,15 @@ class GlyphContext { } } - private static void putD(String key, WritableMap map, ReadableMap font, ReadableMap parent, double fontSize) { + private void putD(String key, WritableMap map, ReadableMap font, ReadableMap parent) { if (font.hasKey(key)) { String string = font.getString(key); double value = PropHelper.fromRelative( string, 0, 0, - 1, - fontSize + mScale, + mFontSize ); map.putDouble(key, value); } else if (parent.hasKey(key)) { @@ -244,13 +244,13 @@ class GlyphContext { // https://www.w3.org/TR/SVG11/text.html#SpacingProperties // https://drafts.csswg.org/css-text-3/#spacing - // calculated values for units in: kerning, letter-spacing and word-spacing + // calculated values for units in: kerning, word-spacing, and, letter-spacing - putD(KERNING, map, font, parent, mFontSize); + putD(KERNING, map, font, parent); - putD(WORD_SPACING, map, font, parent, mFontSize); + putD(WORD_SPACING, map, font, parent); - putD(LETTER_SPACING, map, font, parent, mFontSize); + putD(LETTER_SPACING, map, font, parent); } void pushContext(GroupShadowNode node, @Nullable ReadableMap font) { @@ -465,8 +465,8 @@ class GlyphContext { if (nextIndex < mDXs.length) { mDXIndex = nextIndex; String string = mDXs[nextIndex]; - double val = PropHelper.fromRelative(string, mWidth, 0, 1, mFontSize); - mDX += val * mScale; + double val = PropHelper.fromRelative(string, mWidth, 0, mScale, mFontSize); + mDX += val; } return mDX; @@ -479,8 +479,8 @@ class GlyphContext { if (nextIndex < mDYs.length) { mDYIndex = nextIndex; String string = mDYs[nextIndex]; - double val = PropHelper.fromRelative(string, mHeight, 0, 1, mFontSize); - mDY += val * mScale; + double val = PropHelper.fromRelative(string, mHeight, 0, mScale, mFontSize); + mDY += val; } return mDY; diff --git a/android/src/main/java/com/horcrux/svg/TSpanShadowNode.java b/android/src/main/java/com/horcrux/svg/TSpanShadowNode.java index e16e8a8f..2f5863fd 100644 --- a/android/src/main/java/com/horcrux/svg/TSpanShadowNode.java +++ b/android/src/main/java/com/horcrux/svg/TSpanShadowNode.java @@ -181,15 +181,15 @@ class TSpanShadowNode extends TextShadowNode { * */ final boolean hasKerning = font.hasKey(PROP_KERNING); - double kerning = hasKerning ? font.getDouble(PROP_KERNING) * mScale : DEFAULT_KERNING; + double kerning = hasKerning ? font.getDouble(PROP_KERNING) : DEFAULT_KERNING; final boolean autoKerning = !hasKerning; final double wordSpacing = font.hasKey(PROP_WORD_SPACING) ? - font.getDouble(PROP_WORD_SPACING) * mScale + font.getDouble(PROP_WORD_SPACING) : DEFAULT_WORD_SPACING; final double letterSpacing = font.hasKey(PROP_LETTER_SPACING) ? - font.getDouble(PROP_LETTER_SPACING) * mScale + font.getDouble(PROP_LETTER_SPACING) : DEFAULT_LETTER_SPACING; for (int index = 0; index < length; index++) {