Commit Graph

210 Commits

Author SHA1 Message Date
Behdad Esfahbod
47ee34e847 [var] Hook up variations to FreeType face
hb-view correctly renders variations with ft font-funcs now.
hb-ot-font needs HVAR implementation.
2017-01-21 18:10:08 -08:00
Behdad Esfahbod
111f3e5517 [util] Add --variations
Is hooked up to the font, but not to FreeType, so raster doesn't show yet.

Documentation needs to be done.
2017-01-21 17:51:41 -08:00
Behdad Esfahbod
de508516cb [util] Print out --debug buffer to stderr 2016-04-26 11:28:37 -07:00
Chun-wei Fan
35ded3af74 build: Move source listings into separate Makefile snippets
This moves all the source listings in src/Makefile.am,
src/hb-ucdn/Makefile.am and util/Makefile.am into separate Makefile
snippets, so that they may be shared between different Makefile-based
build systems, such as NMake for Visual Studio.
2016-02-03 18:14:29 +08:00
Behdad Esfahbod
0475ef2f97 [buffer] Add debugging, aka, message, API
Currently just announces lookup applications.  Message-API *will* change.
hb-shape / hb-view are updated to print-out messages to stder if --debug
is specified.
2015-12-18 19:29:06 +00:00
Behdad Esfahbod
21e5d7edc4 [util] Use O_BINARY instead of _O_BINARY
The latter doesn't seem to be available in Cygwin.  I'm surprised it
compiled before...
2015-12-17 16:28:38 +00:00
Behdad Esfahbod
808d3fc0ea [util] Port hb-view to use font metrics from HarfBuzz instead of cairo 2015-12-10 16:55:16 +01:00
Chun-wei Fan
a49e7b7e40 MSVC builds: Add fallback implementation for pre-2013 MSVC
Pre-2013 MSVC does not have scalbn() and scalbnf(), which are used in the
utility programs.  Add  fallback implementations for these, which can be
used when necessary.
2015-11-16 23:04:36 +08:00
Chun-wei Fan
998e8dda93 util: Fix build on Visual Studio
Use the fallback implementation for lround() only on pre-2013 Visual
Studio, and ensure we are clear about the types of the parameters for
lround() and scalbnf(), since Visual Studio can be quite picky on
ambiguous parameter types.  Also, use g_ascii_strcasecmp() rather than
strcasecmp() as we are already using GLib for this code and we are
assured that g_ascii_strcasemp() is available.

For scalbnf() on pre-2013 Visaul Studio, a fallback implementation is
needed, but use another forced-included header for those compilers, which
will be added later.

Also use (char)27 on Visual Studio builds as '\e' is not a recognized
escape sequence, which will do the same thing.
2015-11-16 23:04:35 +08:00
Behdad Esfahbod
e97835ad43 [util] Fix crash when --output-file is specified but not --output-format 2015-11-10 11:37:01 -08:00
Behdad Esfahbod
6c0ebd02c9 [util] If font has color, generate PNG with color 2015-11-05 11:37:48 -08:00
Behdad Esfahbod
3530cc2d7c [util] Fix option-parsing leaks 2015-11-03 12:13:28 -08:00
Behdad Esfahbod
642135f3b2 [util] In --debug mode, duplicate font data
This has the effect that the font data will end up in a memory
section malloc()ed exactly to its size.  This gives us better
valgrind detection of out-of-bounds access.

Previously, the font data was placed in a mmap()ed section or
GString-allocated area, which didn't have proper protections
at the end when running under valgrind.
2015-11-03 11:26:34 -08:00
Behdad Esfahbod
fdd1770e00 Add API/cmdline to show glyph extents when serializing buffer
New API: HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS

hb-shape now accepts --show-extents.

Patch from Simon Cozens.
2015-08-24 13:49:55 +01:00
Behdad Esfahbod
376d587f36 Implement more granular cluster-merging
TODO: Documentation.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71445
2015-07-22 16:51:12 +01:00
Behdad Esfahbod
cd042fc8c4 [util] Disable hb-fc-list for now
Until I figure out what to do about the API, and finalize
the tool.
2015-06-18 11:07:52 -07:00
Behdad Esfahbod
16dac7eccf Fix build 2015-06-03 12:07:46 -07:00
Behdad Esfahbod
ff0f210519 [util] Minor 2015-05-18 18:37:46 -07:00
Behdad Esfahbod
820505a186 Whitespace 2015-04-13 23:51:45 -07:00
Behdad Esfahbod
76d5733111 Merge pull request #86 from cpfair/hb-shape-output-help-improvement
Improve hb-shape/hb-view's help text w.r.t. output options
2015-04-13 23:40:35 -07:00
Behdad Esfahbod
fe97b65a54 [utils] Add hb-fc-list
This is a tool that lists all fonts that can render a given string.
It uses hb_shape() to do so, and as such is aware of HarfBuzz's
normalizer.
2015-04-09 19:16:57 -07:00
Behdad Esfahbod
e8fd83932a [util/hb-view] Fix rendering with all combinations of negative scales 2015-04-09 15:52:26 -07:00
Behdad Esfahbod
69d5af9316 [util] Minor 2015-04-09 15:17:16 -07:00
Behdad Esfahbod
a664810e38 [util] Accept comma as well as space when separating components of args
Applies to --font-size and --margin.

Hopefully the scanf usage here doesn't have compatibility issues
(star being counted in the return value, etc).
2015-04-09 15:05:07 -07:00
Behdad Esfahbod
e2d4e8480d [util] Add convenience "make lib" target 2015-02-25 15:43:24 -08:00
Collin Fair
9ee176ee97 Stop hb-shape docs leaking into hb-view 2015-02-14 09:59:44 -05:00
Collin Fair
952b8dbdf6 'All' of the above, not 'each' 2015-02-14 09:45:20 -05:00
Collin Fair
9e867b6446 Remove reference to --help-output-content in --help-output (as --help-output-format's options aren't available in hb-view) 2015-02-14 09:32:50 -05:00
Collin Fair
1d55ffeb66 Add serialization syntax documentation. Clarify naming and wording in --help-output/--help-format 2015-02-14 09:29:35 -05:00
Behdad Esfahbod
cd4eb96abb [util] Add --font-size to hb-shape
Also makes hb-view to use 8 bits of subpixel precision and shape at
requested size, instead of always shaping at upem and scaling results.
2015-01-20 12:45:13 -08:00
Behdad Esfahbod
5789ca69d7 [util] Minor 2015-01-20 12:45:13 -08:00
Behdad Esfahbod
c36c4a9924 Add missing va_end()
Fixes https://github.com/behdad/harfbuzz/pull/74
2015-01-02 14:09:23 -08:00
Behdad Esfahbod
80f7728226 [util] Fix ansi output when surface is empty 2014-09-25 17:59:46 +03:00
Behdad Esfahbod
0de25d4184 [util] Note CSS compatibility in --help-features 2014-07-25 12:35:03 -04:00
Behdad Esfahbod
0afedaa96c [util/hb-shape] Fix crash; oops 2014-07-09 17:00:48 -04:00
Behdad Esfahbod
9109f1e944 [util/hb-shape] Accept an empty output-format that would skip output
Useful for benchmarking, to avoid buffer serialization overhead (which
seems to by far dominate shaping!)
2014-07-08 20:02:29 -04:00
Behdad Esfahbod
8656408572 [util] Fix hb-view rendering with --font-funcs=ot 2014-07-08 18:10:20 -04:00
Behdad Esfahbod
8650def735 [util] Add option to set font function implementation to use
Supports ft and ot right now.  hb-view currently not rendering with ot.
Will fix after some clean up.
2014-07-05 15:51:25 -04:00
Behdad Esfahbod
2306ad46dc [util] Fix memory issue 2014-07-04 18:09:29 -04:00
Behdad Esfahbod
903648437c Start fleshing out builtin font functions 2014-03-24 15:19:15 -07:00
Behdad Esfahbod
ea5e8a02eb [util] Plug minor leak 2014-03-19 15:38:02 -07:00
Behdad Esfahbod
d688475ea9 Minor 2013-12-12 13:21:57 -05:00
Behdad Esfahbod
adb039554d Minor 2013-12-04 20:10:27 -05:00
Behdad Esfahbod
c704a8700e [util] Fix uninitialized memory access 2013-12-02 05:42:04 -05:00
Behdad Esfahbod
260a3198f4 [util] Plug leak 2013-12-02 05:39:39 -05:00
Behdad Esfahbod
c77d1ade68 Fix warnings 2013-10-27 23:53:55 +01:00
Behdad Esfahbod
c2bc818706 Work with old and new glib
Avoids "deprecated" warnings.
2013-10-27 23:37:14 +01:00
Behdad Esfahbod
9326d48e43 Don't use g_mapped_file_unref()
Was introduced in glib 2.22.
2013-10-10 20:04:42 +02:00
Behdad Esfahbod
078de49ca1 [util] Don't use g_array_unref()
Was introduced in glib 2.22.
2013-09-26 18:26:43 -04:00
Behdad Esfahbod
4dc798de19 Add hb-deprecated.h, and rename a couple enum values
Add deprecated alias for old name.
2013-08-27 11:46:08 -04:00
Behdad Esfahbod
5fbc952524 Fix glyph name printing in hb-ot-shape-closure 2013-07-29 14:34:40 -04:00
Behdad Esfahbod
7235f33f9e Fix misc warnings reported by cppcheck
https://bugs.freedesktop.org/show_bug.cgi?id=65544
2013-06-10 15:08:49 -04:00
Chun-wei Fan
b4c5c52944 util/ansi-print.cc: Use fallback implementation for lround on MSVC
Unfortuately Visual Studio (still) does not support the C99 function
lround, so provide a fallback implementation for it.
2013-06-03 18:50:26 -04:00
Behdad Esfahbod
e4046080c5 [util] Unbreak --show-text / --show-unicode 2013-04-17 23:49:54 -04:00
Behdad Esfahbod
50067e280f [util] Add --num-iterations
Useful for profiling shapers.
2013-04-11 16:31:01 -04:00
Behdad Esfahbod
c462b32dcb Disable automatic segment properties guessing
Before, if one called hb_shape() without setting script, language, and
direction on the buffer, hb_shape() was calling
hb_buffer_guess_segment_properties() on the user's behalf to guess
these.

This is very dangerous, since any serious user of HarfBuzz must set
these properly (specially important is direction).  So now, we don't
guess properties by default.  People not setting direction will get
an abort() now.  If the old behavior is desired (fragile, good for
simple testing only), users can call
hb_buffer_guess_segment_properties() on the buffer just before calling
hb_shape().
2013-02-15 07:51:47 -05:00
Behdad Esfahbod
e2aab4b5db Improve checks for setmode()
As reported by Jonathan, OS X has setmode() that is something other
than what setmode() is on Win32.  So, limit invocation to Windows
platforms only.
2013-02-12 15:35:32 -05:00
Behdad Esfahbod
ceeae30f47 Really fix setmode this time
Thanks to Khaled for spotting it.
2013-01-31 19:27:36 -05:00
Behdad Esfahbod
7cba8a673b Fixup previous commit
Now, it looks like this breaks Cygwin again.  Have to figure out what's
going on.
2013-01-31 18:37:10 -05:00
Behdad Esfahbod
bc76449f51 Use setmode() instead of _setmode()
Looks like Cygwin / MSVC declare it that way, and it still works on
MinGW32 cross.
2013-01-31 18:18:05 -05:00
Behdad Esfahbod
1172dc7362 Rename hb_buffer_clear() to hb_buffer_clear_contents()
The previous name was clashing with harfbuzz.old.  There are systems
that need to link both...

Clash-free now again.
2013-01-07 16:46:37 -06:00
Behdad Esfahbod
4a765f092d Minor 2012-12-21 16:48:47 -05:00
Behdad Esfahbod
9815a88111 [util] List supported output formats in --help output 2012-12-21 16:46:53 -05:00
Behdad Esfahbod
f95a87b7b8 [util] List supported output formats in hb-view 2012-12-21 16:35:28 -05:00
Behdad Esfahbod
6bad092aa8 [util] Default to "text" output format in hb-shape
If you say:

  hb-shape font.ttf text --output-file out.txt

This was previously failing:

  Unknown output format `txt'; supported formats are: TEXT / JSON

Now we simply fallback to TEXT if no explicit format was requested.
2012-12-21 16:01:52 -05:00
Behdad Esfahbod
9a34a50daa Fix build with C++11 2012-12-05 19:18:18 -05:00
Behdad Esfahbod
75da37dcb1 Minor 2012-11-15 18:39:23 -08:00
Behdad Esfahbod
aec89de564 Add / modify set API a bit 2012-11-15 16:15:42 -08:00
Behdad Esfahbod
a4bef84e37 [util] Make hb-shape err if output-format is not understood
And list supported formats.
2012-11-15 13:29:51 -08:00
Behdad Esfahbod
f9edf16725 Add buffer serialization / deserialization API
Two output formats for now: TEXT, and JSON.  For example:

  hb-shape --output-format=json

Deserialization API is added, but not implemented yet.
2012-11-15 13:10:07 -08:00
Behdad Esfahbod
407f80d625 [util] Add --bot / --eot / --preserve-default-ignorables 2012-11-13 15:33:27 -08:00
Behdad Esfahbod
78d41d8d69 Minor 2012-11-13 15:15:09 -08:00
Behdad Esfahbod
321f73c16e [util] Add --text-before and --text-after to hb-shape / hb-view
Use with Arabic, for example, to see the effect on joining.
2012-11-13 15:12:24 -08:00
Behdad Esfahbod
c8149ca85e [hb-shape] Adjust postioning output format
1. If there is any offset (x or y), print out both x and y offsets.

2. Always print out the advance in the major direction of the buffer.
Ie. even for zero-advance glyphs, print a "+0".  This is more intuitive.
2012-11-13 11:07:20 -08:00
Behdad Esfahbod
3bc22eb7b8 Minor 2012-11-12 10:07:28 -08:00
Behdad Esfahbod
e30ebd2794 Add hb_feature_to/from_string() 2012-09-06 22:09:06 -04:00
Behdad Esfahbod
6f3a300138 Add hb_font_glyph_from/to_string 2012-08-07 22:13:25 -04:00
Behdad Esfahbod
ade7459ea7 [util] Fix leaks 2012-08-06 19:49:42 -07:00
Behdad Esfahbod
bdc48a879a Enlarge glyph_name buffer
Lohit Devanagari has a glyph named:
u0924_u094D.half_u0930_u094D.blwf.vatu
2012-08-04 17:08:38 -07:00
Behdad Esfahbod
39b17837b4 Add hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs
This reorders glyphs within the cluster to a nominal order.  This should
have no visible effect on the output, but helps with testing, for
getting the same hb-shape output for visually-equal glyphs for each
cluster.
2012-07-17 17:09:29 -04:00
Behdad Esfahbod
6a5661f1e6 Ugh 2012-06-09 03:26:16 -04:00
Behdad Esfahbod
f211d5c291 More Oops! Fix fast-path with sub-type==0 2012-06-09 03:11:22 -04:00
Behdad Esfahbod
a18280a8ce Fix warnings produced by clang analyzer 2012-06-07 15:44:12 -04:00
Behdad Esfahbod
7ec83051c0 Fix warnings 2012-06-07 13:32:57 -04:00
Behdad Esfahbod
0594a24484 Cleanup TRUE/FALSE vs true/false 2012-06-05 20:35:40 -04:00
Behdad Esfahbod
4a8a529068 Make hb-view err if all shapers failed 2012-06-05 19:17:02 -04:00
Behdad Esfahbod
c188548312 Add --verbose to hb-shape
Just turns all --show-* options on.
2012-06-04 09:09:59 -04:00
Behdad Esfahbod
ae62166519 [util] Minor 2012-06-02 12:21:19 -04:00
Behdad Esfahbod
5db0683a82 [util] Make hb-shape continue shaping other lines if shapers failed 2012-06-02 12:13:08 -04:00
Behdad Esfahbod
cd6a549341 Remove unused variable 2012-06-01 13:45:25 -04:00
Behdad Esfahbod
bce095524b Add hb_font_get_glyph_name() and hb_font_get_glyph_from_name() 2012-05-28 10:45:50 -04:00
Behdad Esfahbod
8f8956a55f [util] Add hidden --shaper that is equivalent of --shapers 2012-05-25 14:30:24 -04:00
Behdad Esfahbod
29ce446d31 Add set iterator 2012-05-25 14:17:54 -04:00
Behdad Esfahbod
c87b317f0e [util] Add hb-ot-shape-closure tool
Computes all the glyphs that may be generated given a font and
set of Unicode characters.

The order of the Unicode characters is irrelevant.

Sample output:

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf f
f f_f

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf i
i

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf fi
f f_i f_f_i f_f i

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ب
uni0628 uni0628.init uni0628.medi uni0628.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ا
uni0627 uni0627.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با
uni0627 uni0627.fina uni0628 uni0628.init uni0628.medi uni0628.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با --no-glyph-names
5 6 133 134 135 136
2012-05-15 23:53:18 -04:00
Behdad Esfahbod
45675e589e [util] Refactor to accommodate for upcoming new tool 2012-05-15 23:10:39 -04:00
Behdad Esfahbod
8caf5dcd66 Minor 2012-05-13 17:10:18 +02:00
Behdad Esfahbod
50f630c17c Remove ioctl checks
Ended up not using terminal size after all.
2012-05-13 13:03:44 +02:00
Behdad Esfahbod
db0de7cd61 [util] Set ansi color only on color change 2012-05-13 13:02:38 +02:00
Behdad Esfahbod
912c5ff80a Reduce default margin 2012-05-13 12:51:02 +02:00
Behdad Esfahbod
52e7b1424a [util] Make hb-view print out Unicode art if stdout is a terminal 2012-05-13 07:55:00 +02:00