Commit Graph

120 Commits

Author SHA1 Message Date
Behdad Esfahbod 650ac00da3 Minor refactoring 2012-04-23 13:17:09 -04:00
Behdad Esfahbod f94b0aa646 Add "closure" operation stubs to GSUB
Filling in.
2012-04-23 13:04:38 -04:00
Behdad Esfahbod 71632c96da Fallback to Latin script if the font has no other usable scripts
Patch and description from Jonathan Kew:

It turns out that some legacy Thai fonts provide OpenType substitution
features to implement mark positioning, but (incorrectly) put those
features/lookups under the 'latn' script tag instead of using 'thai' (or
possibly 'DFLT'). See
https://bugzilla.mozilla.org/show_bug.cgi?id=719366 for an example and
more detailed description.

Although this is really a font bug, I suggest that we could improve the
rendering of such fonts by looking for the 'latn' as a fallback if
neither the requested script nor "default" is found in
hb_ot_layout_table_choose_script. Suggested patch against harfbuzz
master is attached.

This does _not_ affect the other kind of legacy Thai font, where custom
code to support vendor-specific PUA codepoints would be needed. I'm not
keen to go down that path; IMO, such fonts should be ruthlessly stamped
out in favour of standards-based solutions. :)

JK
2012-01-22 15:31:44 -05:00
Behdad Esfahbod 7a750ac33e Rename table files from eg maxp-private.hh to maxp-table.hh 2011-08-17 14:19:59 +02:00
Behdad Esfahbod 944b2ba1ce [buffer] Make API take signed int length
Since we already switched to accepting -1 as 'zero-terminated'.
2011-08-09 00:23:58 +02:00
Behdad Esfahbod 3897335c76 [API] Sort out get_blob API
hb_face_get_blob() renamed to hb_face_reference_blob(), returns a
reference now.

hb_face_[sg]et_index() added.

hb_face_set_upem() added.
2011-08-08 23:37:41 +02:00
Behdad Esfahbod c605bbbb6d Remove C++ guards from source files
Where causing issues for people with MSVC.
2011-08-04 20:00:53 -04:00
Behdad Esfahbod c47a31fb47 [OT] Save chosen script tag 2011-07-30 20:57:01 -04:00
Behdad Esfahbod a9ad3d3460 Move more code around
Buffer var allocation coming into shape
2011-07-28 15:42:18 -04:00
Behdad Esfahbod 651e8dd79e Start cleaning up buffer var allocation
I've messed up a lot of stuff recently, different parts of the
shaping process are stumbling on eachother's toes because
manually tracking what's in which buffer var is hard.  I'm
going to add some internal API to track those such that mistakes
are discovered as soon as they are introduced.
2011-07-25 14:54:08 -04:00
Behdad Esfahbod b9452bfc16 Fix compiler warnings with -pedantic 2011-06-14 14:47:07 -04:00
Behdad Esfahbod 46d6a21cc8 [API] Add hb_ot_layout_substitute_start/finish() 2011-05-11 22:33:13 -04:00
Behdad Esfahbod 6a4e7e1372 Add maxp table
Not used for anything right now.  Will use to get num_glyphs in the future.
2011-05-11 10:31:33 -04:00
Behdad Esfahbod abcfe9b59b Remove hb_ot_layout_context_t, simplify code 2011-05-11 00:02:02 -04:00
Behdad Esfahbod 1c9f8717eb [API] Simplify blob API, remove lock 2011-05-06 22:59:42 -04:00
Behdad Esfahbod 266b34418c Refactor to keep hb-object-private.h and hb-open-type.h separate
Needed to be able to include <Windows.h> from hb-object-private.h.
2011-05-03 00:35:53 -04:00
Behdad Esfahbod 72657e4ce7 [API] Make hb_font_create() take a face and reference it 2011-05-02 20:47:23 -04:00
Behdad Esfahbod 2409d5f8d7 Update Copyright headers 2011-04-21 17:14:28 -04:00
Behdad Esfahbod c035812feb [API] Rename hb_face_get_table() to hb_face_reference_table()
That correctly reflects the reference ownership transfer happening.
2011-04-20 17:03:00 -04:00
Behdad Esfahbod 8f0d7e0c3f Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start() 2011-04-15 19:08:43 -04:00
Behdad Esfahbod 4a2d844c2f Minor code shuffling 2010-11-03 15:28:56 -04:00
Behdad Esfahbod c2709119c8 Move things around some more 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 1e7c1fcbc3 Move code around 2010-11-02 19:12:59 -04:00
Behdad Esfahbod bf94b3ad22 Move some more code around 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 6334658fe7 Simplify mark skipping logic 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 8c69e65abe Rename lookup_flags to lookup_props since it's more than just flags 2010-11-02 19:12:59 -04:00
Behdad Esfahbod 98370e89d1 WIP removing external synthesized GDEF support and implementing it internally 2010-11-02 19:12:58 -04:00
Behdad Esfahbod 88474c6fda Get rid of the OpenType-specific internal buffer representation
Add variant integers to buffer item types.  More cleanup coming.
2010-11-02 19:12:58 -04:00
Behdad Esfahbod 13528d0c78 Supposedly implement vertical support in GPOS
Not tested at all.
2010-10-27 14:09:27 -04:00
Behdad Esfahbod 9624de5b49 Clarify cursive_chain (and change its sign) 2010-10-27 13:44:59 -04:00
Behdad Esfahbod e204674fe3 Rename hb_ot_layout_get_lig_carets() to hb_ot_layout_get_ligature_carets() 2010-10-27 12:32:02 -04:00
Behdad Esfahbod 3357d145f8 Implement vertical support in get_lig_carets() 2010-10-27 12:30:46 -04:00
Behdad Esfahbod dca8aff246 Add comment re DejaVu Sans Mono having 'dflt' script 2010-09-28 16:25:45 -04:00
Behdad Esfahbod 9ea7368fce Fix hb_ot_layout leak 2010-09-22 17:38:44 -04:00
Behdad Esfahbod ed4acbde9c Fix NULL dereference
Reported by Jonathan Kew.  Face table handling needs to be redone
anyway, but fix this for now.
2010-08-16 14:36:27 -04:00
Behdad Esfahbod 4e4ef24e46 Towards separating bit allocation from shaping 2010-07-23 17:22:11 -04:00
Behdad Esfahbod acdba3f90b Prefer C linkage 2010-07-23 15:39:27 -04:00
Behdad Esfahbod 0a4399ca22 Fix scale issues
hb_font_set_scale() now sets the value to be used to represent a unit
pixel.  For example, if rendering a 10px font with a 26.6 representation,
you would set scale to (10 << 6).  For 10px in 16.16 you would set it to
(10 << 16).  This space should be the same space that the get_glyph_metrics
and get_kerning callbacks work in.
2010-05-19 15:45:06 -04:00
Behdad Esfahbod f415755fdf Minor 2010-05-17 15:14:14 -04:00
Behdad Esfahbod d7cfb3b2d1 s/\<context\>/c/g 2010-05-13 14:18:49 -04:00
Behdad Esfahbod 22da7fd94d Rename a few files to be C++ sources
In anticipation for buffer revamp coming.
2010-05-12 18:23:21 -04:00
Behdad Esfahbod b5db4f1e4e Clean up NO_INDEX 2010-05-10 22:22:22 -04:00
Behdad Esfahbod b435ab7e29 Fix accessing tables from NULL pointer 2010-05-10 19:51:57 -04:00
Behdad Esfahbod 64d3fc8d0d Cosmetic: Rename HB_LIKELY/HB_UNLIKELY to likely/unlikely 2010-05-03 22:51:19 -04:00
Behdad Esfahbod 33d13fdda9 Rename HB_GNUC_UNUSED -> HB_UNUSED 2010-04-29 13:56:44 -04:00
Behdad Esfahbod 990443e5f2 Remove lock_instance() 2010-04-23 17:53:32 -04:00
Behdad Esfahbod 4206e9511a More warning fixes 2010-04-23 14:54:01 -04:00
Behdad Esfahbod c755cb3e3a Change header comment 2010-04-22 00:11:43 -04:00
Behdad Esfahbod 555d11273e [GDEF] Fix bug in building synthetic GDEF 2010-01-26 12:58:59 -05:00
Behdad Esfahbod 2014b8d110 Hook OpenType shaping up
Default features only for now.
2009-12-20 20:58:26 +01:00