summaryrefslogtreecommitdiff
path: root/scripts/layout.py
diff options
context:
space:
mode:
authorRoozbeh Pournader <roozbeh@google.com>2015-04-25 18:06:20 -0700
committerRoozbeh Pournader <roozbeh@google.com>2015-04-25 18:25:15 -0700
commit537c5d34214626d6300c5b7ea6df9b0be89f0188 (patch)
tree6b516524f3052c684bad9ea0e704384c83229ce7 /scripts/layout.py
parenta72e363911890d861842aae75f9e9efb1ada1fc1 (diff)
Add parameters to layout.py to pass down to HarfBuzz.
Diffstat (limited to 'scripts/layout.py')
-rw-r--r--scripts/layout.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/scripts/layout.py b/scripts/layout.py
index 91cf8e8..343f359 100644
--- a/scripts/layout.py
+++ b/scripts/layout.py
@@ -18,35 +18,41 @@ import json
from nototools import render
-def _run_harfbuzz(text, font, language):
+def _run_harfbuzz(text, font, language, extra_parameters=None):
"""Run harfbuzz on some text and return the shaped list."""
- hb_output = render.run_harfbuzz_on_text(text, font, language)
+ try:
+ # if extra_parameters is a string, split it into a list
+ extra_parameters = extra_parameters.split(' ')
+ except AttributeError:
+ pass
+ hb_output = render.run_harfbuzz_on_text(
+ text, font, language, extra_parameters)
return json.loads(hb_output)
_advance_cache = {}
-def get_advances(text, font):
+def get_advances(text, font, extra_parameters=None):
"""Get a list of horizontal advances for text rendered in a font."""
try:
- return _advance_cache[(text, font)]
+ return _advance_cache[(text, font, extra_parameters)]
except KeyError:
pass
- hb_output = _run_harfbuzz(text, font, None)
+ hb_output = _run_harfbuzz(text, font, None, extra_parameters)
advances = [glyph['ax'] for glyph in hb_output]
- _advance_cache[(text, font)] = advances
+ _advance_cache[(text, font, extra_parameters)] = advances
return advances
_shape_cache = {}
-def get_glyphs(text, font):
+def get_glyphs(text, font, extra_parameters=None):
"""Get a list of shaped glyphs for text rendered in a font."""
try:
- return _shape_cache[(text, font)]
+ return _shape_cache[(text, font, extra_parameters)]
except KeyError:
pass
- hb_output = _run_harfbuzz(text, font, None)
+ hb_output = _run_harfbuzz(text, font, None, extra_parameters)
shapes = [glyph['g'] for glyph in hb_output]
- _shape_cache[(text, font)] = shapes
+ _shape_cache[(text, font, extra_parameters)] = shapes
return shapes