summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Godfrey-Kittle <jamesgk19@gmail.com>2016-01-06 11:14:58 -0800
committerJames Godfrey-Kittle <jamesgk19@gmail.com>2016-01-06 11:14:58 -0800
commit6831ae5695b88e456589476a6d5de3aaf065685c (patch)
tree7c77574116d460b2d2bc6026f930e8c4c6ff8184
parent2c343c852a0ae8feb2b376c006f9a5fe1bd8688b (diff)
parent69467fac76d48280050a3e1770f6595dc6967b6a (diff)
Merge pull request #145 from jamesgk/android
Update post-production and testing
-rw-r--r--res/roboto.cfg1
-rw-r--r--scripts/build-v2.py4
-rw-r--r--scripts/lib/fontbuild/Build.py9
-rw-r--r--scripts/lib/fontbuild/instanceNames.py2
-rwxr-xr-xscripts/lib/fontbuild/markFeature.py5
-rwxr-xr-xscripts/run_android_tests.py20
-rwxr-xr-xscripts/run_general_tests.py37
-rwxr-xr-xscripts/run_web_tests.py4
-rwxr-xr-xscripts/touchup_for_android.py14
-rwxr-xr-xscripts/touchup_for_web.py6
-rw-r--r--src/v2/Roboto_Bold.ufo/fontinfo.plist2
-rw-r--r--src/v2/Roboto_Bold.vfbbin415462 -> 415462 bytes
-rw-r--r--src/v2/Roboto_Regular.ufo/fontinfo.plist2
-rw-r--r--src/v2/Roboto_Regular.vfbbin471237 -> 471237 bytes
-rw-r--r--src/v2/Roboto_Thin.ufo/fontinfo.plist2
-rw-r--r--src/v2/Roboto_Thin.vfbbin405061 -> 405061 bytes
16 files changed, 85 insertions, 23 deletions
diff --git a/res/roboto.cfg b/res/roboto.cfg
index 205cd46..4531bd2 100644
--- a/res/roboto.cfg
+++ b/res/roboto.cfg
@@ -36,6 +36,7 @@ decompose: integral product florin Tbar tbar Hbar hbar Eng eng
uogonek Uogonek.smcp Aogonek.smcp Eogonek.smcp uni0524 uni0525 uni0526
uni0527 uni052E uni052F Hdesc hdesc uni2C69 uni2C6A uni2C6B uni2C6C Ndesc ndesc
uni0498.smcp uni04A2.smcp uni04AA.smcp uni04B6.smcp nbspace uni202F uni205F erev uni1AB5
+ uni2050
predecompose: uni04B4 uni04B5 dcroat uni040F uni045F uni0490 uni0491 OE
oe Oslash oslash uni04A6 uni04A7 uni0492 uni0493 uni04BC uni04BD gamma Ohorn
diff --git a/scripts/build-v2.py b/scripts/build-v2.py
index 0ef86e9..6026939 100644
--- a/scripts/build-v2.py
+++ b/scripts/build-v2.py
@@ -101,7 +101,7 @@ proj.generateFont(Mix([rg, bd], 0.35), "%s/Medium/Regular/Lt"%FAMILYNAME)
proj.generateFont(Mix([rg, bd], RPoint(0.73, 0.73)),
"%s/Bold/Bold/Rg"%FAMILYNAME)
proj.generateFont(Mix([rg, bd], RPoint(1.125, 1.0)),
- "%s/Black/Bold/Bk"%FAMILYNAME)
+ "%s/Black/Regular/Bk"%FAMILYNAME)
proj.generateFont(th.font, "%s/Thin Italic/Italic/Th"%FAMILYNAME,
italic=True, stemWidth=80)
@@ -115,7 +115,7 @@ proj.generateFont(Mix([rg, bd], RPoint(0.73, 0.73)),
"%s/Bold Italic/Bold Italic/Rg"%FAMILYNAME,
italic=True, stemWidth=290)
proj.generateFont(Mix([rg, bd], RPoint(1.125, 1.0)),
- "%s/Black Italic/Bold Italic/Bk"%FAMILYNAME,
+ "%s/Black Italic/Italic/Bk"%FAMILYNAME,
italic=True, stemWidth=290)
# unfortunately some condensed forms (*.cn) of glyphs are not compatible with
diff --git a/scripts/lib/fontbuild/Build.py b/scripts/lib/fontbuild/Build.py
index be0b79c..a4e5bac 100644
--- a/scripts/lib/fontbuild/Build.py
+++ b/scripts/lib/fontbuild/Build.py
@@ -28,7 +28,7 @@ from fontbuild.features import readFeatureFile, writeFeatureFile
from fontbuild.generateGlyph import generateGlyph
from fontbuild.instanceNames import setNamesRF
from fontbuild.italics import italicizeGlyph
-from fontbuild.markFeature import RobotoFeatureCompiler
+from fontbuild.markFeature import RobotoFeatureCompiler, RobotoKernWriter
from fontbuild.mitreGlyph import mitreGlyph
from fontbuild.mix import Mix,Master,narrowFLGlyph
@@ -184,10 +184,10 @@ class FontProject:
# fewer control points and look noticeably different
max_err = 0.002
if self.compatible:
- fonts_to_quadratic(*fonts, max_err_em=max_err, dump_report=True)
+ fonts_to_quadratic(fonts, max_err_em=max_err, dump_stats=True)
else:
for font in fonts:
- fonts_to_quadratic(font, max_err_em=max_err, dump_report=True)
+ fonts_to_quadratic([font], max_err_em=max_err, dump_stats=True)
log(">> Generating TTF files")
for font in fonts:
@@ -288,5 +288,6 @@ def saveOTF(font, destFile, truetype=False):
compiler = compileTTF
else:
compiler = compileOTF
- otf = compiler(font, featureCompilerClass=RobotoFeatureCompiler)
+ otf = compiler(font, featureCompilerClass=RobotoFeatureCompiler,
+ kernWriter=RobotoKernWriter)
otf.save(destFile)
diff --git a/scripts/lib/fontbuild/instanceNames.py b/scripts/lib/fontbuild/instanceNames.py
index 281eb03..890b5a6 100644
--- a/scripts/lib/fontbuild/instanceNames.py
+++ b/scripts/lib/fontbuild/instanceNames.py
@@ -57,7 +57,7 @@ class InstanceNames:
f.info.versionMajor = version
f.info.versionMinor = versionMinor
f.info.year = self.year
- f.info.copyright = "Font data copyright %s %s" %(self.foundry, self.year)
+ #f.info.copyright = "Font data copyright %s %s" %(self.foundry, self.year)
f.info.trademark = "%s is a trademark of %s." %(self.longfamily, self.foundry)
f.info.openTypeNameDesigner = "Christian Robertson"
diff --git a/scripts/lib/fontbuild/markFeature.py b/scripts/lib/fontbuild/markFeature.py
index 945cef0..395e537 100755
--- a/scripts/lib/fontbuild/markFeature.py
+++ b/scripts/lib/fontbuild/markFeature.py
@@ -43,3 +43,8 @@ class RobotoFeatureCompiler(FeatureOTFCompiler):
["a", "uni0430"], ["e", "uni0435"], ["p", "uni0440"],
["c", "uni0441"], ["x", "uni0445"], ["s", "uni0455"],
["i", "uni0456"], ["psi", "uni0471"]]
+
+
+class RobotoKernWriter(KernFeatureWriter):
+ leftFeaClassRe = r"@_(.+)_L$"
+ rightFeaClassRe = r"@_(.+)_R$"
diff --git a/scripts/run_android_tests.py b/scripts/run_android_tests.py
index 3751670..f6a1f46 100755
--- a/scripts/run_android_tests.py
+++ b/scripts/run_android_tests.py
@@ -19,12 +19,32 @@
import unittest
from nototools.unittests import font_tests
+import run_general_tests
+
FONTS = font_tests.load_fonts(
['out/android/*.ttf'],
expected_count=18)
+class TestMetaInfo(run_general_tests.TestMetaInfo):
+ """Bugs:
+ https://github.com/google/roboto/issues/142
+ """
+
+ loaded_fonts = FONTS
+ mark_heavier_as_bold = True
+
+
+class TestNames(run_general_tests.TestNames):
+ """Bugs:
+ https://github.com/google/roboto/issues/37
+ """
+
+ loaded_fonts = FONTS
+ mark_heavier_as_bold = True
+
+
class TestVerticalMetrics(font_tests.TestVerticalMetrics):
loaded_fonts = FONTS
test_glyphs_ymin_ymax = None
diff --git a/scripts/run_general_tests.py b/scripts/run_general_tests.py
index ddfae17..494651d 100755
--- a/scripts/run_general_tests.py
+++ b/scripts/run_general_tests.py
@@ -24,7 +24,7 @@ from nototools.unittests import font_tests
import roboto_data
FONTS = font_tests.load_fonts(
- ['hinted/*.ttf'],
+ ['out/RobotoTTF/*.ttf', 'out/RobotoCondensedTTF/*.ttf'],
expected_count=18)
UFOS = font_tests.load_fonts(
@@ -44,12 +44,13 @@ class TestItalicAngle(font_tests.TestItalicAngle):
class TestMetaInfo(font_tests.TestMetaInfo):
"""Bugs:
+ https://github.com/google/roboto/issues/142
https://code.google.com/a/google.com/p/roboto/issues/detail?id=8
https://code.google.com/a/google.com/p/roboto/issues/detail?id=29
"""
loaded_fonts = FONTS
- mark_heavier_as_bold = True
+ mark_heavier_as_bold = False
test_us_weight = None
#expected_version = '2.' + roboto_data.get_build_number()
@@ -60,6 +61,20 @@ class TestMetaInfo(font_tests.TestMetaInfo):
expected_os2_achVendID = 'GOOG'
+class TestNames(font_tests.TestNames):
+ """Bugs:
+ https://github.com/google/roboto/issues/37
+ """
+
+ loaded_fonts = FONTS
+ family_name = 'Roboto'
+ mark_heavier_as_bold = False
+ expected_copyright = 'Copyright 2011 Google Inc. All Rights Reserved.'
+
+ def expected_unique_id(self, family, style):
+ return 'Google:%s:2015' % family
+
+
class TestDigitWidths(font_tests.TestDigitWidths):
loaded_fonts = FONTS
@@ -96,8 +111,22 @@ class TestVerticalMetrics(font_tests.TestVerticalMetrics):
class TestGlyphAreas(font_tests.TestGlyphAreas):
- loaded_fonts = UFOS
- masters = UFO_MASTERS
+ master_weights_to_test = ['Thin', 'Bold']
+ instance_weights_to_test = ['Thin', 'Regular', 'Bold']
+ exclude = ['Condensed', 'Italic']
+
+ master_glyph_sets = [
+ f.replace('_', '-') for f in UFO_MASTERS[0]], UFO_MASTERS[1]
+ instance_glyph_sets = FONTS[0], [f.getGlyphSet() for f in FONTS[1]]
+
+ master_glyphs_to_test = UFO_MASTERS[1][0].keys()
+ instance_glyphs_to_test = FONTS[1][0].getGlyphOrder()
+
+ #TODO maybe fix masters so that whitelisting isn't necessary
+ whitelist = [
+ 'uni0488', # offset 20 units b/w masters, interpolated points are off
+ 'uni2050' # has flipped component, so contour is backwards in master
+ ]
if __name__ == '__main__':
diff --git a/scripts/run_web_tests.py b/scripts/run_web_tests.py
index 4f051bf..5d3fd34 100755
--- a/scripts/run_web_tests.py
+++ b/scripts/run_web_tests.py
@@ -53,8 +53,8 @@ class TestNames(font_tests.TestNames):
mark_heavier_as_bold = True
expected_copyright = 'Copyright 2011 Google Inc. All Rights Reserved.'
- def expected_unique_id(self, full_name):
- return full_name
+ def expected_unique_id(self, family, style):
+ return family + ' ' + style
class TestDigitWidths(font_tests.TestDigitWidths):
diff --git a/scripts/touchup_for_android.py b/scripts/touchup_for_android.py
index 187a432..e13adea 100755
--- a/scripts/touchup_for_android.py
+++ b/scripts/touchup_for_android.py
@@ -56,7 +56,7 @@ def apply_android_specific_fixes(font):
hhea.lineGap = 0
# Remove combining keycap and the arrows from the cmap table:
- # https://code.google.com/a/google.com/p/roboto/issues/detail?id=52
+ # https://github.com/google/roboto/issues/99
font_data.delete_from_cmap(font, [
0x20E3, # COMBINING ENCLOSING KEYCAP
0x2191, # UPWARDS ARROW
@@ -68,6 +68,18 @@ def apply_android_specific_fixes(font):
if table in font:
del font[table]
+ # Set bold bits for Black (macStyle bit 0, fsSelection bit 5, subfamily)
+ name_records = font_data.get_name_records(font)
+ family_name = name_records[1]
+ subfam_name = name_records[2]
+ if family_name.endswith('Black'):
+ font['head'].macStyle |= (1 << 0)
+ font['OS/2'].fsSelection |= (1 << 5)
+ font['OS/2'].fsSelection &= ~(1 << 6)
+ new_subfam_name = (
+ ('Bold ' + subfam_name) if subfam_name != 'Regular' else 'Bold')
+ font_data.set_name_record(font, 2, new_subfam_name)
+
def correct_font(source_font_name, target_font_name):
"""Corrects metrics and other meta information."""
diff --git a/scripts/touchup_for_web.py b/scripts/touchup_for_web.py
index 3e29e58..7879d9e 100755
--- a/scripts/touchup_for_web.py
+++ b/scripts/touchup_for_web.py
@@ -47,12 +47,6 @@ def apply_web_specific_fixes(font, family_name):
family_name += ' Condensed'
full_name = family_name + ' ' + subfamily_name
- # macStyle
- bold = subfamily_name.startswith(('Bold', 'Black'))
- italic = subfamily_name.endswith('Italic')
- macStyle = (italic << 1) | bold
- font['head'].macStyle = macStyle
-
# Family, subfamily names
font_data.set_name_record(font, 16, family_name)
style_map = ['Regular', 'Bold', 'Italic', 'Bold Italic']
diff --git a/src/v2/Roboto_Bold.ufo/fontinfo.plist b/src/v2/Roboto_Bold.ufo/fontinfo.plist
index cad5eeb..c0a6068 100644
--- a/src/v2/Roboto_Bold.ufo/fontinfo.plist
+++ b/src/v2/Roboto_Bold.ufo/fontinfo.plist
@@ -7,7 +7,7 @@
<key>capHeight</key>
<integer>1456</integer>
<key>copyright</key>
- <string>Copyright 2014 Google Inc. All Rights Reserved.</string>
+ <string>Copyright 2011 Google Inc. All Rights Reserved.</string>
<key>descender</key>
<integer>-555</integer>
<key>familyName</key>
diff --git a/src/v2/Roboto_Bold.vfb b/src/v2/Roboto_Bold.vfb
index 7c54196..5f81153 100644
--- a/src/v2/Roboto_Bold.vfb
+++ b/src/v2/Roboto_Bold.vfb
Binary files differ
diff --git a/src/v2/Roboto_Regular.ufo/fontinfo.plist b/src/v2/Roboto_Regular.ufo/fontinfo.plist
index 58edbfa..8f7dd23 100644
--- a/src/v2/Roboto_Regular.ufo/fontinfo.plist
+++ b/src/v2/Roboto_Regular.ufo/fontinfo.plist
@@ -7,7 +7,7 @@
<key>capHeight</key>
<integer>1456</integer>
<key>copyright</key>
- <string>Copyright 2014 Google Inc. All Rights Reserved.</string>
+ <string>Copyright 2011 Google Inc. All Rights Reserved.</string>
<key>descender</key>
<integer>-555</integer>
<key>familyName</key>
diff --git a/src/v2/Roboto_Regular.vfb b/src/v2/Roboto_Regular.vfb
index 252e7cb..8c9d12b 100644
--- a/src/v2/Roboto_Regular.vfb
+++ b/src/v2/Roboto_Regular.vfb
Binary files differ
diff --git a/src/v2/Roboto_Thin.ufo/fontinfo.plist b/src/v2/Roboto_Thin.ufo/fontinfo.plist
index 1aac006..e1ba393 100644
--- a/src/v2/Roboto_Thin.ufo/fontinfo.plist
+++ b/src/v2/Roboto_Thin.ufo/fontinfo.plist
@@ -7,7 +7,7 @@
<key>capHeight</key>
<integer>1456</integer>
<key>copyright</key>
- <string>Copyright 2014 Google Inc. All Rights Reserved.</string>
+ <string>Copyright 2011 Google Inc. All Rights Reserved.</string>
<key>descender</key>
<integer>-555</integer>
<key>familyName</key>
diff --git a/src/v2/Roboto_Thin.vfb b/src/v2/Roboto_Thin.vfb
index d3cf141..ee8c2f6 100644
--- a/src/v2/Roboto_Thin.vfb
+++ b/src/v2/Roboto_Thin.vfb
Binary files differ