Commit Graph

2034 Commits

Author SHA1 Message Date
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
0290bbf861 Add another Thai test 2012-04-17 10:28:21 -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
95cefdf96e Add --utf8-clusters
Also fix cairo cluster generation.
2012-04-16 18:08:20 -04:00
Behdad Esfahbod
effb42e5c5 Always use cairo_show_text_glyphs()
Better catches cluster errors.
2012-04-16 16:04:07 -04:00
Behdad Esfahbod
799cfdd15a Make page progression be right to left for vertical text 2012-04-16 16:00:36 -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
4d85252bda Add Japanese test data from Adobe's Kazuraki font ligatures 2012-04-16 15:54:26 -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
08569c0eaa Minor 2012-04-14 18:47:07 -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
d01402da9c Minor 2012-04-12 17:38:02 -04:00
Behdad Esfahbod
69b84a8f6c Fix hb-view surface size calc for vertical text
For some reason it doesn't quite work with IranianNastaliq, but
that looks like a font issue.
2012-04-12 15:50:40 -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
f9746b600a Minor 2012-04-12 09:59:26 -04:00
Behdad Esfahbod
7470b0ff80 Add Mongolian test case 2012-04-12 09:44:27 -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
6d16403bfa Adjust TODO 2012-04-11 22:04:42 -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
3baae2440d Update TODO 2012-04-11 21:54:37 -04:00
Behdad Esfahbod
a4976447cd Add Hangul test 2012-04-11 17:48:40 -04:00
Behdad Esfahbod
e95d912b3b Fix diff tool 2012-04-11 17:33:02 -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
0b6d2ac6a1 Minor 2012-04-10 10:52:03 -04:00
Behdad Esfahbod
e099dd6592 Add Thai test case for SARA AM decomposition 2012-04-10 10:47:33 -04:00
Behdad Esfahbod
4450dc9354 Move around 2012-04-07 22:07:23 -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