Behdad Esfahbod
0291a65286
Further adjust mark advance zeroing
...
This is a followup to 568000274c
.
Looks like in the Latin shaper, Uniscribe zeroes all Unicode NSM
advances *after* GPOS, not before. Match that.
Can be tested using DejaVu Sans Mono, since that font has GPOS
rules to zero the mark advances on its own.
2013-02-13 05:57:24 -05:00
Behdad Esfahbod
85c51ec2e1
[Indic] Fix Eyelash Ra with old Devanagari spec
2013-02-12 18:17:39 -05:00
Behdad Esfahbod
63e48bc33b
[Indic] Apply 'blwf' before 'half'
...
This reverts 167b625d98
. It didn't
matter before, but that's going to change with next commit.
2013-02-12 18:02:07 -05:00
Behdad Esfahbod
70d6565711
[Indic] Apply 'vatu' before 'cjct'
...
This essentially reverts 1d6846db9e
,
but that commit is from way back when. We should be better
following the spec order now again.
2013-02-12 18:02:07 -05:00
Behdad Esfahbod
f9b660534c
[Myanmar] Use master Indic table for syllable data
2013-02-12 16:13:56 -05:00
Behdad Esfahbod
a6c1e040e5
Improve check for Windows platforms
...
Instead of checking for compiler, check for platform.
2013-02-12 15:31:58 -05:00
Behdad Esfahbod
9e1f80ab3e
[SEA] Treat Consonant_Final like Consonant_Medial
2013-02-12 15:28:21 -05:00
Behdad Esfahbod
bab02d339f
Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS
...
The Myanmar shaper now respects the uniscribe-bug-compatibility
option too.
2013-02-12 15:26:45 -05:00
Behdad Esfahbod
3a83d33ec0
Add South-East Asian shaper
...
Handles Tai Tham, Cham, and New Tai Lue for now.
2013-02-12 12:14:10 -05:00
Behdad Esfahbod
5676d5d527
[Indic] Make sure New Tai Lue works!
2013-02-12 10:31:14 -05:00
Behdad Esfahbod
568000274c
Adjust mark advance-width zeroing logic for Myanmar
...
Before, we were zeroing advance width of attached marks for
non-Indic scripts, and not doing it for Indic.
We have now three different behaviors, which seem to better
reflect what Uniscribe is doing:
- For Indic, no explicit zeroing happens whatsoever, which
is the same as before,
- For Myanmar, zero advance width of glyphs marked as marks
*in GDEF*, and do that *before* applying GPOS. This seems
to be what the new Win8 Myanmar shaper does,
- For everything else, zero advance width of glyphs that are
from General_Category=Mn Unicode characters, and do so
before applying GPOS. This seems to be what Uniscribe does
for Latin at least.
With these changes, positioning of all tests matches for Myanmar,
except for the glitch in Uniscribe not applying 'mark'. See preivous
commit.
2013-02-12 09:44:57 -05:00
Behdad Esfahbod
99749ca8e0
[Myanmar] Add note re Uniscribe NOT applying 'mark'
2013-02-12 09:44:35 -05:00
Behdad Esfahbod
b842780138
Minor
2013-02-11 17:02:17 -05:00
Behdad Esfahbod
419c933ed1
[Myanmar] Fix handling of Punctuation and Symbol types
...
Testing with "clusters" now on par with testing without them. 15
failures both.
2013-02-11 16:16:16 -05:00
Behdad Esfahbod
0572c1410a
[Myanmar] Fixup handling of joiners and GB characters
2013-02-11 16:16:07 -05:00
Behdad Esfahbod
1c8654ead4
[Myanmar] Prevent reordering between Asat and Dot below
...
Implemented as a hack for now. Myanmar failures down from 23 to 15.
MYANMAR: 1123868 out of 1123883 tests passed. 15 failed (0.00133466%)
The remaining 15 cases are all where the syllable is wrong according to
the OpenType spec. We insert dottedcircle. Uniscribe fails to do that,
but it also fails to reorder the prebase-reordering medial-Ra. So it
gets it wrong.
2013-02-11 14:28:59 -05:00
Behdad Esfahbod
98628cac9f
Add Win8-style Myanmar shaper
...
Myanmar failures down from 51% to 0.00204648%!
MYANMAR: 1123860 out of 1123883 tests passed. 23 failed (0.00204648%)
2013-02-11 14:20:08 -05:00
Behdad Esfahbod
1df5644958
Minor
2013-02-11 14:18:09 -05:00
Behdad Esfahbod
54f7b4d9ec
[OTLayout] Respect lookup-flags skipping over non-mark glyphs
...
Before, when matching ligatures, we never skipping over base / liga
glyphs even if that was what the LookupFlags asked for.
Fixed now. We carefully reviewed all instances of this, and tested with
Amiri as well as some Indic scripts, and are confident that this should
NOT break anyone's fonts. It's also how Uniscribe does it, from what
we can tell.
2013-02-11 13:27:17 -05:00
Behdad Esfahbod
9082efc4aa
[OTLayout] s/mark_skipping/skipping/
...
In aticipation of upcoming changes.
2013-02-11 13:14:56 -05:00
Behdad Esfahbod
9621e0ba29
[Indic] Fix bug introduced in 8b217f5ac5
...
Was breaking reph formation logic when the Ra is the only consonant.
Devanagari regression fixed. Down to 57 failures again. Ouch.
2013-02-11 12:59:36 -05:00
Behdad Esfahbod
6e74c64211
Improve normalization heuristic
...
Before, for most scripts, we were not trying to recompose two characters
if the second one had ccc=0. That fails for Myanmar where U+1026
decomposes to U+1025,U+102E, both of which have ccc=0. However, we do
want to try to recompose those. We now check whether the second is a
mark, using general category instead.
At the same time, remove optimization that was conflicting with this.
[Let the Ngapi hackfest begin!]
2013-02-11 12:59:00 -05:00
Behdad Esfahbod
adff377815
Revert "[Indic] Import ragel-generated Indic machine in git"
...
This reverts commit fab7a71f11
.
Conflicts:
src/hb-ot-shape-complex-indic-machine.hh
Keeping that generated file in-tree causes problems with processes like
tinderbox that automatically fetch and build harfbuzz. It's harder to
bootstrap harfbuzz now (as was previously), but I'm willing to give this
another chance and see how it goes.
2013-02-06 23:43:27 -05:00
Behdad Esfahbod
9de5f98f36
Bug 60035 - intermittent make install failure on hb-version.h
2013-02-04 23:28:22 -05:00
Behdad Esfahbod
6c1e8b614c
Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh fail on mips/mipsel
2013-02-04 23:24:16 -05:00
Behdad Esfahbod
bafdf3d983
Merge check-internal-symbols.sh and check-exported-symbols.sh
2013-02-04 23:06:50 -05:00
Behdad Esfahbod
e9171af55c
Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used
2013-01-29 22:45:00 -05:00
Behdad Esfahbod
eb45c0a2fb
Minor
2013-01-16 22:07:50 -06:00
Behdad Esfahbod
52c8d1226f
Minor
2013-01-14 13:51:46 -06:00
Behdad Esfahbod
f88d3bd7e4
Fix build with Sun compiler
2013-01-14 00:33:58 -06:00
Behdad Esfahbod
08b29c0809
Revert "Minor"
...
This reverts commit 0a49235701
.
Enables code on more compilers.
2013-01-14 00:32:12 -06:00
Behdad Esfahbod
e78463211e
Fix linking with non-gcc compilers
2013-01-14 00:27:21 -06:00
Behdad Esfahbod
de649f07f1
Fix residuals from fontconfig changes
2013-01-14 00:26:43 -06:00
Behdad Esfahbod
2dcb333f52
Add atomic ops for Solaris
...
Based on fontconfig patch from Raimund Steger.
2013-01-10 01:18:10 -06:00
Behdad Esfahbod
69fd6e157c
Fix crasher during multi-thread shaper data creation
...
Sample crash:
0 _hb_graphite2_shaper_face_data_destroy (data=0xffffffffffffffff)
at ../../src/hb-graphite2.cc:129
1 0x00007ffff4271d7d in hb_graphite2_shaper_face_data_ensure (
face=<optimized out>) at ../../src/hb-shaper-list.hh:35
2 hb_shape_plan_plan (shaper_list=<optimized out>, num_user_features=0,
user_features=0x0, shape_plan=0xf7b490) at ../../src/hb-shaper-list.hh:35
3 hb_shape_plan_create (face=<optimized out>, props=<optimized out>,
user_features=0x0, num_user_features=0, shaper_list=<optimized out>)
at ../../src/hb-shape-plan.cc:108
4 0x00007ffff4272c93 in hb_shape_plan_create_cached (face=0x10cf2b0,
props=0x11980d8, user_features=0x0, num_user_features=<optimized out>,
shaper_list=0x0) at ../../src/hb-shape-plan.cc:283
2013-01-10 00:03:36 -06:00
Behdad Esfahbod
ecd454b3cd
[Indic] In old-spec shaping, don't move viramas around if seq ends with one
...
For example: u0c9a u0ccd u0c9a u0ccd with Lohit. See:
https://bugs.freedesktop.org/show_bug.cgi?id=59118
2013-01-08 18:09:46 -06:00
Behdad Esfahbod
e95e031b56
[GPOS] If an Anchor offset is NULL, return false
...
If in a MarkPos table, a base has no anchor for a particular mark class,
return NULL such that the subsequent subtables get a chance at it.
Test case:
hb-shape ./EBGaramond12-Regular.otf ἂ --features="ss20","smcp"
2013-01-08 16:17:06 -06: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
7b912c1936
Remove a few unnecessary const's
...
Apparently helps with MSVC compilation.
2013-01-04 01:25:27 -06:00
Behdad Esfahbod
f0c82410db
[OTLayout] Always collect default language system in collect_lookups
...
Not sure if this is the most desired behavior. It's the most easily
defined though.
2013-01-03 00:07:16 -06:00
Behdad Esfahbod
15e9e4e1dd
[OTLayout] Fix feature iteration in collect_lookups
...
Previous logic was just wrong.
2013-01-03 00:04:40 -06:00
Behdad Esfahbod
733e8c0d7b
[OTLayout] Whitespace
2013-01-03 00:00:23 -06:00
Behdad Esfahbod
d37ae38047
[OTLayout] Handle required_feature_index in collect_lookups
2013-01-02 23:57:36 -06:00
Behdad Esfahbod
11fba79ee9
[OTLayout] Fix various introspection issues with ClassDef's
...
As reported by Jonathan Kew.
2013-01-02 23:36:37 -06:00
Behdad Esfahbod
7b1b720a8d
Protect sets in-error from further modication
...
Fixes test-set.c
2013-01-02 23:02:59 -06:00
Behdad Esfahbod
8165f2765b
[tests] Start adding tests for hb-set.h
...
Fails now. Fixing.
2013-01-02 22:50:36 -06:00
Behdad Esfahbod
11d2956553
Minor
2013-01-02 17:41:27 -06:00
Behdad Esfahbod
596740db04
[Indic] Insert dottedcircle after a lone Malayalam dot-reph
2012-12-21 19:41:04 -05:00
Behdad Esfahbod
6f69fa283e
Minor
2012-12-21 16:51:15 -05:00
Behdad Esfahbod
f4abcbfc62
Minor
2012-12-21 16:48:51 -05:00
Behdad Esfahbod
8b217f5ac5
[Indic] Reorder Malayalam dot-reph to after base
...
Test sequence is simple: U+0D4E,U+0D15. The doth-reph should be
reordered to after the Ka.
https://bugzilla.redhat.com/show_bug.cgi?id=799565
2012-12-21 15:49:26 -05:00
Behdad Esfahbod
742c4ee97e
Minor
2012-12-21 15:35:03 -05:00
Behdad Esfahbod
044d385276
Bug 58498 - Tests fail with gold linker on ARM
2012-12-19 13:00:16 -05:00
Behdad Esfahbod
b68b86daf1
Use C++ linker if ICU is disabled
...
Bug 54948 - Undefined symbols: "operator delete(void*)" "operator
new(unsigned long)" "___cxa_pure_virtual"
2012-12-18 20:39:40 -05:00
Behdad Esfahbod
1ffd23cb47
[OTLayout] Limit alternate-location FeatureParams to 'size' feature
2012-12-17 23:29:15 -05:00
Behdad Esfahbod
efe252e600
[OTLayout] Fix 'size' featureParams implementation
...
Looks at alternate location now.
2012-12-17 23:25:57 -05:00
Behdad Esfahbod
e77b442574
[OTLayout] Fix tracing
2012-12-17 18:42:59 -05:00
Behdad Esfahbod
9b54562d63
[OTLayout] Towards correct FeatureParams handling
2012-12-17 13:55:36 -05:00
Behdad Esfahbod
87e43b7f2b
[OTLayout] Wire tag and list start all the way to Feature
...
To fix FeatureParam issues. No actual fix yet, just plumbing.
2012-12-14 17:48:23 -05:00
Behdad Esfahbod
85bc44b90a
[OTLayout] More 'size' feature sanity checking
...
We still don't look for the old incorrect place of the featureParams.
I'll wait till someone actually complains about it...
2012-12-12 11:38:49 -05:00
Behdad Esfahbod
0bae50a36f
[OTLayout] Add FeatureParamsCharacterVariants struct
...
No API yet.
2012-12-11 16:29:24 -05:00
Behdad Esfahbod
bd61bc13ea
[OTLayout] Add UINT24 type
2012-12-11 16:01:07 -05:00
Behdad Esfahbod
9cf7f9d4f6
Make test-size-params write size in points
2012-12-11 14:31:13 -05:00
Behdad Esfahbod
372fe2b67b
[OTLayout] Make hb_ot_layout_get_size_params() do some checks
2012-12-11 14:30:57 -05:00
Behdad Esfahbod
875a5cbc9c
[OTLayout] Change hb_ot_layout_get_params() API
...
And add implementation for StylisticSet UINameID. No API yet.
2012-12-11 14:17:01 -05:00
Behdad Esfahbod
0e9f0f3e5f
Fix atomic ops on iOS
...
Patch from John Ralls.
2012-12-10 15:25:21 -05:00
Behdad Esfahbod
5f9569c139
Make older MSVC happy
2012-12-10 13:39:06 -05:00
Behdad Esfahbod
071d5b831e
Work around missing OSAtomicCompareAndSwapPtrBarrier() on OS X 10.4
...
Not sure how to handle iOS.
2012-12-10 00:57:00 -05:00
Behdad Esfahbod
e923e6487b
[coretext] Fixed typo
...
Oops. Thanks Khaled for catching this.
2012-12-09 19:39:40 -05:00
Behdad Esfahbod
9a8395824b
[coretext] Add hb_coretext_face_get_cg_font()
...
Not sure if it's useful, but it was missing.
2012-12-09 18:47:36 -05:00
Behdad Esfahbod
8611235688
[coretext] Remove hack around GlyphID
...
We not namespace our types, so the hack is not needed anymore.
2012-12-09 18:47:09 -05:00
Behdad Esfahbod
8e58459aeb
[graphite2] "Update to new API"
...
Part of patch from Martin Hosken. I believe he knows what he's doing
:).
2012-12-09 18:45:47 -05:00
Behdad Esfahbod
a5a4ab3846
[graphite2] Add hb_graphite2_face_get_gr_face and hb_graphite2_font_get_gr_font
...
Based on patch from Martin Hosken. I believe it returns NULL if the
font doesn't have graphite tables, but have not tested.
2012-12-09 18:44:41 -05:00
Behdad Esfahbod
737ba15644
[graphite2] Preload all tables
...
Part of patch from Martin Hosken.
2012-12-09 18:43:03 -05:00
Behdad Esfahbod
0ae6dbf1b4
Minor
2012-12-09 18:37:38 -05:00
Behdad Esfahbod
3fe5c159d3
Remove excess return
...
Oops!
2012-12-09 18:20:19 -05:00
Behdad Esfahbod
ba2d543004
Update OT language tags
...
Patch from Roozbeh Pournader.
2012-12-08 19:28:41 -05:00
Behdad Esfahbod
aba38173c6
Minor
2012-12-05 19:54:48 -05:00
Behdad Esfahbod
61865745e3
Fix test with gold linker
...
Bug 57633 - Symbol tests should ignore __bss_start, _edata, _end
2012-12-05 19:42:10 -05:00
Behdad Esfahbod
b71b0bd9ee
[Indic] Add link to Sinhala split matra section of the Sinhala spec
2012-12-05 19:20:31 -05:00
Behdad Esfahbod
0beb66e3a6
Fix warnings
2012-12-05 19:14:28 -05:00
Behdad Esfahbod
130bb3f614
Rename VOID and void_t to have HarfBuzz prefix
...
Fixes build on Windows. Ouch!
2012-12-05 16:49:47 -05:00
Behdad Esfahbod
4a350d0eb2
[OTLayout] Reuse context in collect_glyphs() recursion
2012-12-04 17:13:09 -05:00
Behdad Esfahbod
8303593ba1
Minor
...
Use pointers instead of references, in preparation for upcoming change.
2012-12-04 17:08:41 -05:00
Behdad Esfahbod
1bcfa06d11
[OTLayout] Don't recurse in collect_glyphs() for GPOS
2012-12-04 16:58:09 -05:00
Behdad Esfahbod
b5e04c7dc6
[ucdn] Match upstream changes
2012-12-04 15:57:02 -05:00
Behdad Esfahbod
7babfe5a79
Move object mutext into the user-data array
...
We are not using it for anything lse it seems.
2012-12-04 00:35:54 +02:00
Behdad Esfahbod
a190011477
Remove unused functions
2012-12-04 00:29:35 +02:00
Behdad Esfahbod
88b7564183
"Update" to Unicode 6.2.0 tables
...
Nothing changed...
2012-12-02 19:14:29 +02:00
Behdad Esfahbod
4ab99fb8c3
Minor
2012-11-30 15:02:04 +02:00
Behdad Esfahbod
6748b96d27
Minor
2012-11-30 12:02:21 +02:00
Behdad Esfahbod
0f3f529904
Add test-size-params
...
Eventually this will become part of a yet-to-be-written hb-ot cmdline
tool.
2012-11-30 09:06:59 +02:00
Behdad Esfahbod
8465a05a89
Fix hb_buffer_guess_segment_properties() for empty buffer
...
Was causing assertion failure in shape_plan().
2012-11-30 08:46:43 +02:00
Behdad Esfahbod
e75943de80
[OTLayout] Fix collect_glyphs() recursion in ContextFormat3
2012-11-30 08:38:24 +02:00
Behdad Esfahbod
3038ae6adb
[OTLayout] Minor
2012-11-30 08:24:13 +02:00
Behdad Esfahbod
0dff11f6bf
[OTLayout] Look for any 'size' feature, not only in DFLT script
...
The old code doesn't work with all fonts, as Khaled has reported.
2012-11-30 08:14:20 +02:00
Behdad Esfahbod
e9ad71dee8
[OTLayout] Rename hb_ot_layout_position_get_size() to hb_ot_layout_get_size_params()
2012-11-30 08:10:26 +02:00
Behdad Esfahbod
f18ff5a84d
[OTLayout] Return correct value from recursion
...
Commit 4c4e8f0e75
broke contextual lookups
by making the recurse() function always return false.
Reported by Khaled. Test case: لا in Amiri.
2012-11-30 08:07:06 +02:00
Behdad Esfahbod
f54cce3c6a
[OTLayout] Implement 'size' feature
2012-11-26 14:02:31 +02:00
Behdad Esfahbod
2dc1141d7d
[OTLayout] Remove operator() from ClassDef
2012-11-24 19:16:34 -05:00
Behdad Esfahbod
b67881b171
[OTLayout] Remove operator() from Coverage
2012-11-24 19:13:55 -05:00
Behdad Esfahbod
a88e716021
[OTLayout] Implement hb_ot_layout_collect_lookups()
...
Untested.
2012-11-24 02:31:02 -05:00
Behdad Esfahbod
1ea375da44
[OTLayout] Only collect output glyphs during recursion in collect_glyphs()
2012-11-24 02:05:52 -05:00
Behdad Esfahbod
f1b12781d2
[OTLayout] Implement ChainContext collect_glyphs()
...
All of collect_glyphs() complete and untested now.
2012-11-24 02:02:01 -05:00
Behdad Esfahbod
cdd756b9f4
[OTLayout] Implement GPOS collect_glyphs()
2012-11-24 01:38:41 -05:00
Behdad Esfahbod
4c4e8f0e75
[OTLayout] Reuse apply context for recursion
2012-11-24 01:13:20 -05:00
Behdad Esfahbod
53a69f49e5
[OTLayout] Remove unused members
2012-11-24 01:03:05 -05:00
Behdad Esfahbod
d0a5233785
[OTLayout] Implement Context::collect_glyphs()
2012-11-23 18:54:59 -05:00
Behdad Esfahbod
26514d51b6
[OTLayout] More collect_glyphs()
2012-11-23 18:13:48 -05:00
Behdad Esfahbod
c6fb843f2a
[OTLayout] Templatize process_recurse_func
2012-11-23 18:04:08 -05:00
Behdad Esfahbod
9b34677f36
[OTLayout] Clean up closure() a bit
2012-11-23 17:55:40 -05:00
Behdad Esfahbod
adf7758a27
Improve debug log format in presence of templates
2012-11-23 17:34:02 -05:00
Behdad Esfahbod
2c53bd3c3e
[OTLayout] Start porting sanitize() to process()
2012-11-23 17:29:05 -05:00
Behdad Esfahbod
f48ec0e834
[OTLayout] Add process() tracing
2012-11-23 17:23:41 -05:00
Behdad Esfahbod
ed2e135944
[OTLayout] More Extension templatizing
2012-11-23 17:10:40 -05:00
Behdad Esfahbod
7dddd4e72b
[OTLayout] More templatizing Extension
2012-11-23 17:04:55 -05:00
Behdad Esfahbod
653eeb2645
Make Extension a template
2012-11-23 16:57:36 -05:00
Behdad Esfahbod
08f1eede1b
Minor
2012-11-23 16:51:43 -05:00
Behdad Esfahbod
2c9d6485a1
More tracing fixup
2012-11-23 16:49:19 -05:00
Behdad Esfahbod
a1733db1c6
[OTLayout] Start adding process() tracing
2012-11-23 16:40:04 -05:00
Behdad Esfahbod
73c18ae1b9
Cleanup
2012-11-23 15:34:11 -05:00
Behdad Esfahbod
be218c688c
Pass this object to trace macros
2012-11-23 15:32:14 -05:00
Behdad Esfahbod
902cc8aca0
[OTLayout] Start unbreaking tracing
2012-11-23 15:23:30 -05:00
Behdad Esfahbod
dabe698fcb
Minor
2012-11-23 14:21:35 -05:00
Behdad Esfahbod
c779d82b2f
Fix warnings
2012-11-23 14:09:21 -05:00
Behdad Esfahbod
81822528ef
Minor
2012-11-23 13:27:16 -05:00
Behdad Esfahbod
1d67ef980f
Move code around
2012-11-22 16:47:53 -05:00
Behdad Esfahbod
ec35a72a44
[OTLayout] Port apply() operator to process() template
2012-11-22 16:33:46 -05:00
Behdad Esfahbod
2005fa5340
[OTLayout] Port would_apply() and get_coverage() to process() templates
2012-11-22 16:33:46 -05:00
Behdad Esfahbod
44fc237b53
[OTLayout] Port closure() to process() template
2012-11-22 16:33:46 -05:00
Behdad Esfahbod
5be86b1bb4
[ucdn] Make data tables const!
2012-11-22 16:33:46 -05:00
Behdad Esfahbod
7c5b7fe686
Fix hb_shape_plan_get_shaper()
2012-11-22 16:33:46 -05:00
Behdad Esfahbod
ac064a2db2
Rename hb_set_population() to hb_set_get_population()
2012-11-21 01:14:19 -05:00
Behdad Esfahbod
16c914c2a6
[Indic] One more try at unbreaking Khmer fonts
...
See comments and discussion on the list.
2012-11-21 01:04:15 -05:00
Behdad Esfahbod
e8cfdd7fa8
Start implementing collect_glyphs() operation
...
Not functional yet.
2012-11-16 19:07:06 -08:00
Behdad Esfahbod
7d52e6601f
Whitespace
2012-11-16 18:49:54 -08:00
Behdad Esfahbod
51bb498b7b
Minor
2012-11-16 14:08:05 -08:00
Behdad Esfahbod
89ca8eeb83
Implement hb_ot_layout_get_glyphs_in_class()
2012-11-16 13:53:40 -08:00
Behdad Esfahbod
5a08ecf920
Implement hb_ot_layout_get_glyph_class()
2012-11-16 13:34:29 -08:00
Behdad Esfahbod
f9edd5d56b
Implement hb_shape_plan_get_shaper()
...
Untested.
2012-11-16 13:23:37 -08:00
Behdad Esfahbod
43b6531500
[Indic] Another try to unbreak Sinhala split matras
...
Just read the comments...
2012-11-16 13:14:26 -08:00
Behdad Esfahbod
977f1740ac
Unbreak tests
2012-11-16 13:10:07 -08:00
Behdad Esfahbod
eba312c8d1
Plumbing to get shape plan and font into complex decompose function
...
So we can handle Sinhala split matras smartly... Coming soon.
2012-11-16 12:58:38 -08:00
Behdad Esfahbod
3f82f8ff07
Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties()
2012-11-15 18:48:10 -08:00
Behdad Esfahbod
f30641038b
Bunch of independent changes (ouch)
...
API additions:
hb_segment_properties_t
HB_SEGMENT_PROPERTIES_DEFAULT
hb_segment_properties_equal()
hb_segment_properties_hash()
hb_buffer_set_segment_properties()
hb_buffer_get_segment_properties()
hb_ot_layout_glyph_class_t
hb_shape_plan_t
hb_shape_plan_create()
hb_shape_plan_create_cached()
hb_shape_plan_get_empty()
hb_shape_plan_reference()
hb_shape_plan_destroy()
hb_shape_plan_set_user_data()
hb_shape_plan_get_user_data()
hb_shape_plan_execute()
hb_ot_shape_plan_collect_lookups()
API changes:
Rename hb_ot_layout_feature_get_lookup_indexes() to
hb_ot_layout_feature_get_lookups().
New header file:
hb-shape-plan.h
And a bunch of prototyped but not implemented stuff. Coming soon.
(Tests fail because of the prototypes right now.)
2012-11-15 18:48:10 -08:00
Behdad Esfahbod
e05a999495
Add hb_face_[sg]et_glyph_count()
2012-11-15 16:23:21 -08:00
Behdad Esfahbod
aec89de564
Add / modify set API a bit
2012-11-15 16:15:42 -08:00
Behdad Esfahbod
c54599ad26
Minor
2012-11-15 16:14:39 -08:00
Behdad Esfahbod
d1aa143ca4
[Thai] Remove U+0E2C from "AC" consonants
...
WinXP doesn't include it.
2012-11-15 15:38:08 -08:00
Behdad Esfahbod
362a990b22
Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup()
...
To match upcoming API.
2012-11-15 14:57:31 -08:00
Behdad Esfahbod
3cec819d39
Make the OT shaper default, even if CoreText or Uniscribe is enabled
2012-11-15 13:15:39 -08:00
Behdad Esfahbod
072ae7a982
Add hb_buffer_serialize_list_formats()
2012-11-15 13:14:12 -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
fd0de881f4
Avoid C++ undefined behavior
...
https://bugzilla.mozilla.org/show_bug.cgi?id=810823
2012-11-15 10:48:50 -08:00
Behdad Esfahbod
f41dc2d35b
Fix undefined behavior in Indic dottedcircle
...
Chromium Issue 158998: Conditional jump in harfbuzz-ng
http://code.google.com/p/chromium/issues/detail?id=158998
2012-11-15 10:36:43 -08:00
Behdad Esfahbod
1eb3e94fe9
[Thai] Implement PUA-based fallback shaping
...
As explained here:
http://linux.thai.net/~thep/th-otf/shaping.html
Our output now matches Uniscribe for old fonts (eg. XP Tahoma) with no
Thai GSUB table.
2012-11-14 17:53:09 -08:00
Behdad Esfahbod
851784f837
Improve shaper selection
2012-11-14 17:53:09 -08:00
Behdad Esfahbod
43f04a7456
Move Thai shaper into a separate file
2012-11-14 15:51:54 -08:00
Behdad Esfahbod
ba82325b7a
Add note re 'Phags-pa letter U+A872, which is Joining_Type=L
2012-11-14 15:36:53 -08:00
Behdad Esfahbod
d469fadce8
[Indic] Exchange abort() for assert()
2012-11-14 15:07:36 -08:00
Behdad Esfahbod
0f80a89de9
Don't route Kharoshthi through the Indic shaper
...
It's a simple, right-to-left, script.
2012-11-14 15:05:19 -08:00
Behdad Esfahbod
e67072bb17
[Indic] Handle overstruck matra position
2012-11-14 15:00:53 -08:00
Behdad Esfahbod
7e99e4f074
Reposition Lao marks
...
Lao marks are center-aligned, unlike Thai ones.
2012-11-14 14:09:46 -08:00
Behdad Esfahbod
865745b5b8
Don't do fallback positioning for Indic and Thai shapers
2012-11-14 13:48:26 -08:00
Behdad Esfahbod
981748cb2e
[Indic] If Khmer fonts have a 'liga' feature, use generic shaper
...
Seems to produce more coherent results than trying the Indic shaper on
them. I'm looking at you, Kh-* fonts...
2012-11-14 13:38:16 -08:00
Behdad Esfahbod
dde5506fd9
[Indic] Don't move virama with left matra
...
This is important for the Sinhala U+0DDA split matra since it decomposes
to U+0DD9,U+0DCA where U+0DD9 is a left matra and U+0DCA is the virama.
We don't want to move the virama with the left matra.
TEST: U+0D9A,U+0DDA
Note that we were already doing this in the Uniscribe bug compatibility
mode. We now do it all the time.
2012-11-14 11:37:04 -08:00
Behdad Esfahbod
92f9bfed42
Minor
2012-11-13 16:50:45 -08:00
Behdad Esfahbod
66ac2ff32e
API change: Remove "mask" from hb_buffer_add()
...
I don't expect anybody using hb_buffer_add(), so this shouldn't break
anyone's code.
2012-11-13 16:26:32 -08:00
Behdad Esfahbod
e13f8d280b
Fix UTF-8 backward iteration
...
Ouch!
2012-11-13 15:12:06 -08:00
Behdad Esfahbod
5669a6cf41
[Arabic] Fix post-context handling
...
Ouch!
2012-11-13 15:11:51 -08:00
Behdad Esfahbod
0c7df22228
Add buffer flags
...
New API:
hb_buffer_flags_t
HB_BUFFER_FLAGS_DEFAULT
HB_BUFFER_FLAG_BOT
HB_BUFFER_FLAG_EOT
HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES
hb_buffer_set_flags()
hb_buffer_get_flags()
We use the BOT flag to decide whether to insert dottedcircle if the
first char in the buffer is a combining mark.
The PRESERVE_DEFAULT_IGNORABLES flag prevents removal of characters like
ZWNJ/ZWJ/...
2012-11-13 14:42:35 -08:00
Behdad Esfahbod
1c7e55511a
Minor fix
...
Ouch
2012-11-13 14:42:22 -08:00
Behdad Esfahbod
82ecaff736
Add hb_buffer_clear()
...
Which is like _reset(), but does NOT clear unicode-funcs.
2012-11-13 14:10:00 -08:00
Behdad Esfahbod
0736915b8e
[Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did
...
Had to do some refactoring to make this happen...
Under uniscribe bug compatibility mode, we still plit them
Uniscrie-style, but Jonathan and I convinced ourselves that there is no
harm doing this the Unicode way. This change makes that happen, and
unbreaks free Sinhala fonts.
2012-11-13 12:35:35 -08:00
Behdad Esfahbod
6fd5335622
[Indic] Update auto-generated Indic machine to reflect previous commit
2012-11-12 18:42:18 -08:00
Behdad Esfahbod
9cac1338c4
[Indic] Allow Consonant_Medial's after Consonant's
...
Mostly affects Myanmar, but also Tai Tham, Javanese, and Cham. The
latter three are untested (no fonts!).
2012-11-12 18:41:22 -08:00
Behdad Esfahbod
d187099cba
[Indic] Categorize Myanmar "tone marks" as nuktas
2012-11-12 18:38:06 -08:00
Behdad Esfahbod
8173f23f3f
[Indic] Add config for Myanmar
2012-11-12 18:37:20 -08:00
Behdad Esfahbod
9e92978c8a
[Indic] Route "new" Myanmar tag through the Indic shaper
...
Windows 8 adds a Myanmar shaper using the 'mym2' tag. Route that
through the Indic shaper. It's still very broken, but at least this
does NOT break old-style Myanmar shaping using the generic shaper.
2012-11-12 18:36:10 -08:00
Behdad Esfahbod
5ab3855f81
Choose shaper based on chosen OT script tag
...
For Arabic and Indic shapers, if the font doesn't have a script system
for the script, use default shaper.
Make an exception for Arabic script since we have fallback logic for
that one.
2012-11-12 18:27:42 -08:00
Behdad Esfahbod
9b37b4c580
Make planner available to complex shaper choosing logic
2012-11-12 18:23:38 -08:00
Behdad Esfahbod
6fddf2d739
Refactoring ot-map building to make chosen script available earlier
2012-11-12 18:03:07 -08:00
Behdad Esfahbod
de796a6fb9
Add "new" Myanmar OT Script tag
...
Windows 8 added support for Myanmar shaping using the "mym2" script tag,
even though Windows never supported the old "mymr" tag.
2012-11-12 17:27:51 -08:00
Behdad Esfahbod
e9334ce97b
Break build when ragel is needed and missing
2012-11-12 14:57:02 -08:00
Behdad Esfahbod
dba186711e
[Indic] Make more room in the table
...
To be used in upcoming commits.
2012-11-12 14:48:33 -08:00
Behdad Esfahbod
c4be991743
Typo
2012-11-12 14:27:33 -08:00
Behdad Esfahbod
56be677781
[Indic] Port 'pref' logic to look into font tables
...
...instead of using a hardcoded list of Ra characters.
2012-11-12 14:09:40 -08:00
Behdad Esfahbod
f2c0f59043
[Indic] Port reph handling logic to look into font features
...
...instead of using a hardcoded list of Ra characters.
2012-11-12 14:02:02 -08:00
Behdad Esfahbod
43149afbc0
Route MEETEI_MAYEK through the Indic shaper
...
Since it has a couple of left-"matras".
2012-11-12 13:34:17 -08:00
Behdad Esfahbod
d0905c3400
Minor
2012-11-12 13:03:52 -08:00
Behdad Esfahbod
365f27ab5b
Work around older compilers
...
As reported on the list:
I am seeing a similar problem building harfbuzz 0.9.5 with Apple gcc
4.0.1 on OS X 10.5 Leopard:
hb-ot-layout-common-private.hh:406: error: 'struct
OT::CoverageFormat1::Iter' is private
hb-ot-layout-common-private.hh:646: error: within this context
hb-ot-layout-common-private.hh:500: error: 'struct
OT::CoverageFormat2::Iter' is private
hb-ot-layout-common-private.hh:647: error: within this context
make[4]: *** [libharfbuzz_la-hb-ot-layout.lo] Error 1
Also reported as happening with MSVC 2005.
2012-11-12 11:16:57 -08:00
Behdad Esfahbod
6b389ddc36
[Indic] Don't apply 'liga'
...
Uniscribe doesn't. And some fonts abuse this feature to get Indic
shaping working in non-complex applications like Adobe's apps.
No change in numbers:
BENGALI: 353897 out of 354188 tests passed. 291 failed (0.0821598%)
DEVANAGARI: 707337 out of 707394 tests passed. 57 failed (0.00805774%)
GUJARATI: 366440 out of 366457 tests passed. 17 failed (0.00463902%)
GURMUKHI: 60704 out of 60747 tests passed. 43 failed (0.0707854%)
KANNADA: 951046 out of 951913 tests passed. 867 failed (0.0910798%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970557 out of 970573 tests passed. 16 failed (0.00164851%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
2012-11-12 11:02:56 -08:00
Behdad Esfahbod
d05ac7dc3f
Fix hb-ft glyph name for broken fonts that return empty glyph names
2012-11-12 10:26:50 -08:00
Behdad Esfahbod
4899801155
U+A872 PHAGS-PA SUPERFIXED LETTER RA is "Right"-Joining
2012-11-08 15:08:26 -08:00
Behdad Esfahbod
22a685836a
Adjust Mongolian shaping
...
For U+1880..U+1886 Uniscribe thinks they are non-joining.
For U+1887 Uniscribe thinks it's joining, but looks wrong to me.
For now, match Uniscribe.
2012-11-05 15:20:10 -08:00
Behdad Esfahbod
c26a52fbe6
Minor
2012-11-04 16:48:45 -08:00
Behdad Esfahbod
f60d3ed35d
Minor
2012-11-04 16:44:47 -08:00
Behdad Esfahbod
10a33296e6
Minor
2012-11-02 13:38:55 -07:00
Behdad Esfahbod
3ba7bc14ea
Implement 'Phags-pa shaping
...
Through the Arabic shaper. It's similar to Mongolian.
2012-11-01 20:05:04 -07:00
Behdad Esfahbod
da70111ab2
Don't clear buffer pre-context if no new context is being provided
...
Patch from Jonathan Kew.
Part of fixing:
Mozilla Bug 801410 - avoid inserting dotted-circle for run-initial
Unicode combining characters in "simple" scripts such as Latin
https://bugzilla.mozilla.org/show_bug.cgi?id=801410
2012-10-31 13:45:30 -07:00