Behdad Esfahbod
3b8fd9c48f
Remove const from ref_count.ref_count
...
According to Tom Hacohen this was breaking build with some compilers.
In file included from hb-buffer-private.hh:35:0,
from hb-ot-map-private.hh:32,
from hb-ot-shape-private.hh:32,
from hb-ot-shape.cc:29:
hb-object-private.hh: In constructor '_hb_object_header_t::_hb_object_header_t()':
hb-object-private.hh:97:8: error: uninitialized const member in 'struct hb_reference_count_t'
hb-object-private.hh:51:25: note: 'hb_reference_count_t::ref_count' should be initialized
In file included from hb-ot-shape.cc:33:0:
hb-set-private.hh: In constructor '_hb_set_t::_hb_set_t()':
hb-set-private.hh:37:8: note: synthesized method '_hb_object_header_t::_hb_object_header_t()' first required here
hb-ot-shape.cc: In function 'void hb_ot_shape_glyphs_closure(hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, hb_set_t*)':
hb-ot-shape.cc:521:12: note: synthesized method '_hb_set_t::_hb_set_t()' first required here
2012-06-03 15:54:19 -04:00
Behdad Esfahbod
70600dbf62
Minor
2012-06-03 15:52:51 -04:00
Behdad Esfahbod
96a9ef0c9f
Remove tab character like other "zero-width" characters
...
Uniscribe does that, this make comparing results to Uniscribe
easier.
2012-06-01 13:46:26 -04:00
Behdad Esfahbod
0558d55bac
Remove hb_atomic_int_set/get()
...
We never use them in fact...
I'm just adjusting these as I better understand the requirements of
the code and the guarantees of each operation.
2012-05-28 10:46:47 -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
bc145658bd
Warn if no Unicode functions implementation is found
2012-05-28 10:45:50 -04:00
Behdad Esfahbod
a3547330fa
Cleanup atomic ops on OS X
2012-05-27 10:20:47 -04:00
Behdad Esfahbod
e4b6d503c5
Don't use atomic ops in hb_cache_t
...
We don't care about linearizability, so unprotected int read/write
are enough, no need for expensive memory barriers. It's a cache,
that's all.
2012-05-27 10:11:13 -04:00
Behdad Esfahbod
819faa0530
Minor
2012-05-27 10:09:18 -04:00
Behdad Esfahbod
303d5850ec
Fix Windows atomic get/set
...
According to:
http://msdn.microsoft.com/en-us/library/65tt87y8.aspx
MemoryBarrier() is the right macro to protect these, not _ReadBarrier()
and/or _WriteBarrier().
2012-05-27 10:01:13 -04:00
Behdad Esfahbod
29ce446d31
Add set iterator
2012-05-25 14:17:54 -04:00
Behdad Esfahbod
62c3e111fc
Add set symmetric difference
2012-05-25 13:48:00 -04:00
Behdad Esfahbod
27aba594c9
Minor
2012-05-24 15:00:01 -04:00
Behdad Esfahbod
cde1c0114b
Fix hb_atomic_int_set() implementation for HB_NO_MT
...
As pointed out by Jonathan Kew.
2012-05-24 10:46:39 -04:00
Behdad Esfahbod
ed2f1363a3
Fix substitution glyph class propagation
...
The old code was doing nothing.
Still got to find an example font+string that makes this matter, but
need this for fixing synthetic GDEF anyway.
2012-05-22 22:12:22 -04:00
Behdad Esfahbod
20fdb0f41d
Add a lock-free cache type for int->int functions
...
To be used for cmap and advance caching if desired.
2012-05-17 22:04:45 -04:00
Behdad Esfahbod
bd908b4f10
Implement hb_atomic_int_set() for OS X
2012-05-17 22:02:08 -04:00
Behdad Esfahbod
022a05ae90
Minor
2012-05-17 21:53:24 -04:00
Behdad Esfahbod
22afd66a30
Add hb_atomic_int_set() again
2012-05-17 21:23:49 -04:00
Behdad Esfahbod
4aa7258cb1
Fix type conflicts on Windows without glib
2012-05-17 21:01:04 -04:00
Behdad Esfahbod
f039e79d54
Don't use min/max as function names
...
They can be macros on some systems. Eg. mingw32.
2012-05-17 20:55:12 -04:00
Behdad Esfahbod
34961e3198
Prefer native atomic/mutex ops to glib's
2012-05-17 20:50:38 -04:00
Behdad Esfahbod
ec3ba4b96f
Move atomic ops into their own header
2012-05-17 20:30:46 -04:00
Behdad Esfahbod
1d6846db9e
[Indic] Apply vatu feature after cjct
...
Testing with old Deva spec this reduces failures.
Test sequence: U+0915,U+094D,U+0930.
2012-05-13 18:09:29 +02:00
Behdad Esfahbod
617f4ac46f
Refactor
2012-05-13 16:48:03 +02:00
Behdad Esfahbod
5e4e21fce4
Revert "[Indic] Refactoring"
...
This reverts commit 0831061efb
.
2012-05-13 16:46:08 +02:00
Behdad Esfahbod
3f18236a03
Fix more warnings
2012-05-13 16:20:10 +02:00
Behdad Esfahbod
9f377ed321
Fix more unused-var warnings
2012-05-13 16:13:44 +02:00
Behdad Esfahbod
d993e72331
Fix hb_face_set_index()
2012-05-13 16:04:36 +02:00
Behdad Esfahbod
93345edcbe
Fix warnings
2012-05-13 16:01:08 +02:00
Behdad Esfahbod
eace47b173
Minor
2012-05-13 15:54:43 +02:00
Behdad Esfahbod
99c2695759
Add accessort to buffer for current info, current pos, and prev info
2012-05-13 15:45:18 +02:00
Behdad Esfahbod
6736f3c5b0
Minor
2012-05-13 15:21:06 +02:00
Behdad Esfahbod
5df809b655
[GSUB/GPOS] Remove context_length
...
The spec doesn't say contextual matching should be done this way,
and AOTS doesn't do it either. It was inherited from old HarfBuzz.
Remove it.
2012-05-13 15:17:51 +02:00
Behdad Esfahbod
28b9d502bb
Minor
2012-05-13 15:04:00 +02:00
Behdad Esfahbod
737dded2e0
Fix compiler warnings
2012-05-12 15:40:11 +02:00
Behdad Esfahbod
7f852b644b
Fix compiler warnings
2012-05-11 23:10:31 +02:00
Behdad Esfahbod
f7e8dcfd4f
[Indic] Unbreak Devanagari
...
And this, concludes the HarfBuzz Massala Hackfest.
I like to specially thank Jonathan Kew for doing all the decription and
letting me get commit points.
2012-05-11 22:01:33 +02:00
Behdad Esfahbod
6a091df9b4
[Indic] Disambiguate sub vs post vs above matras
...
Bengali is at *just* above 5% now.
2012-05-11 21:42:27 +02:00
Behdad Esfahbod
9d0d319a4a
[Indic] Position Bengali Reph before matras
2012-05-11 21:36:32 +02:00
Behdad Esfahbod
f893672511
[Indic] Start categorizing Reph per script
2012-05-11 21:10:03 +02:00
Behdad Esfahbod
a913b024d8
[Indic] Apply 'init' feature for Bengali
...
Error down from 20% to 7%.
2012-05-11 20:59:26 +02:00
Behdad Esfahbod
eed903b164
[Indic] Refactor for the arrival of 'init' feature
...
Yep, on Bengali now!
2012-05-11 20:50:53 +02:00
Behdad Esfahbod
18c06e189b
[Indic] Add Uniscribe bug feature for dotted circle
...
For dotted-circle independent clusters, Uniscribe does no Reph shaping
for the exact sequence Ra+Halant+25CC. Which also is the only possible
sequence with 25CC at the end.
2012-05-11 20:02:14 +02:00
Behdad Esfahbod
0831061efb
[Indic] Refactoring
2012-05-11 19:07:58 +02:00
Behdad Esfahbod
7ea58db311
Minor
2012-05-11 18:58:57 +02:00
Behdad Esfahbod
9c09928989
[Indic] Allow multiple Consonants in Vowel/NBSP syllables
...
Uniscribe allows multiple Halant+Consonant after a Vowel.
Tests:
↦ * U+0905,U+094D,U+092B,U+094D,930,94d,930
2012-05-11 18:46:35 +02:00
Behdad Esfahbod
8c0aa486f3
[Indic] Allow two Nuktas per consonant
...
Uniscribe allows up to two nuktas per consonant and one per matra. It does so
indepent of whether the consonant already has a nukta in it. Tests:
* U+0916,U+093C,U+0941
* U+0959,U+093C,U+0941
* U+0916,U+093C,U+093C,U+0941
* U+0959,U+093C,U+093C,U+0941
* U+0916,U+093C,U+093C,U+093C,U+0941
* U+0959,U+093C,U+093C,U+093C,U+0941
* 915,93c,93c,,94d,U+0916,U+093C,U+093C,U+093e,93c,93c
2012-05-11 18:13:42 +02:00
Behdad Esfahbod
3399a06e70
[Indic] Fix U+0952 and similar classification to match Uniscribe
...
See comments.
2012-05-11 17:54:26 +02:00
Behdad Esfahbod
11aa3ef18d
[Indic] Treat U+0951..U+0954 all similar to U+0952
2012-05-11 17:30:48 +02:00
Behdad Esfahbod
5f131d3226
[GSUB/GPOS/Indic] Apply GSUB/GPOS within syllables only
...
This does not apply to the context matchings.
This regresses tests right now. And we are not sure whether this is
the right thing to do for GPOS. But we'll figure out.
2012-05-11 17:29:40 +02:00
Behdad Esfahbod
8fd83aaf6e
[GSUB/GPOS] Fix wrong buffer access in backward skippy mask matching
2012-05-11 17:18:37 +02:00
Behdad Esfahbod
ff24d1081a
[Indic] Don't use syllable serial value 0
2012-05-11 17:07:08 +02:00
Behdad Esfahbod
892eb78782
[Indic] Implement Uniscribe Reph+Matra+Halant bug feature
2012-05-11 16:54:40 +02:00
Behdad Esfahbod
67ea29af49
[Indic] Add example of different Uniscribe behavior
2012-05-11 16:51:23 +02:00
Behdad Esfahbod
ebe29733d4
[Indic] Add runtime Uniscribe bug compatibility mode!
...
Enable by setting envvar:
HB_OT_INDIC_OPTIONS=uniscribe-bug-compatible
Plus, LeftMatra+Halant "feature".
2012-05-11 16:43:12 +02:00
Behdad Esfahbod
616e692e29
[Indic] Add #define UNISCRIBE_BUG_COMPATIBLE 1
2012-05-11 16:25:02 +02:00
Behdad Esfahbod
6782bdae3b
[Indic] Fix Left Matra + Halant reordering
...
As can be seen in: U+092B,U+093F,U+094D
2012-05-11 16:23:43 +02:00
Behdad Esfahbod
3c2ea9481b
Minor
2012-05-11 16:23:38 +02:00
Behdad Esfahbod
203d71069c
[GSUB/GPOS] Check all glyph masks when matching input
2012-05-11 16:01:44 +02:00
Behdad Esfahbod
668c6046c1
[Indic] Apply Reph mask to all POS_REPH glyphs
...
Needed for upcoming changes to GSUB/GPOS mask matching.
2012-05-11 15:34:13 +02:00
Behdad Esfahbod
4be46bade2
[Indic] Fix state machine to backtrack
2012-05-11 14:39:01 +02:00
Behdad Esfahbod
cee7187447
[Indic] Move syllable tracking from Indic to generic layer
...
This is to incorporate it into GSUB/GPOS processing.
2012-05-11 11:41:39 +02:00
Behdad Esfahbod
3bf27a9f0e
[Indic] Disable conjuncts when a ZWJ happens
...
Not that the code makes any difference since the presence of ZWJ itself
causes the ligature to fail to match anyway.
2012-05-11 11:17:23 +02:00
Behdad Esfahbod
c6d904d67d
[Indic] Fix bitops typo!
...
Another 1000 down!
2012-05-11 11:07:40 +02:00
Behdad Esfahbod
55fe2cf79b
Make APPLY debug output print current index and codepoint
...
Yay!
2012-05-11 03:56:33 +02:00
Behdad Esfahbod
7bd2b04fea
Minor
2012-05-11 03:40:58 +02:00
Behdad Esfahbod
cf26510dbb
Some more...
...
Done. I promise.
2012-05-11 03:35:08 +02:00
Behdad Esfahbod
9659523ca3
More beauty in debug output!
2012-05-11 03:33:36 +02:00
Behdad Esfahbod
cf26e88a5a
Finish off debug output beautification
2012-05-11 03:16:57 +02:00
Behdad Esfahbod
d7bba01a35
Only print class name in debug output if there's one available
2012-05-11 02:46:26 +02:00
Behdad Esfahbod
85f73fa8da
Only printout class name in tracing, if one is available
...
Makes debug output much more pleasant.
2012-05-11 02:40:42 +02:00
Behdad Esfahbod
98619ce4fa
Minor
2012-05-11 02:34:06 +02:00
Behdad Esfahbod
acea183e98
Add return annotation for APPLY
2012-05-11 02:33:11 +02:00
Behdad Esfahbod
5ccfe8e215
/Minor/
2012-05-11 02:19:41 +02:00
Behdad Esfahbod
0ab8c86217
Annotate SANITIZE return values
...
More to come, for APPLY, CLOSURE, etc.
2012-05-11 02:11:52 +02:00
Behdad Esfahbod
829e814ff3
Minor
2012-05-11 00:52:16 +02:00
Behdad Esfahbod
6eec6f406d
Code reshuffling
2012-05-11 00:50:38 +02:00
Behdad Esfahbod
1e08830b4f
Beautify debug output
2012-05-11 00:43:57 +02:00
Behdad Esfahbod
6f45538017
More massaging trace messaging
2012-05-10 23:24:43 +02:00
Behdad Esfahbod
b5fa37cb69
Minor
2012-05-10 23:09:48 +02:00
Behdad Esfahbod
208109703c
Better trace message support infrastructure
...
We have varargs in the trace interface now. To be used soon...
2012-05-10 23:06:58 +02:00
Behdad Esfahbod
02b2922fbf
[Indic] Towards better Reph positioning
...
Fixed for Deva cases with two full-form consonants. Failures **way** down.
Not much left to go :-).
2012-05-10 21:44:50 +02:00
Behdad Esfahbod
74e54cf446
[Indic] Add Ra back for scripts without Reph
...
We now check that the 'rphp' table exists before forming Reph, so
we don't need to comment out Ra for those scripts.
2012-05-10 21:22:58 +02:00
Behdad Esfahbod
2b70df5cc0
[Indic] Add note re Uniscribe clusters
2012-05-10 18:38:22 +02:00
Behdad Esfahbod
21d2803133
[Indic] Do clustering like Uniscribe does
...
Hindi Wikipedia failures down to 6639 (0.938381%)!
2012-05-10 18:34:34 +02:00
Behdad Esfahbod
8df5636968
[Indic] Reorder Reph to before the Halant after Matras
...
Uniscribe doesn't do it, but we want to do as it gives the Reph the
opportunity to interact with the Matras. Test with mangal for example.
Sequence: <0930,094d,0915,094b,094d>
In test suite already.
2012-05-10 15:41:04 +02:00
Behdad Esfahbod
daf3234bdc
[Indic] Don't clear the mask for Reph
...
This was removing the mandatory global 1 bit in the mask and hence
disabling GPOS for Reph!
2012-05-10 15:28:27 +02:00
Behdad Esfahbod
7708ee23cb
[Indic] Improve Left Matra repositioning
...
Move its dependents too.
2012-05-10 14:48:25 +02:00
Behdad Esfahbod
dbb105883c
[Indic] Do Reph repositioning in final reordering like the spec says
...
This introduced a failure, which we tracked down to a test case like this:
U+092E,U+094B,U+094D,U+0930
The final character is a Ra that should be put in a syllable of it's
own. And we do. But it will interact with the Halant before it. So
now we finally are convinced that we have to limit features to syllable
boundaries. That's coming after lunch!
2012-05-10 13:45:52 +02:00
Behdad Esfahbod
4705a70269
Minor
2012-05-10 13:09:08 +02:00
Behdad Esfahbod
4ac9e98d9d
[Indic] Reorder left matras to be closer to base
2012-05-10 12:53:53 +02:00
Behdad Esfahbod
1a1fa8c655
[Indic] Treat the standalone cluster case reusing the consonant logic
2012-05-10 12:21:30 +02:00
Behdad Esfahbod
190eb31a16
[Indic] Minor
2012-05-10 12:21:30 +02:00
Behdad Esfahbod
c5306b6861
[Indic] Handle Vowel syllables
...
Reusing the consonant logic!
2012-05-10 12:21:30 +02:00
Behdad Esfahbod
6d8e0cb74c
[Indic] Simplify Reph logic
2012-05-10 11:41:51 +02:00
Behdad Esfahbod
3d25079f8d
[Indic] Don't form Reph is Ra is the only consonant in the syllable
2012-05-10 11:37:42 +02:00
Behdad Esfahbod
b99d63ae11
[Indic] Increase max syllable length
...
20 was way too low, one could hit a syllable with 7ish consonants with it.
2012-05-10 11:32:52 +02:00
Behdad Esfahbod
a391ff50b9
[Indic] Adjust base after sorting
2012-05-10 11:31:20 +02:00
Behdad Esfahbod
d3637edb24
[Indic] Don't return for long syllables. Just not sort.
2012-05-10 10:51:38 +02:00
Behdad Esfahbod
dfa0cade7f
Fix Uniscribe clusters with multiple items
2012-05-09 19:10:07 +02:00
Behdad Esfahbod
86e5dd386a
[Indic] Don't give up syllable parsing upon junk
2012-05-09 18:57:37 +02:00
Behdad Esfahbod
ef24cc8c8e
[Indic] Towards multi-cluster syllables and final reordering
2012-05-09 18:10:20 +02:00
Behdad Esfahbod
a9844d41c6
Combine lig_id and lig_comp into one byte, to free up one for Indic
2012-05-09 17:53:13 +02:00
Behdad Esfahbod
92332e5116
Minor
2012-05-09 17:40:00 +02:00
Behdad Esfahbod
dbccf87eef
[Indic] Make room for more reordering positions
2012-05-09 17:24:39 +02:00
Behdad Esfahbod
d4480ace7f
[Indic] Improve matra vs consonant ordering
...
Another 1.5% down.
2012-05-09 15:59:47 +02:00
Behdad Esfahbod
33c92e7695
[Indic] Categorize Anudatta
2012-05-09 15:41:51 +02:00
Behdad Esfahbod
19d984edaa
[Indic] Make sure Reph jumps over all matras to the right
...
Another 12 thousand failures gone! (78 to go)
2012-05-09 15:21:13 +02:00
Behdad Esfahbod
9034641333
[Indic] Keep Vedic signs at the right too
2012-05-09 15:04:58 +02:00
Behdad Esfahbod
d1deaa2f5b
Replace zerowidth invisible chars with a zero-advance space glyph
...
Like Uniscribe does.
2012-05-09 15:04:13 +02:00
Behdad Esfahbod
49e5da1591
[indic] Keep the syllable modifier marks to the right
...
Shaping failures on Hindi Wikipedia go down from 25% to 14%!
2012-05-09 13:23:27 +02:00
Behdad Esfahbod
5b12609093
Minor
2012-05-09 12:37:27 +02:00
Behdad Esfahbod
9ce939232b
Minor
2012-05-09 12:03:09 +02:00
Behdad Esfahbod
76b3409de6
[indic] Better Reph matching
2012-05-09 11:52:32 +02:00
Behdad Esfahbod
df6d45c693
Minor
2012-05-09 11:38:31 +02:00
Behdad Esfahbod
412b91889d
[indic] Apply Indic features in order
2012-05-09 11:07:18 +02:00
Behdad Esfahbod
1ac075b227
[indic] Apply rakaar forms
...
Fixes 10% of the failures against all of Hindi Wikipedia!
2012-05-09 11:06:47 +02:00
Behdad Esfahbod
1a2a4a0078
Fix warning and build issues
...
As reported by Jonathan Kew on the list.
2012-05-05 22:38:20 +02:00
Behdad Esfahbod
a5e39fed85
Minor
2012-04-25 00:14:46 -04:00
Behdad Esfahbod
1827dc208c
Add hb_ot_shape_glyphs_closure()
...
Experimental API for now.
2012-04-24 16:56:37 -04:00
Behdad Esfahbod
bb09f0ec10
Minor
2012-04-24 16:02:12 -04:00
Behdad Esfahbod
29a7e306e3
Minor
2012-04-24 16:01:30 -04:00
Behdad Esfahbod
6c6ccaf575
Add a few more set operations
...
TODO: Tests for hb_set_t.
2012-04-24 14:23:01 -04:00
Behdad Esfahbod
5caece67ab
Make closure() return void
2012-04-23 23:03:12 -04:00
Behdad Esfahbod
0b08adb353
Add hb_set_t
2012-04-23 22:44:59 -04:00
Behdad Esfahbod
5b93e8d94f
Update copyright headers
2012-04-23 22:26:27 -04:00
Behdad Esfahbod
6a9be5bd35
Rename hb_glyph_map_t to hb_set_t
2012-04-23 22:23:17 -04:00
Behdad Esfahbod
a4385f0b0a
Improve clustering
2012-04-23 22:20:14 -04:00
Behdad Esfahbod
8e3715f8a1
Minor
2012-04-23 22:18:54 -04:00
Behdad Esfahbod
d2984a241e
Add map->substitute_closure()
2012-04-23 17:21:14 -04:00
Behdad Esfahbod
31081f7390
Implement closure() for Context and ChainContext lookups
2012-04-23 16:54:58 -04:00
Behdad Esfahbod
c64ddab3c3
Flesh out closure() for GSUB
...
The GSUBGPOS part still missing.
2012-04-23 15:28:35 -04:00
Behdad Esfahbod
0da132bde4
Fix Coverage iters
2012-04-23 14:21:33 -04:00
Behdad Esfahbod
3e32cd9570
Minor
2012-04-23 13:22:50 -04:00
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
7d50d50263
Add Coverage iterators
2012-04-23 13:04:05 -04:00
Behdad Esfahbod
3ed4634ec3
Add Indic inspection tool
2012-04-19 22:35:01 -04:00
Behdad Esfahbod
a06411ecf9
Minor matra renumbering
...
Should have no visible effect.
2012-04-19 22:28:25 -04:00
Behdad Esfahbod
36608941f3
Add GSUB "would_apply" API
...
To be used in the Indic shaper later. Unused for now.
2012-04-19 22:21:38 -04:00
Behdad Esfahbod
a5e40542ab
Make font immutable in hb_shape()
2012-04-17 12:37:19 -04:00
Behdad Esfahbod
3cde23664f
Minor note re Graphite
2012-04-17 11:44:49 -04:00
Behdad Esfahbod
4dc2449d92
Fix leak in graphite
2012-04-17 11:39:48 -04:00
Behdad Esfahbod
9ceca3aeb1
Fix ragel regexp in vowel-based syllable
...
As reported by datao zhang on the mailing list.
2012-04-16 21:05:51 -04:00
Behdad Esfahbod
b870afcd1b
Rewrite ragel expression to better match the one on MS spec
...
https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx
2012-04-16 21:05:11 -04:00
Behdad Esfahbod
a5f1834f57
Apply 'liga' for vertical writing mode too
...
Apparently that's what Kazuraki uses to form vertical ligatures,
which suggests that it's what Adobe does.
2012-04-16 15:55:13 -04:00
Behdad Esfahbod
e74616b889
Add comment
2012-04-15 14:12:13 -04:00
Behdad Esfahbod
683b503f30
Minor
2012-04-14 20:47:14 -04:00
Behdad Esfahbod
b9f199c8e3
Move code around
2012-04-14 20:25:37 -04:00
Behdad Esfahbod
38a83019e6
Minor
2012-04-14 19:40:18 -04:00
Behdad Esfahbod
d4adade217
Add assert
2012-04-14 19:23:17 -04:00
Behdad Esfahbod
fe28b997fb
Add HB_DIRECTION_IS_VALID
2012-04-14 19:19:26 -04:00
Behdad Esfahbod
5e88aa6682
Remove public enum names again
...
As was reported to me, glib-mkenum does not understand named enums,
so remove for now.
2012-04-14 18:51:50 -04:00
Behdad Esfahbod
4bf90f6483
Make HB_DIRECTION_INVALID be zero
...
This changes all the HB_DIRECTION_* enum member values, but is
nicer, in preparation for making hb_segment_properties_t public.
2012-04-12 17:38:23 -04:00
Behdad Esfahbod
6bd9b479b8
Hide backend-specific shape functions
...
Also remove shaper_options argument to hb_shape_full(). That was
unused and for "future". Let it go.
More shaper API coming in preparation for plan/planned API.
2012-04-12 14:53:53 -04:00
Behdad Esfahbod
c6035cf802
Add names to enums
...
gdb was showing <anonymous enum> instead of useful stuff, so name
all our enums.
2012-04-12 13:23:59 -04:00
Behdad Esfahbod
d1c9eb458c
Make it an error to include non-top-level headers
...
Users should #include <hb.h> (or hb-ft.h, hb-glib.h, etc), but
never things like hb-shape.h directly. This makes it easier to
refactor headers later on without breaking compatibility.
2012-04-12 13:17:44 -04:00
Behdad Esfahbod
323190c27b
Minor
2012-04-12 12:29:10 -04:00
Behdad Esfahbod
0e3361464b
Fix bug with not setting Unicode props of the first character
...
Fixes Mongolian shaping issue:
https://bugs.freedesktop.org/show_bug.cgi?id=45695
2012-04-12 10:06:52 -04:00
Behdad Esfahbod
c65662b71e
Fix left-matra positioning in Indic
...
Fixes 200 failures out of previous 4290 cases in the OO.o Indic
dictionary (of ~16000 entries).
2012-04-12 09:31:55 -04:00
Behdad Esfahbod
029a82d81d
[hangul] Apply *jmo features to all Hangul chars
...
This is what old HB does. Morever, fixes rendering with Win8 malgun
font. The Win7 version doesn't compose with either Uniscribe nor HB,
but Win8 version works as expected, like Uniscribe, with this change.
Lets call Hangul done for now.
2012-04-11 22:00:46 -04:00
Behdad Esfahbod
41ae674f68
Don't create hb_apply_context_t per glyph!
...
I couldn't measure significant performance gains out of this; maybe
about 5% (with one million Malayalam strings). Still, not bad.
But reminds me that optimizing this codebase without profiling first
is simply not going to work. Oh well...
2012-04-11 17:13:50 -04:00
Behdad Esfahbod
4a1e02ef79
Fix shape to presentation forms font check
...
As reported by Jonathan Kew on the list.
2012-04-11 14:37:53 -04:00
Behdad Esfahbod
6062f5f014
Fix build with some compilers
...
As reported by Jonathan Kew on the list.
2012-04-11 14:19:55 -04:00
Behdad Esfahbod
acd88e659f
In Arabic fallback shaping, check that the font has glyph for new char
2012-04-10 18:02:20 -04:00
Behdad Esfahbod
7752aa73e7
Minor
2012-04-10 17:22:14 -04:00
Behdad Esfahbod
939c010211
Implement Arabic fallback shaping mandatory ligatures
2012-04-10 17:20:05 -04:00
Behdad Esfahbod
b7d04eb606
Do Arabic fallback shaping
2012-04-10 16:44:38 -04:00
Behdad Esfahbod
ae4a2b9365
Generate fallback Arabic shaping table
...
Not hooked up yet.
2012-04-10 16:25:08 -04:00
Behdad Esfahbod
3b26f96ebe
Add Thai shaper that does SARA AM decomposition / reordering
...
That's not in the OpenType spec, but it's what MS and Adobe do.
2012-04-10 10:52:07 -04:00
Behdad Esfahbod
d4cc44716c
Move code around, in prep for Thai/Lao shaper
2012-04-07 21:52:28 -04:00
Behdad Esfahbod
c9a841f445
Add simple Hangul shaper that recomposes Jamo when feasible
...
Previously, we were NOT actually recomposing Hangul Jamo. We do now.
The two lines in:
test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt
Now render the same with the UnDotum.ttf font. Previously the second
linle was rendering boxes.
We can also start applying OpenType Jamo features later. At this time,
I have no idea how the 'ljmo', 'vjmo', 'tjmo' features are supposed to
work. Maybe someone can explain them to me?
2012-04-07 15:06:55 -04:00
Behdad Esfahbod
9683184553
Implement normalization mode HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL
...
In this mode we try composing CCC=0 with CCC=0 characters. Useful for
Hangul.
2012-04-07 15:06:47 -04:00
Behdad Esfahbod
bec2ac4fde
Bring normalization algorithm closer to the spec
...
No logical difference so far.
2012-04-07 14:51:17 -04:00
Behdad Esfahbod
e02d925786
Flip logic around
2012-04-07 14:49:13 -04:00
Behdad Esfahbod
11138ccff7
Add normalize mode
...
In preparation for Hangul shaper.
2012-04-05 17:25:19 -04:00
Behdad Esfahbod
6769f21d57
More moving code around
2012-04-05 16:46:46 -04:00
Behdad Esfahbod
2db2a56682
Move code around
2012-04-05 16:40:37 -04:00
Behdad Esfahbod
cad3821f3d
More sorting by Unicode version
...
This is the most convenient way to browse scripts.
2012-03-07 17:13:25 -05:00
Behdad Esfahbod
317b9504d7
Minor
2012-03-07 16:51:29 -05:00
Behdad Esfahbod
fa2673c1ee
More Unicode script age annotation, and a couple more RTL scripts
...
Cross-checked with Mark Davis's spreadsheet at http://goo.gl/x9ilM
2012-03-07 15:52:02 -05:00
Behdad Esfahbod
6d4016f1ba
Make src tests pass again
2012-03-07 15:33:14 -05:00
Behdad Esfahbod
7da435f08c
Separate Unicode 3.1 and Unicode 3.2 additions
2012-03-07 15:20:20 -05:00
Behdad Esfahbod
f91136cb52
Route three Unicode 6.1 scripts through Indic shaper
2012-03-07 12:56:22 -05:00
Behdad Esfahbod
f32c0012ad
Add Unicode 6.1.0 scripts
2012-03-07 12:53:34 -05:00
Behdad Esfahbod
50e810cd0e
Lydian and Kharoshthi are right-to-left
2012-03-07 12:49:08 -05:00
Behdad Esfahbod
a52835635e
Whitespace
2012-03-07 12:38:39 -05:00
Behdad Esfahbod
183224684a
Use generic shaper for Buhid
...
As requested by Jonathan Kew.
We need to devise a better mechanism to choose which scripts to
pass through the Indic shaper. Moreover, currently we are storing
data for some scripts in the Indic shaper that are not even going
through that shaper. Need to find a better way...
2012-03-07 12:21:28 -05:00
Behdad Esfahbod
cdc8b491a8
Update Indic table to Unicode 6.1 data
2012-03-07 12:08:33 -05:00
Behdad Esfahbod
e3b2e077f5
Typo
2012-03-07 10:21:24 -05:00
Behdad Esfahbod
c346671b6b
Minor doc fixes
2012-03-06 20:47:50 -05:00
Behdad Esfahbod
461b9b6347
Fix cluster formation in Indic
...
Makes number of failures against Uniscribe with hi_IN dictionary from
OO.o to go down from 6334 to 4290. Not bad for a one-line change!
Mozilla Bug 729626 - ASAN: heap-buffer-overflow HTML
2012-03-01 18:11:19 -08:00
Behdad Esfahbod
bc71ad4973
Fix atomic-int op on Apple
...
The OSAtomicAdd32Barrier operator returns the new value, we want the
old value.
2012-03-01 17:30:29 -08:00
Behdad Esfahbod
a1970d9afc
Add support for atomic int and mutex on Apple systems
...
So, apparently there's no atomic int 'get' method on Apple. You have to
add(0) to get. And that's not const-friendly. So switch inert-object
checking to a non-atomic get. This, however, is safe, and a negligible
performance boost too.
2012-02-24 16:19:52 -05:00
Behdad Esfahbod
8004429102
Remove unused hb_atomic_int_set()
...
Apparently it can't be implemented on OS X. We weren't using it anyway.
2012-02-24 16:19:52 -05:00
Behdad Esfahbod
45227c10e4
Add hb-warning.cc. Oops!
2012-02-23 19:47:43 -05:00
Behdad Esfahbod
bd7ff1dec5
Allow disabling multi-threaded support
...
By defining HB_NO_MT.
Also, only warn once per missing MT feature support.
Mozilla Bug 666661 - gfx/harfbuzz/src/hb-prive.h - compiler warnings on mac
2012-02-23 15:06:16 -05:00
Behdad Esfahbod
634c9e3423
Minor
2012-02-22 16:43:21 -05:00
Behdad Esfahbod
514b6f8866
Followup: Reorder Hebrew combining classes for better rendering
...
Patch from Jonathan Kew.
Bug 662055 - advanced Hebrew diacritics are shown correctly only in
particular order.
2012-02-22 16:34:37 -05:00
Behdad Esfahbod
6e78607ea7
Reorder Hebrew combining classes for better rendering
...
Patch from Jonathan Kew.
Bug 662055 - advanced Hebrew diacritics are shown correctly only in particular order
2012-02-22 16:31:15 -05:00
Behdad Esfahbod
134aa7bc7e
Make checks more OS X friendly
2012-01-27 02:23:22 -05:00
Behdad Esfahbod
6152199368
Fix check-header-guards on OS X
2012-01-27 02:23:22 -05: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
7a4a848db2
Minor
2012-01-19 15:15:21 -05:00
Behdad Esfahbod
3b5c22c39b
Remove src/test.cc
...
Not really useful.
2012-01-19 14:28:11 -05:00
Behdad Esfahbod
889caa52fa
[icu] Use U_FAILURE
2012-01-18 22:32:52 -05:00
Behdad Esfahbod
36a4f4a482
Replace u_strlen() with u_countChar32()
...
The latter is what I meant.
2012-01-18 22:16:49 -05:00
Behdad Esfahbod
c521e793bd
Fix OOB in replace_glyph()
...
Patch from Kenichi Ishibashi.
2012-01-18 21:51:05 -05:00
Behdad Esfahbod
03408ce73d
Fix more possible buffer overruns
...
I have this function, but can't clean up it to my satisfaction.
2012-01-18 21:28:34 -05:00
Behdad Esfahbod
7d479900cd
Refactor the two remaining uses of _hb_ot_layout_skip_mark()
2012-01-18 21:19:32 -05:00
Behdad Esfahbod
506ffeb8e7
Further mark skippy fixes from Jonathan Kew
...
We should be in good shape now.
2012-01-18 16:07:53 -05:00
Behdad Esfahbod
a4a48fe6d4
Fix mark skipping regression
...
Ouch!
2012-01-17 18:08:41 -05:00
Behdad Esfahbod
4ab9731154
Refactor mark skipping
2012-01-16 22:20:31 -05:00
Behdad Esfahbod
370f03e9c6
Minor
2012-01-16 17:06:59 -05:00
Behdad Esfahbod
4d3aeb8cb2
[GSUB/GPOS] Fix mark skip indexing issues
...
Mozilla bug 701637 and 714067 combined.
Patch from Jonathan Kew.
2012-01-16 16:43:26 -05:00
Behdad Esfahbod
e8eedf2687
Avoid enum trailing commas
...
Based on patch from Jonathan Kew.
2012-01-16 16:39:40 -05:00
Behdad Esfahbod
299ae0c3a3
[icu] Remove glib-ism
2012-01-14 21:29:45 -05:00
Behdad Esfahbod
af92135424
Minor
2011-10-21 09:18:43 -07:00
Behdad Esfahbod
89d89646e8
Fix intrin.h b0rkage with older MSVC
...
Reported by Jonathan Kew.
2011-10-17 11:50:54 -07:00
Behdad Esfahbod
af913c5788
Fix infinite loop in normalization code with variation selectors
...
Reported by Jonathan Kew.
2011-10-17 11:39:28 -07:00
Behdad Esfahbod
55deff7595
Add comments
2011-09-28 16:20:09 -04:00
Behdad Esfahbod
52ebdff49d
Fix GSUB lookuptype 1 subtype 1 delta wrapping
2011-09-27 12:38:16 -04:00
Behdad Esfahbod
b95324cdd2
Minor
2011-09-21 16:50:39 -04:00
Behdad Esfahbod
0cd33592ab
Fix possible leaks
2011-09-21 16:49:33 -04:00
Behdad Esfahbod
d606daa4cc
Whitespace
2011-09-20 14:34:06 -04:00
Behdad Esfahbod
f83f0f4836
[graphite] Add note about graphite shaker brokenness
2011-09-19 18:51:48 -04:00
Behdad Esfahbod
0a965eee88
Minor
2011-09-19 16:53:47 -04:00
Behdad Esfahbod
5c29934311
[uniscribe] Various improvements
2011-09-19 14:53:26 -04:00
Behdad Esfahbod
5ddd9cc499
Minor
2011-09-16 16:40:44 -04:00
Behdad Esfahbod
947c9a778c
Minor
2011-09-16 16:33:18 -04:00
Behdad Esfahbod
d5476a30a1
Minor
2011-09-16 12:30:50 -04:00
Behdad Esfahbod
36b10f58cc
Minor
2011-09-15 16:29:51 -04:00
Behdad Esfahbod
c4611cb66f
Fix test
2011-09-15 00:32:39 -04:00
Behdad Esfahbod
bc187e5ac7
Refine Indic scripts, following Martin Hosken's recommendation
2011-09-08 13:35:17 -04:00
Behdad Esfahbod
738d096a06
Pass through unknown ISO 639-3 language tags to OpenType engine
...
In hb_ot_tag_from_language(), if first component of an unknown
language is three letters long, use it directly as OpenType language
tag (after case conversion and padding).
2011-09-02 13:31:19 -04:00
Behdad Esfahbod
ea02cbf03c
[graphite] Don't preload glyphs
...
Doesn't seem to be slower.
2011-09-02 12:39:20 -04:00
Behdad Esfahbod
210a06f3d7
Minor
2011-08-26 13:39:49 +02:00
Behdad Esfahbod
4a8d2e379a
[graphite2] Chop a few more lines
2011-08-26 09:40:54 +02:00
Behdad Esfahbod
81ec289da7
Minor
2011-08-26 09:33:06 +02:00
Behdad Esfahbod
3380de5abb
[graphite] Use buffer->replace_glyphs()
2011-08-26 09:30:49 +02:00
Behdad Esfahbod
9ebe8c0286
Add buffer->replace_glyphs()
2011-08-26 09:29:42 +02:00
Behdad Esfahbod
a5edb1031c
Minor
2011-08-26 09:27:13 +02:00
Behdad Esfahbod
290e3ee517
[graphite] Only pass the first part language tag to graphite
...
Still not sure about:
1) Case. We pass lowercase for now. Would be nice if graphite was
uppercase 3letter like OpenType,
2) Padding. IMO, tag padding is always with spaces, but Martin was
talking about NUL bytes.
2011-08-26 09:25:04 +02:00
Behdad Esfahbod
4c9fe88d30
[API] Make all _from_string() functions take a len parameter
...
Can be -1 for NUL-terminated string. This is useful for passing parts
of a larger string to a function without having to copy or modify the
string first.
Affected functions:
hb_tag_t hb_tag_from_string()
hb_direction_from_string()
hb_language_from_string()
hb_script_from_string()
2011-08-26 09:22:12 +02:00
Behdad Esfahbod
a499bdea5c
[graphite2] Bail if grface is NULL
2011-08-25 22:46:21 +02:00
Behdad Esfahbod
3007ffa9e5
Reorder combining-class to better suit Arabic shadda mark-mark positioning
...
As reported by Khaled on the list:
"After the introduction of canonical reordering of combining marks
(commit 34c22f8
), I'm no longer able to do mark/mark substitution or
positioning for mark sequences that involve shadda as a first mark (or
most interesting sequences at least).
"After some digging, it turned out that shadda have a ccc=33 while most
Arabic marks that combine with it have a lower ccc value, which results
in the shadda being reordered after the other mark which,
unsurprisingly, breaks my contextual substitution and mkmk anchors."
See:
http://unicode.org/faq/normalization.html#8
http://unicode.org/faq/normalization.html#9
2011-08-25 09:08:53 +02:00
Behdad Esfahbod
74ef81a0b0
Fix make distcheck
2011-08-24 19:36:50 +02:00
Behdad Esfahbod
24bcdbcc06
Add hb-ot-hmtx-table.hh
...
Oops!
2011-08-24 19:13:15 +02:00
Behdad Esfahbod
a3bd8a0e18
[graphite] Rewrite properly
2011-08-24 03:25:57 +02:00
Behdad Esfahbod
5072934c35
Minor
2011-08-24 02:24:27 +02:00
Behdad Esfahbod
71388b3ee7
[uniscribe] Minor
2011-08-24 02:09:04 +02:00
Behdad Esfahbod
cd2b901027
[graphite] Minor
2011-08-24 01:48:03 +02:00
Behdad Esfahbod
834af3b48a
[graphite] Remove hb_graphite2_feature_check()
...
I don't see how this function can be useful.
2011-08-24 01:45:47 +02:00
Behdad Esfahbod
1f49cf32c9
Add graphite2 integration from Martin Hosken
...
To be modified, a lot.
2011-08-24 01:32:41 +02:00
Behdad Esfahbod
0e6d36d8a3
Minor
2011-08-24 01:31:29 +02:00
Behdad Esfahbod
efde811325
Add a constructor for hb_prealloced_array_t
...
Fixes build with MSVC.
2011-08-23 00:04:57 +02:00
Behdad Esfahbod
d75333f166
Add gobject enum support, but disabled for now
...
need to figure out the naming. The generated code doesn't have the
right name.
2011-08-19 19:59:24 +02:00
Behdad Esfahbod
7d235d272f
Flesh out tt funcs a bit
2011-08-19 19:23:28 +02:00
Behdad Esfahbod
b9415e76d7
[API] Add hb_font_set_funcs_data()
2011-08-19 19:20:30 +02:00
Behdad Esfahbod
e6c09cdf43
Remove the pre_allocate argument from hb_buffer_create()
...
For two reasons:
1. User can always call hb_buffer_pre_allocate() themselves, and
2. Now we do a pre_alloc in add_utfX anyway, so the total number of
reallocs is limited to a small number (~3) anyway. This just makes the
API cleaner.
2011-08-19 19:20:26 +02:00
Behdad Esfahbod
187bdeaa6c
Do (nothing for) hmtx sanitize
2011-08-17 19:03:06 +02:00
Behdad Esfahbod
d6016e4910
Fix name-table sanitize
2011-08-17 15:00:18 +02:00
Behdad Esfahbod
ae9877dea6
Add hhea-table support
2011-08-17 15:00:10 +02: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
0b7e4d9f20
[ft] FT_Get_Advance() for advance-width callbacks
...
Using graphite2's comparerenderer suggests that this makes hb-ft 15
times faster. No caching layer needed anymore.
2011-08-15 20:41:59 +02:00
Behdad Esfahbod
4e9ff1dd6e
Pre-allocate buffers when adding string
...
We do a conservative estimate of the number of characters, but still,
this limits the number of buffer reallocs to a small constant.
2011-08-15 16:21:22 +02:00
Behdad Esfahbod
553bc3de82
Minor
2011-08-15 16:21:06 +02:00
Behdad Esfahbod
254142bb67
[ft] FT_Select_Charmap() when we create face
2011-08-15 16:15:44 +02:00
Behdad Esfahbod
a4cbd03dd1
Apply 'locl' with 'ccmp' in Arabic shaper
...
According to Peter Constable this is indeed what Uniscribe has been
doing for years.
Mozilla Bug 667166 - wrong shape of letter when it comes at the end of
word in the arabic version of Firefox 5.0
2011-08-15 09:52:05 +02:00
Behdad Esfahbod
c214cff55c
Start adding gobject-introspection support
2011-08-14 15:17:51 +02:00
Behdad Esfahbod
9527fb200f
Fix missing return
2011-08-13 19:03:48 +02:00
Behdad Esfahbod
77a3287695
Minor
2011-08-13 17:16:45 +02:00
Behdad Esfahbod
d6660356dd
Add uniscribe font getters
2011-08-10 22:08:36 +02:00
Behdad Esfahbod
01ec13a1d9
Implement hb_ft_font_get_face
2011-08-10 22:00:35 +02:00
Behdad Esfahbod
0501573ded
Fix const correctness in the API
2011-08-10 16:25:56 +02:00
Behdad Esfahbod
511a136f0c
Move hb-view into util/
2011-08-09 15:03:00 +02:00
Behdad Esfahbod
d753ac78da
[uniscribe] Remove zerowidth glyphs from output
2011-08-09 14:03:12 +02:00
Behdad Esfahbod
ddd247b0c5
Minor
2011-08-09 11:44:42 +02:00
Behdad Esfahbod
1b8196c986
Add fallback shaper
2011-08-09 11:37:46 +02:00
Behdad Esfahbod
13a601fe99
[FT] Don't make font immutable
2011-08-09 11:36:54 +02:00
Behdad Esfahbod
38b2118724
[API] Add hb_ft_font_set_funcs(), remove hb_ft_get_font_funcs()
...
Remove hb_ft_get_font_funcs() as it cannot be used by the user anyway.
Add hb_ft_font_set_funcs(). Which will make the font internally use
FreeType. That is, no need for the font to have created using the
hb-ft API. Just create using hb_face_create()/hb_font_create() and
then call this on the font (after having set font scale). This
internally creates an FT_Face and attached to the font.
2011-08-09 11:10:32 +02:00
Behdad Esfahbod
255f176fdc
Minor
2011-08-09 08:35:07 +02:00
Behdad Esfahbod
a9057eb3f3
[uniscribe] Unbreak
2011-08-09 00:47:55 +02:00
Behdad Esfahbod
33ccc77902
[API] Make set_user_data() functions take a replace parameter
...
We need this to set data on objects safely without worrying that some
other thread unsets it by setting it at the same time.
2011-08-09 00:43:24 +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
de1e1cf9bc
[FT] Adapt to new face API
2011-08-09 00:19:38 +02:00
Behdad Esfahbod
bf3eef540f
[uniscribe] Cleanup backend
2011-08-09 00:14:22 +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
e715784be3
Rename get_table to reference_table in all API
2011-08-08 21:43:06 +02:00
Behdad Esfahbod
670c873499
Fix shaper ordering logic
2011-08-08 21:36:24 +02:00
Behdad Esfahbod
cc797e0d53
Minor
2011-08-08 03:50:38 +02:00
Behdad Esfahbod
826e22732d
[uniscribe] Fix blob lifecycles
2011-08-07 03:53:42 -04:00
Behdad Esfahbod
ff199ba356
Fix shaper_list manipulation, aaaaaaaaaaaaargh
2011-08-07 03:43:46 -04:00
Behdad Esfahbod
577326b86a
[uniscribe] Fix cluster calculation
2011-08-07 01:04:40 -04:00
Behdad Esfahbod
f6d83b2dcf
Minor
2011-08-07 00:59:58 -04:00
Behdad Esfahbod
2eb474afb4
[uniscribe] Fix shaper
...
It's kinda working finally!
2011-08-07 00:59:38 -04:00
Behdad Esfahbod
f22e661147
[glib] Protect against invalid characters
2011-08-07 00:59:12 -04:00
Behdad Esfahbod
144cd49a0e
[buffer] Accept -1 for text_length and item_length
...
A -1 text_length means: zero-terminated string.
A -1 item_length means: to the end of string.
2011-08-07 00:51:50 -04:00
Behdad Esfahbod
e9c71fab30
Fix name-table lookup
...
Oops!
2011-08-07 00:01:04 -04:00
Behdad Esfahbod
3fd2b5bece
[uniscribe] Use font size directly
2011-08-06 22:59:54 -04:00
Behdad Esfahbod
892eb2e462
[uniscribe] Make font selection work
...
Not tested yet.
2011-08-06 22:32:07 -04:00
Behdad Esfahbod
b492299eb3
Start implementing the 'name' table
2011-08-05 20:34:50 -04:00
Behdad Esfahbod
4538efacca
Skip tests by returning 77
...
automake test runner understands this.
2011-08-05 20:11:06 -04:00
Behdad Esfahbod
54eb65538d
Fix check on OS X sh
2011-08-05 20:09:25 -04:00
Behdad Esfahbod
9da554504e
Add hb_shape_list_shapers()
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
d7bf473ef2
Minor
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
c62a8f10f3
Free all static memory upon exit
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
c4d63ef744
Fix env parsing code
...
Also changed the separator to comma instead of colon.
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
3931837beb
Change hb_shape() API back to what it was, add hb_shape_full()
...
I disliked changing hb_shape() API, and disliked the fact that it was
returning a bool now. So, reverted. Added new API for the extra
functionality.
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
3ca6c4ecc2
Change hb_shape() API back to what it was, add hb_shape_full()
...
I disliked changing hb_shape() API, and disliked the fact that it was
returning a bool now. So, reverted. Added new API for the extra
functionality.
2011-08-05 17:22:19 -04:00
Behdad Esfahbod
02aeca985b
[API] Changes to main shape API
...
hb_shape() now accepts a shaper_options and a shaper_list argument.
Both can be set to NULL to emulate previous API. And in most situations
they are expected to be set to NULL.
hb_shape() also returns a boolean for now. If shaper_list is NULL, the
return value can be ignored.
shaper_options is ignored for now, but otherwise it should be a
NULL-terminated list of strings.
shaper_list is a NULL-terminated list of strings. Currently recognized
strings are "ot" for native OpenType Layout implementation, "uniscribe"
for the Uniscribe backend, and "fallback" for the non-complex backend
(that will be implemented shortly). The fallback backend never fails.
The env var HB_SHAPER_LIST is also parsed and honored. It's a
colon-separated list of shaper names. The fallback shaper is invoked if
none of the env-listed shapers succeed.
New API hb_buffer_guess_properties() added.
2011-08-04 22:38:09 -04:00
Behdad Esfahbod
57692adf12
Make test.cc do something more useful
...
Hardcoded to the uniscribe backend for now. Will fix soon.
2011-08-04 20:49:16 -04: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
8336186a52
Zero map objects
2011-08-04 19:49:05 -04:00
Behdad Esfahbod
c747f509bc
More out-of-tree build fixes
2011-08-04 01:51:30 -04:00
Behdad Esfahbod
20dde61016
Minor
2011-08-04 01:07:33 -04:00
Behdad Esfahbod
44b4f50d05
Fix typo
2011-08-04 00:52:20 -04:00
Behdad Esfahbod
0fbb2dc831
Add draft experimental Uniscribe backend
...
Not complete yet, font selection doesn't work. But hey it shapes!
This is not supposed to be a production backend, more like a testing
backend.
2011-08-03 19:55:04 -04:00
Behdad Esfahbod
e62df43649
Add internal hb_buffer_t::get_scratch_buffer()
2011-08-03 17:38:54 -04:00
Behdad Esfahbod
bf8c57ba74
[API] Add hb_face_get_blob()
...
Need to think more about it.
2011-08-03 17:38:04 -04:00
Behdad Esfahbod
2118fdb9f5
Fix fallback shaping
...
Broke it a few commits ago.
2011-08-02 14:06:51 -04:00
Behdad Esfahbod
f60271c0c2
Add mingw32 support
...
With these changes, on Ubuntu I can do:
./configure --host=i586-mingw32msvc && make
2011-08-02 10:00:55 -04:00
Behdad Esfahbod
f5414cf0a2
Use missing script for calling ragel
2011-08-01 16:34:16 -04:00
Behdad Esfahbod
a91c58bf98
[Indic] Disable CJCT-disabling logic
...
Read comment.
2011-08-01 16:30:11 -04:00
Behdad Esfahbod
5e72071062
[Indic] Stop looking for base upon seeing joiners
...
Not sure where this is documented, but I remember this being the desired
behavior.
test-shape-complex failures are down from 48 to 46. Meh.
2011-07-31 17:52:44 -04:00
Behdad Esfahbod
281683995a
Cosmetic
2011-07-31 16:00:35 -04:00
Behdad Esfahbod
6b37bc8084
[Indic] Fix ZWJ/ZWNJ application
...
Not quite working just yet. False alarm re 10 failures. It was
crashing. Ouch! Back to 48 failures.
2011-07-31 15:57:00 -04:00
Behdad Esfahbod
e7be057024
[Indic] Add Final Reordering rules into comments
...
Not applied yet.
2011-07-31 15:22:46 -04:00
Behdad Esfahbod
cfd4382ec1
[Indic] Handle Reph when determining base consonant
2011-07-31 15:08:40 -04:00
Behdad Esfahbod
97158392a5
[Indic] Ra is a consonant too
2011-07-31 15:01:28 -04:00
Behdad Esfahbod
0d8f8a177c
[Indic] Fix reph inhibition logic
2011-07-31 14:57:59 -04:00
Behdad Esfahbod
9da0487cd4
[Indic] Support ZWJ/ZWNJ
...
Brings test-shape-complex failures down from 52 to 10!
I hereby declare harfbuzz-ng supporting Indic!
2011-07-31 13:46:44 -04:00
Behdad Esfahbod
9ee27a928a
[Indic] Suppress reph formation upon joiners
2011-07-31 11:10:14 -04:00
Behdad Esfahbod
8354e004e5
Un-Ra U+09F1. According to the test suite this is correct.
...
But I'm not sure... Down from 54 failures to 52.
2011-07-31 02:24:51 -04:00
Behdad Esfahbod
ba7e85c104
Cosmetic
2011-07-30 21:11:53 -04:00
Behdad Esfahbod
f5bc2725cb
[Indic] For old-style Indic tables, move Halant around
...
In old-style Indic OT standards, the post-base Halants are moved after
their base. Emulate that by moving first post-base Halant to
post-last-consonant.
Brings test-shape-complex failures down from 88 to 54. Getting there!
2011-07-30 21:08:10 -04:00
Behdad Esfahbod
c47a31fb47
[OT] Save chosen script tag
2011-07-30 20:57:01 -04:00
Behdad Esfahbod
fd06bf5611
[Indic] Handle initial Ra+Halant in scripts that support Reph
...
Brings test-shape-complex failures down from 104 to 92. Way to go!
2011-07-30 20:14:44 -04:00
Behdad Esfahbod
ee58f3bc75
Minor
2011-07-30 19:15:53 -04:00
Behdad Esfahbod
352372ae5e
[Indic] Categorize Ra in scripts that have Reph
...
Is the categorization correct? I don't know.
2011-07-30 19:04:02 -04:00
Behdad Esfahbod
45d6f29f15
[Indic] Reorder matras
...
Number of failing shape-complex tests goes from 125 down to 94.
Next: Add Ra handling and it's fair to say we kinda support Indic :).
2011-07-30 14:44:30 -04:00
Behdad Esfahbod
911bf32aca
Bug 39686 - Add '-no-undefined' to libharfbuzz LDFLAGS
2011-07-30 11:16:00 -04:00
Behdad Esfahbod
8f0b64fb69
Minor
2011-07-29 17:02:48 -04:00
Behdad Esfahbod
743807a3ce
[Indic] Apply Indic features
...
Find the base consonant and apply basic Indic features accordingly.
Nothing complete, but does something for now. Specifically:
no Ra handling right now, and no ZWJ/ZWNJ.
Number of failing shape-complex tests goes from 174 down to 125.
Next: reorder matras.
2011-07-29 16:46:09 -04:00
Behdad Esfahbod
9f9bcceca6
Register buffer vars in Indic shaper
2011-07-28 17:07:50 -04:00
Behdad Esfahbod
be09bf6b79
Oops. This should have gone into the previous commit
2011-07-28 17:03:43 -04:00
Behdad Esfahbod
b65c06025d
Formalize buffer var allocations
2011-07-28 16:49:29 -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
cc06c243d8
Streamline debugging infrastructure even more
2011-07-25 20:34:17 -04:00
Behdad Esfahbod
43ff203d8e
Use variadic macros for debugging
...
Looks *so* much nicer!
2011-07-25 17:35:24 -04:00
Behdad Esfahbod
decd4e3e16
Add sugar syntax for debug messages
...
Buffer debugging coming soon.
2011-07-25 16:47:02 -04:00
Behdad Esfahbod
3a81b1db89
Minor, fix leak from my previous refactorings
2011-07-25 16:30:32 -04:00
Behdad Esfahbod
f4a579bc42
Add internal API for buffer var allocation
2011-07-25 16:26:05 -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
c86f932015
Move code around
2011-07-25 00:44:50 -04:00
Behdad Esfahbod
18c42850c9
Shrink space used for ligature ids
...
This frees 16bits in the glyph_info struct during the ot_layout process.
We can use the freed space in the shapers now.
2011-07-25 00:43:39 -04:00
Behdad Esfahbod
d8787493c9
Minor
2011-07-25 00:36:01 -04:00
Behdad Esfahbod
c311d85208
Keep Unicode props updated as we go so we avoid a scan later
2011-07-23 23:43:54 -04:00
Behdad Esfahbod
5389ff4dbc
Implement the Unicode Canonical Composition algorithm
...
Fallback normalization is complete and working now!
2011-07-22 20:22:49 -04:00
Behdad Esfahbod
dcdc51cdc0
Handle singleton decompositions
2011-07-22 17:14:46 -04:00
Behdad Esfahbod
34c22f8168
Implement Unicode Canonical Reordering Algorithm
2011-07-22 17:04:20 -04:00
Behdad Esfahbod
4ff0d2d9df
Decomposition works now!
2011-07-22 16:15:32 -04:00
Behdad Esfahbod
468e9cb25c
Move buffer methods into the object
2011-07-22 14:49:14 -04:00
Behdad Esfahbod
45412523dc
More normalization kick
2011-07-22 11:07:05 -04:00
Behdad Esfahbod
63c0ef4a07
Fix decompose() implementations to work with non-starter non-composables
...
Add tests.
2011-07-21 20:58:42 -04:00
Behdad Esfahbod
5d90a342e3
Document normalization design
2011-07-21 15:25:01 -04:00
Behdad Esfahbod
02cdf743c2
Add prefer_decomposed() complex-shaper callback
...
This allows the Indic shaper to request decomposed characters. This will
handle split matra for free. Other shapers prefer precomposed
characters.
2011-07-21 12:23:12 -04:00
Behdad Esfahbod
d6b9c6d200
More kicking
2011-07-21 12:16:45 -04:00
Behdad Esfahbod
192445aef2
Remove intermittent_glyph()
...
Lets not worry about performance for now...
2011-07-21 12:13:04 -04:00
Behdad Esfahbod
d63adfc7d0
No need to handle variation-selectors seperately, they are GC=Mn
2011-07-21 11:48:57 -04:00
Behdad Esfahbod
aa7264123a
Only form clusters if we are reversing
...
This produces more accurate cluster mappings. Cluster mappings are
minimal now. Combining marks get their own cluster value most of
the time.
2011-07-21 11:34:59 -04:00
Behdad Esfahbod
5c6f5982d7
Towards normalization
2011-07-21 11:31:08 -04:00
Behdad Esfahbod
cf7f43ec33
Remove stale comment
2011-07-21 01:12:26 -04:00
Behdad Esfahbod
54d1a0d2b2
Form clusters before ensuring native direciton
...
This is essential as ensure_native_direction uses cluster info that
is set by form_clusters().
2011-07-21 01:11:09 -04:00
Behdad Esfahbod
9111b21ef9
Add _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()
2011-07-21 00:59:15 -04:00
Behdad Esfahbod
655586fe5e
Towards normalization
2011-07-21 00:52:42 -04:00
Behdad Esfahbod
49741c8633
Include variation-selectors in cluster calculation
2011-07-21 00:35:37 -04:00
Behdad Esfahbod
dd89d958c1
Fix cluster calculation for non-LTR text
2011-07-21 00:28:57 -04:00
Behdad Esfahbod
4a68684654
When forming clusters, participate all mark types
2011-07-21 00:14:01 -04:00
Behdad Esfahbod
5157e12a55
Rename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK
...
Spacing_Mark is the current Unicode long-name for this property value.
The previous name was wrongly carried from glib.
2011-07-21 00:12:33 -04:00
Behdad Esfahbod
7b08b0a7f2
Minor
2011-07-20 23:59:07 -04:00
Behdad Esfahbod
498e1a9be6
[icu] Implement compose()/decompose()
2011-07-20 23:19:49 -04:00
Behdad Esfahbod
ffd4a436f7
Add tests for compose()/decompose()
...
Adjust glib fallback implementation.
The tests are not hooked up for ICU yet.
2011-07-20 22:31:23 -04:00
Behdad Esfahbod
fca0923b04
Minor
2011-07-20 22:16:13 -04:00
Behdad Esfahbod
26b6024962
[glib] Use g_unicode_script_to/from_iso15924() if available
2011-07-20 22:16:01 -04:00
Behdad Esfahbod
22fdc66712
[glib] Add compose() and decompose() implementations with fallback
2011-07-20 21:51:37 -04:00
Behdad Esfahbod
a54a5505a3
Minor
2011-07-20 16:42:10 -04:00
Behdad Esfahbod
22989c5ffc
Distribute hb-ot-shape-complex-indic-machine.rl
2011-07-12 11:54:58 -04:00
Behdad Esfahbod
f6fd3780e1
Let shapers decide when to apply ccmp and locl
...
Instead of always applying those two features before the complex shaper,
let the complex shaper decide whether they should be applied first.
Also add stub for Indic's final_reordering().
2011-07-08 00:22:40 -04:00
Behdad Esfahbod
c4641723fb
[API] Add compose() and decompose() unicode funcs, rename other ones
...
Add compose() and decompose() unicode funcs. These implement
pair-wise canonical composition/decomposition.
The glib/icu implementations are lacking for now. We are adding
API for this to glib, but I cannot find any useful API in ICU.
May end of implementing these in-house.
Changed all unicode_funcs callback names to remove the "_get" part.
Eg, hb_unicode_get_script_func_t is now hb_unicode_script_func_t,
and hb_unicode_get_script() is hb_unicode_script() now.
2011-07-08 00:09:31 -04:00
Behdad Esfahbod
d05dded167
More code generation through preprocessor
2011-07-07 23:43:47 -04:00
Behdad Esfahbod
891c4755ba
Humm, undo some shuffling
...
In preparation for adding more advanced unicode funcs.
2011-07-07 23:27:27 -04:00
Behdad Esfahbod
4b6317c4f4
More code shuffling
2011-07-07 23:14:42 -04:00
Behdad Esfahbod
3361c9a323
Minor
2011-07-07 22:35:17 -04:00
Behdad Esfahbod
76f76812ac
Shuffle code around, remove shape_plan from complex shapers
2011-07-07 22:25:25 -04:00
Behdad Esfahbod
e88bff9b4d
Minor, use function typedefs
2011-07-07 22:03:02 -04:00
Behdad Esfahbod
359dcaa0d3
Update copyright headers
2011-07-07 21:55:05 -04:00
Behdad Esfahbod
d8d0c480c8
Refactor some code common to GSUB and GPOS
2011-07-07 21:22:08 -04:00
Behdad Esfahbod
b70c96dbe4
Enable applying GSUB/GPOS features in multiple segments
...
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=644184
among others.
Shapers now can request segmented feature application by calling
add_gsub_pause() or add_gpos_pause(). They can also provide a
callback to be called at the pause. Currently the Arabic shaper
uses pauses to enforce certain feature application. The Indic
shaper can use the same facility to pause and do reordering in the
callback.
2011-07-07 21:12:15 -04:00
Behdad Esfahbod
f6d7a9bb4c
Shuffle code around
2011-07-07 16:20:35 -04:00
Behdad Esfahbod
2e18c6dbdf
Fix reverse_range() position loop
...
Mozilla Bug 669175 - Slow rendering of text sometimes in this case,
using direction: rtl
2011-07-06 16:05:45 -04:00
Behdad Esfahbod
fa2befa46f
Minor
2011-07-04 17:18:57 -04:00
Behdad Esfahbod
d69d5ceaa0
[Indic] Well, at least finding syllables works now :)
...
Still not much there.
2011-07-04 12:56:38 -04:00
Behdad Esfahbod
4ec30aec30
[Indic] Optimize Indic table storage
2011-06-28 14:13:38 -04:00
Behdad Esfahbod
c4a59de6d8
[Indic] Generate a single data table instead of multiple ones
2011-06-28 14:03:29 -04:00
Behdad Esfahbod
8fdba506f0
[Indic] Define indic_position_t
2011-06-24 20:45:55 -04:00
Behdad Esfahbod
65988a145b
[Indic] Add a table of consonant positions
...
Copied form HarfBuzz.old Indic data. These are below and post
consonants. This is temporary. Read the comment in the patch.
2011-06-24 19:05:52 -04:00
Behdad Esfahbod
c7fe56a1d5
[Indic] Some of the basic features are global; Mark them so
2011-06-24 19:05:34 -04:00
Behdad Esfahbod
867361c3ad
[indic] Add syllable recognition state machine
...
Using an incredible tool called Ragel.
2011-06-17 18:35:46 -04:00
Behdad Esfahbod
422e08dbb8
Better categorize Indic character classes
...
Matches OT types now.
2011-06-15 17:22:48 -04:00
Behdad Esfahbod
31f18abecb
Minor compiler warning fixes
2011-06-15 09:49:58 -04:00
Behdad Esfahbod
e3693b72f0
Change a couple strstr() to strchr()
2011-06-15 09:33:52 -04:00
Behdad Esfahbod
b9452bfc16
Fix compiler warnings with -pedantic
2011-06-14 14:47:07 -04:00
Behdad Esfahbod
970e092dc2
Remove extra semicolon
2011-06-14 14:35:44 -04:00
Behdad Esfahbod
8142680802
Cosmetic
2011-06-13 16:12:56 -04:00
Behdad Esfahbod
902ab866f2
GNOME Bug 652227 - Unconditional use of stdint.h
2011-06-10 23:08:54 -04:00
Behdad Esfahbod
20503ccd57
More Indic data shuffling
2011-06-07 17:02:48 -04:00
Behdad Esfahbod
63b177e45c
Minor
2011-06-07 15:51:40 -04:00
Behdad Esfahbod
b9ddbd5593
[Indic] Start an Indic shaper
...
Nothing functional in there yet.
So far, we're parsing IndicSyllabicCategory.txt and IndicMatraCategory.txt
fils from Unicode Character Database and store them in an array to be used
by the shaper. Also hooked up the shaper, but it does not do anything
right now.
2011-06-02 17:43:12 -04:00
Behdad Esfahbod
697a65c5f5
Minor
2011-06-01 23:15:48 -04:00
Behdad Esfahbod
9de1481f2b
Update to ArabicShaping-6.1.0d2.txt
2011-06-01 20:45:14 -04:00
Behdad Esfahbod
9d49433efb
Minor rename
2011-06-01 18:10:10 -04:00
Behdad Esfahbod
89a2bc9ba6
[Vertical] Apply vertical features
...
We apply all of vert, vrt2, vkrn, valt, and vpal.
2011-05-31 15:18:13 -04:00
Behdad Esfahbod
0c6a9767c8
[hb-view] Add --face-index to choose a face in a TrueType Collection
2011-05-31 12:59:17 -04:00
Behdad Esfahbod
4f28fbdd80
Fix TTC header handling
...
Also change the Version type to avoid similar bugs in the future.
Reported by Grigori Goronzy.
2011-05-31 12:33:11 -04:00
Behdad Esfahbod
21deab2bdc
Fixed inifinite loop introduced in 7403e055cd
...
k is the index, not j.
Reported by Tom Hacohen.
2011-05-30 11:08:40 -04:00
Behdad Esfahbod
51881a61ca
Shrink code size
2011-05-27 18:15:56 -04:00
Behdad Esfahbod
90645fb24b
[OT] Separate map_builder from the actual map
...
Respectively, separate planner from the actual plan.
2011-05-27 18:13:31 -04:00
Behdad Esfahbod
5560a19e2b
Minor
2011-05-27 17:49:16 -04:00
Behdad Esfahbod
5bc18195d5
Add check-includes.sh
2011-05-27 15:58:54 -04:00
Behdad Esfahbod
376dafa6ed
Hide internal symbols
2011-05-27 03:40:04 -04:00
Behdad Esfahbod
329c15714b
Add libtool versioning
...
The versioning is automatic. For now, soname-major is 0. With
the 1.0.0 release it will jump to 1 and stay there forever.
2011-05-25 16:07:07 -04:00
Behdad Esfahbod
2d8ebcb9d0
[API] One last font-funcs API change
...
Now that vertical text works correctly, I'm doing a last round
modification of the font-funcs API to simplify. Expect no more
changes around here.
2011-05-25 11:27:33 -04:00
Behdad Esfahbod
7403e055cd
[Vertical] fix vertical gpos
...
Wow, it took me a few days to find the right fix!
We now set the advance for attached marks to zero, but we
do this in the _finish() state of gpos, so it shouldn't
regress with fonts like DejaVuSansMono that explicitly
decrease the mark advance width to set it to zero.
2011-05-25 10:52:15 -04:00
Behdad Esfahbod
3b0bb855e0
[Vertical] GPOS x/y advance adjustments only apply in hori/vert respectively
2011-05-20 15:59:59 -04:00
Behdad Esfahbod
cc2086d67c
[Vertical] Fix GPOS y-advance direction
2011-05-19 19:19:50 -04:00
Behdad Esfahbod
67d51ff961
[Vertical] Do fallback origin calculation
2011-05-19 19:08:57 -04:00
Behdad Esfahbod
60fbb36096
[Vertical] GPOS is always done with horizontal origin
2011-05-19 18:46:15 -04:00
Behdad Esfahbod
8b38faeede
More vertical
...
Starting to get there, but not without yet another round of changes.
I think I know wheere to go now.
2011-05-19 13:08:00 -04:00
Behdad Esfahbod
e609aeb1e2
[hb-view] Add --annotate
...
Currently it only marks glyph origins.
2011-05-18 10:17:02 -04:00
Behdad Esfahbod
b8d76dd74e
Vertical: Adjust origin in glyph_extents() and glyph_contour_point()
...
The base for vertical is almost ready now.
2011-05-17 23:31:00 -04:00
Behdad Esfahbod
190981851f
Cosmetic
2011-05-17 23:27:22 -04:00
Behdad Esfahbod
2c3f51a11c
Minor
2011-05-17 23:23:27 -04:00
Behdad Esfahbod
7e2c85de30
[API] Vertical support, take 2
...
I like this API *much* better. Implementation still incomplete, but
horizontal works.
2011-05-17 17:55:03 -04:00
Behdad Esfahbod
744970af4d
[API] Add support for vertical text
...
Design not final yet, and in fact I'm going to change it immediately,
but this is an standalone change for itself.
2011-05-17 17:12:34 -04:00
Behdad Esfahbod
4053f3f788
Cosmetic
2011-05-16 17:03:27 -04:00
Behdad Esfahbod
56d12e0356
Remove unnecessary TODO item
2011-05-16 16:01:58 -04:00
Behdad Esfahbod
1883af3796
[hb-view] Start work on vertical support
2011-05-16 15:18:16 -04:00
Behdad Esfahbod
9aa6f96af5
[hb-view] No need to allocate an extra glyph item at the end
2011-05-16 15:08:31 -04:00
Behdad Esfahbod
1a64f6e19a
[API] Add HB_LANGUAGE_INVALID
2011-05-13 22:55:32 -04:00
Behdad Esfahbod
40b5c2e86c
[test/test-ot-tag] Test hb-ot-tag.h, fix many bugs
...
I'm in awe with how many bugs this test revealed. All fixed.
2011-05-13 22:46:36 -04:00
Behdad Esfahbod
7fc5a30cb4
[API] Add hb_face_make/is_immutable()
2011-05-12 17:48:20 -04:00
Behdad Esfahbod
20c8b908dd
Finish off previous change
2011-05-12 15:19:33 -04:00
Behdad Esfahbod
0fd8c2f1be
[API] Make get_glyph() callback return a boolean
...
We need to know whether the glyph exists, so we can fallback to
composing / decomposing. Assuming that glyph==0 means "doesn't exist"
wouldn't work for applications like Pango that want to use different
"doesn't exist" glyph codes for different characters. An explicit
return value fixes that.
2011-05-12 15:14:13 -04:00
Behdad Esfahbod
805af72405
Rename get_kernings() arguments from first/second_glyph to left/right_glyph
...
Makes it clear that kerning is in visual order.
2011-05-12 12:39:40 -04:00
Behdad Esfahbod
df077fadd7
[object] Make object inert during destruction
...
Such that user_data and other finalizers cannot resurrect object
2011-05-12 01:19:39 -04:00
Behdad Esfahbod
52df150efe
Fix font subclass chainup
...
Test passing now.
2011-05-12 00:46:57 -04:00
Behdad Esfahbod
7033518f75
[API] Pass face to get_table()
2011-05-11 23:31:15 -04:00
Behdad Esfahbod
b467827806
[API] Remove const from font user_data
2011-05-11 23:25:28 -04:00
Behdad Esfahbod
9a14688e40
[API] Rename hb_face_create_for_data() to hb_face_create()
2011-05-11 22:49:29 -04:00
Behdad Esfahbod
46d6a21cc8
[API] Add hb_ot_layout_substitute_start/finish()
2011-05-11 22:33:13 -04:00
Behdad Esfahbod
c84d15f52e
Remove unused hb_set_t
2011-05-11 22:23:15 -04:00
Behdad Esfahbod
389a7c9e67
Remove hb_static_threadsafe_set_t
2011-05-11 22:21:38 -04:00
Behdad Esfahbod
e06d4eda7b
Use constructor/destructor for hb_ot_shape_plan_t
2011-05-11 22:18:31 -04:00
Behdad Esfahbod
daa446f184
Fix compile with no mutex available
2011-05-11 21:31:25 -04:00
Behdad Esfahbod
1e56c476c1
Free static mutex'es
2011-05-11 21:28:01 -04:00
Behdad Esfahbod
831886a9b4
Streamline mutex stuff
2011-05-11 21:27:52 -04:00
Behdad Esfahbod
438c4eee35
Remove unused hb_mutex_trylock()
2011-05-11 21:14:34 -04:00
Behdad Esfahbod
80a6833b03
[API] Add hb_*_get_empty() for all objects
2011-05-11 18:21:58 -04:00
Behdad Esfahbod
d3b30be378
[API] Add HB_UNTAG()
...
Useful in C API only.
2011-05-11 18:06:12 -04:00
Behdad Esfahbod
3cc6e9dcb4
Minor
2011-05-11 18:02:48 -04:00
Behdad Esfahbod
4101ca7dbb
Plug more leaks
...
All good now.
2011-05-11 14:30:56 -04:00
Behdad Esfahbod
6a7ac79e26
Plug leaks
2011-05-11 14:19:18 -04:00
Behdad Esfahbod
7aa12ebdff
[unicode] Simplify method setting
2011-05-11 11:55:11 -04:00
Behdad Esfahbod
d5bfd02721
Minor
2011-05-11 11:48:28 -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
a513dbcf73
[API] Change signature of get_contour_point and get_kerning ffuncs
...
get_contour_point now takes glyph id before point_index.
get_kerning now takes a vector to fill-in.
2011-05-11 00:38:22 -04:00
Behdad Esfahbod
63d646fb29
[font] Do user-space conversion when chaining up to parent font
2011-05-11 00:15:37 -04:00
Behdad Esfahbod
b6f902a1a9
Minor
2011-05-11 00:04:15 -04:00
Behdad Esfahbod
abcfe9b59b
Remove hb_ot_layout_context_t, simplify code
2011-05-11 00:02:02 -04:00
Behdad Esfahbod
1ded6d8bbf
Make default font-funcs chain-up to the parent
2011-05-10 20:50:06 -04:00
Behdad Esfahbod
b9d975b931
[API] Pass down closure user_data to font funcs
2011-05-10 20:41:13 -04:00
Behdad Esfahbod
446df9cdb1
Whitespace
2011-05-10 20:14:44 -04:00
Behdad Esfahbod
686c2d165d
[API] Remove font_funcs func getter functions
2011-05-10 20:04:26 -04:00
Behdad Esfahbod
defc45be6d
[API] Add hb_font_create_sub_font() and hb_font_get_parent()
...
Not quite useful just yet.
2011-05-10 20:02:49 -04:00
Behdad Esfahbod
11bb8fe7b3
[font] Fix internal sign of x/y_scale
...
Should have been done as part of da97541988
2011-05-10 19:57:00 -04:00
Behdad Esfahbod
85e6218e33
[API] Remove broken-by-design hb_font_unset_funcs()
2011-05-10 19:40:44 -04:00
Behdad Esfahbod
74f1d896f2
Add hb_font_make/is_immutable()
2011-05-10 19:39:32 -04:00
Behdad Esfahbod
8c7a100a4d
Fix build without mutex
2011-05-10 19:21:07 -04:00
Behdad Esfahbod
19d3035c40
Remove duplicate atomic_int implementation
2011-05-10 19:18:12 -04:00
Behdad Esfahbod
45bfa99034
Fix set implementation to be truly threadsafe even with destroy() callbacks
...
The test/object test is passing again, instead of deadlocking.
2011-05-10 19:15:49 -04:00
Behdad Esfahbod
1c9f8717eb
[API] Simplify blob API, remove lock
2011-05-06 22:59:42 -04:00
Behdad Esfahbod
a0f337a1cc
Remove unused hb_blob_try_writable_inplace()
2011-05-06 19:20:52 -04:00
Behdad Esfahbod
08611d5194
Add note re deadlocks
2011-05-06 16:28:10 -04:00
Behdad Esfahbod
34fb5521a5
[API] Add hb_language_get_default()
...
It uses locale information to detect default language. It's used by
hb_shape() whenever language is not set on the buffer.
Not sure how to properly test it in the test suite. Tested by observing
that with DejaVu Sans we select the proper local glyph version for U+431
under Serbian locale. See http://www.pango.org/ScriptGallery
2011-05-06 00:05:08 -04:00
Behdad Esfahbod
c78f448558
[API] Add version macros and functions
...
Step version up to 0.5.0.
Also, fix to pass "make distcheck"
2011-05-05 21:31:04 -04:00
Behdad Esfahbod
3935af1c0d
[buffer] Remove wrong optimization
...
While the cluster fields of the glyph string are usually sorted, they
wouldn't be in special cases (for example for non-native direction).
Blindly using bsearch is plain wrong. If we want to reintroduce this
optimization we have to make sure we know the buffer clusters are
monotonic and in which direction. Not sure it's worth it though.
2011-05-05 16:09:45 -04:00
Behdad Esfahbod
46df682851
Make user_data access threadsafe
...
For now, by taking a global user_data mutex.
2011-05-05 15:33:19 -04:00
Behdad Esfahbod
218e67b9ee
Shrink code
2011-05-05 15:28:37 -04:00