platform/upstream/libHarfBuzzSharp.git
12 years ago[Indic] Hopefully minor!
Behdad Esfahbod [Wed, 18 Jul 2012 18:23:55 +0000 (14:23 -0400)]
[Indic] Hopefully minor!

Refactoring Indic machin.  No semantic change.

12 years ago[Indic] Minor
Behdad Esfahbod [Wed, 18 Jul 2012 18:09:25 +0000 (14:09 -0400)]
[Indic] Minor

12 years ago[Indic] Unbreak Tamil
Behdad Esfahbod [Wed, 18 Jul 2012 17:13:03 +0000 (13:13 -0400)]
[Indic] Unbreak Tamil

Tamil has only about 150 failures now!

12 years ago[Indic] Position Khmer Robat
Behdad Esfahbod [Tue, 17 Jul 2012 22:17:30 +0000 (18:17 -0400)]
[Indic] Position Khmer Robat

It's a visual Repha.

Still not positioning logical Repha as occurs in Malayalam.

Another 200 Khmer failures fixed.  547 to go.  That's better than
Devanagari!

12 years ago[Indic] Better categorize Register Shifters and Khmer Various signs
Behdad Esfahbod [Tue, 17 Jul 2012 21:53:03 +0000 (17:53 -0400)]
[Indic] Better categorize Register Shifters and Khmer Various signs

Down another 500 or so Khmer failures!

12 years agoAdd hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs
Behdad Esfahbod [Tue, 17 Jul 2012 21:09:29 +0000 (17:09 -0400)]
Add hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs

This reorders glyphs within the cluster to a nominal order.  This should
have no visible effect on the output, but helps with testing, for
getting the same hb-shape output for visually-equal glyphs for each
cluster.

12 years ago[Indic] Minor
Behdad Esfahbod [Tue, 17 Jul 2012 18:25:14 +0000 (14:25 -0400)]
[Indic] Minor

12 years ago[Indic] For scripts without Half forms, always choose first consonant as base
Behdad Esfahbod [Tue, 17 Jul 2012 18:23:28 +0000 (14:23 -0400)]
[Indic] For scripts without Half forms, always choose first consonant as base

In such scripts (ie. Khmer), a ZWJ/ZWNJ shouldn't stop the search for
base.  So, instead just choose the first consonant as base directly.

Test sequence:
U+1798,200c,U+17C9,U+17D2,U+179B,U+17C1,U+17C7

12 years ago[Indic] Treat Khmer Register Shifters more like Nuktas
Behdad Esfahbod [Tue, 17 Jul 2012 18:09:32 +0000 (14:09 -0400)]
[Indic] Treat Khmer Register Shifters more like Nuktas

Except that there may be a ZWNJ before a Register Shifter.

12 years ago[Indic] Minor
Behdad Esfahbod [Tue, 17 Jul 2012 18:02:28 +0000 (14:02 -0400)]
[Indic] Minor

12 years ago[Indic] Apply 'cfar' for Khmer
Behdad Esfahbod [Tue, 17 Jul 2012 17:55:10 +0000 (13:55 -0400)]
[Indic] Apply 'cfar' for Khmer

Mark stuff after a pre-base reordering Ro 'cfar'.  Used in Khmer.
This allows distinguishing the following cases with MS Khmer fonts:

  U+1784,U+17D2,U+179A,U+17D2,U+1782
  U+1784,U+17D2,U+1782,U+17D2,U+179A

12 years ago[Indic] Position final subjoined consonants (and vowels) after matras
Behdad Esfahbod [Tue, 17 Jul 2012 16:50:13 +0000 (12:50 -0400)]
[Indic] Position final subjoined consonants (and vowels) after matras

In Khmer, a final subjoined consonant or independent vowel can occur
after matras.  This final subjoined thing should NOT be reordered to
before the matra even though it's subjoined.

Fixes another 1k of the Khmer failures.  Not much left really.

12 years ago[Indic] Recategorize Khmer coeng sign as a separate category OT_Coeng
Behdad Esfahbod [Tue, 17 Jul 2012 15:54:28 +0000 (11:54 -0400)]
[Indic] Recategorize Khmer coeng sign as a separate category OT_Coeng

Amend the syllable structure to allow a final subscripted consonant
(Coeng+C) and a final subscripted independent vowel (Coeng+V).
Fixes another 2k of Khmer failures.

12 years ago[Indic] Add a separate Coeng class
Behdad Esfahbod [Tue, 17 Jul 2012 15:37:32 +0000 (11:37 -0400)]
[Indic] Add a separate Coeng class

No characters recategorized yet.  No semantic change.

12 years ago[Indic] Move Halant with after-base consonants
Behdad Esfahbod [Tue, 17 Jul 2012 15:16:19 +0000 (11:16 -0400)]
[Indic] Move Halant with after-base consonants

Normally, we attach the Halant to the previous character and move it
with it.  For after-base consonants however, the Halant "belongs" to the
consonant after, so attach it so.

This fixes Bengali sequences involving post-base consonant Ya, which
should ligate with the Halant to form Ya Phala, but previously a
reordered matras was blocking the ligation.

12 years ago[Indic] Apply presentation-forms features all at once
Behdad Esfahbod [Tue, 17 Jul 2012 14:40:59 +0000 (10:40 -0400)]
[Indic] Apply presentation-forms features all at once

Seems like this is what Uniscribe is doing, and does not break any fonts
we tested (with Devanagari, Malayalam, Khmer, and Bengali), while fixing
some Ra Phala sequences for Bengali with Vrinda.  Fixes another 2% of
Bengali failures (a couple more to go).

12 years agoFix MarkAttachmentType matching
Behdad Esfahbod [Tue, 17 Jul 2012 02:43:17 +0000 (22:43 -0400)]
Fix MarkAttachmentType matching

Fixes issue reported by Khaled Hosny with his Hussaini Nastaleeq font
and sequences like those added in the previous commit.

12 years ago[test/arabic] Add Arabic tests for mark skipping
Behdad Esfahbod [Tue, 17 Jul 2012 02:46:06 +0000 (22:46 -0400)]
[test/arabic] Add Arabic tests for mark skipping

Expose a bug with Khaled's Hussaini Nastaleeq font.

12 years agoMinor
Behdad Esfahbod [Tue, 17 Jul 2012 02:40:21 +0000 (22:40 -0400)]
Minor

12 years ago[Indic] Disable 'kern' in Uniscribe bug compatibility mode
Behdad Esfahbod [Tue, 17 Jul 2012 00:31:24 +0000 (20:31 -0400)]
[Indic] Disable 'kern' in Uniscribe bug compatibility mode

Uniscribe does not apply 'kern' in the Indic module.  Some of the Khmer
fonts they ship have small adjustments in the 'kern' table.  Disable
'kern' in the Indic module under Uniscribe bug compatibility mode.

Fixes some 10% of the Khmer failures.  Remains under 3% (excluding
dotted-circle ones).

12 years agoAllow complex shapers overriding common features
Behdad Esfahbod [Tue, 17 Jul 2012 00:26:57 +0000 (20:26 -0400)]
Allow complex shapers overriding common features

In a new callback...  Currently unused by all complex shapers.

12 years ago[Indic] Categorize other Khmer marks
Behdad Esfahbod [Mon, 16 Jul 2012 23:56:29 +0000 (19:56 -0400)]
[Indic] Categorize other Khmer marks

Mark them the same as the Register Shifters for now.  Need to rename
that category to something more sensible after all is settled.

Fixes another percent of Khmer failures.  Down to under 3%!

12 years ago[Indic] Recognize pre-base reordering Ra anywhere in the syllable
Behdad Esfahbod [Mon, 16 Jul 2012 21:04:46 +0000 (17:04 -0400)]
[Indic] Recognize pre-base reordering Ra anywhere in the syllable

We were doing that only immediately after base.

Fixes another percent in the Khmer failures.  About three more to go...

12 years ago[Indic] Recognizer Register Shifter marks
Behdad Esfahbod [Mon, 16 Jul 2012 20:45:22 +0000 (16:45 -0400)]
[Indic] Recognizer Register Shifter marks

Fixes another 6% of the Khmer failures.

12 years ago[GSUB/GDEF] Guess glyph classes after substitution only if no GDEF
Behdad Esfahbod [Mon, 16 Jul 2012 20:13:32 +0000 (16:13 -0400)]
[GSUB/GDEF] Guess glyph classes after substitution only if no GDEF

Brings down Khmer failures with Daun Penh font from 36% to 20%.

12 years ago[Indic] Categorize Khmer Ro
Behdad Esfahbod [Mon, 16 Jul 2012 19:52:54 +0000 (15:52 -0400)]
[Indic] Categorize Khmer Ro

Khmer failures down from 58% to 36%.

12 years ago[Indic] Reoder pre-base reordering Ra
Behdad Esfahbod [Mon, 16 Jul 2012 19:49:08 +0000 (15:49 -0400)]
[Indic] Reoder pre-base reordering Ra

Brings down Malayalam failures from 14% down to 3%.

12 years ago[Indic] Rename
Behdad Esfahbod [Mon, 16 Jul 2012 19:40:33 +0000 (15:40 -0400)]
[Indic] Rename

12 years ago[Indic] Start implementing pre-base reordering
Behdad Esfahbod [Mon, 16 Jul 2012 19:30:05 +0000 (15:30 -0400)]
[Indic] Start implementing pre-base reordering

12 years ago[Indic] Rename
Behdad Esfahbod [Mon, 16 Jul 2012 19:26:56 +0000 (15:26 -0400)]
[Indic] Rename

No semantic change.

12 years ago[Indic] Implement After-Main Reph positioning
Behdad Esfahbod [Mon, 16 Jul 2012 19:21:12 +0000 (15:21 -0400)]
[Indic] Implement After-Main Reph positioning

Almost...

12 years ago[Indic] Apply 'pref' to pre-base reodering Ra
Behdad Esfahbod [Mon, 16 Jul 2012 19:20:15 +0000 (15:20 -0400)]
[Indic] Apply 'pref' to pre-base reodering Ra

No reordering yet.

12 years ago[Indic] Minor
Behdad Esfahbod [Mon, 16 Jul 2012 19:15:28 +0000 (15:15 -0400)]
[Indic] Minor

Should not be any semantic change.  In preparation for implementing
pre-base reordering Ra.

12 years agoMinor
Behdad Esfahbod [Mon, 16 Jul 2012 18:52:18 +0000 (14:52 -0400)]
Minor

12 years agoMinor
Behdad Esfahbod [Mon, 16 Jul 2012 17:54:43 +0000 (13:54 -0400)]
Minor

12 years ago[Indic] Reorder virama only for old Indic spec
Behdad Esfahbod [Mon, 16 Jul 2012 17:47:19 +0000 (13:47 -0400)]
[Indic] Reorder virama only for old Indic spec

12 years ago[Indic] Categorize Khmer consonants
Behdad Esfahbod [Mon, 16 Jul 2012 17:39:36 +0000 (13:39 -0400)]
[Indic] Categorize Khmer consonants

12 years agoSplit matras without a Unicode decomposition
Behdad Esfahbod [Mon, 16 Jul 2012 17:25:17 +0000 (13:25 -0400)]
Split matras without a Unicode decomposition

This is a hack for now, to get us going with Khmer.  This will be
refactored properly later to move the complex logic into complex
shapers.

12 years ago[Indic] Adjust position for split matras
Behdad Esfahbod [Mon, 16 Jul 2012 17:24:26 +0000 (13:24 -0400)]
[Indic] Adjust position for split matras

We are going to split matras without a Unicode decompositions in a way
that the second half takes the codepoint of the whole matra.  So,
position them where the second half is supposed to end up.

12 years ago[GSUB] Allow 1-to-1 ligature substitutions!
Behdad Esfahbod [Mon, 16 Jul 2012 17:23:40 +0000 (13:23 -0400)]
[GSUB] Allow 1-to-1 ligature substitutions!

Apparently Uniscribe allows these, and they are used in some Khmer fonts
shipped with Windows, namely, Daun Penh.

12 years ago[Indic] Apply Above Forms
Behdad Esfahbod [Mon, 16 Jul 2012 16:05:35 +0000 (12:05 -0400)]
[Indic] Apply Above Forms

12 years agoFurther simplify atomic ops on Visual Studio
Behdad Esfahbod [Sat, 14 Jul 2012 16:15:54 +0000 (12:15 -0400)]
Further simplify atomic ops on Visual Studio

12 years agoMinor
Behdad Esfahbod [Fri, 13 Jul 2012 17:20:49 +0000 (13:20 -0400)]
Minor

12 years agoAdd -Wcast-align
Behdad Esfahbod [Fri, 13 Jul 2012 15:29:31 +0000 (11:29 -0400)]
Add -Wcast-align

12 years agoMake sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers
Behdad Esfahbod [Fri, 13 Jul 2012 14:19:10 +0000 (10:19 -0400)]
Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers

So we can use them to switch default visibility to internal if desired,
and use these to make only declared symbols public.

12 years agoAllow overriding HB_BEGIN_DECLS / HB_END_DECLS
Behdad Esfahbod [Fri, 13 Jul 2012 14:15:37 +0000 (10:15 -0400)]
Allow overriding HB_BEGIN_DECLS / HB_END_DECLS

12 years agoDon't export inline methods
Behdad Esfahbod [Fri, 13 Jul 2012 14:00:42 +0000 (10:00 -0400)]
Don't export inline methods

12 years agoCheck for exported weak symbols
Behdad Esfahbod [Fri, 13 Jul 2012 13:48:39 +0000 (09:48 -0400)]
Check for exported weak symbols

Ouch, all our C++ inline functions are being exported (weakly) already.
Fix coming.

12 years agoMake hb_in_range() static
Behdad Esfahbod [Fri, 13 Jul 2012 13:45:54 +0000 (09:45 -0400)]
Make hb_in_range() static

12 years agoMinor
Behdad Esfahbod [Fri, 13 Jul 2012 13:32:30 +0000 (09:32 -0400)]
Minor

12 years agoFix _InterlockedCompareExchangePointer on x86
Behdad Esfahbod [Fri, 13 Jul 2012 13:04:07 +0000 (09:04 -0400)]
Fix _InterlockedCompareExchangePointer on x86

12 years ago[ft] Disable ppem setting
Behdad Esfahbod [Wed, 11 Jul 2012 23:00:30 +0000 (19:00 -0400)]
[ft] Disable ppem setting

The calculations were wrong.

FreeType makes it really hard to set size and ppem independently.
For now, disable it.  Need to come up with a fix later.

12 years ago[ft] Use unfitted kerning if x_ppem is zero
Behdad Esfahbod [Wed, 11 Jul 2012 22:52:39 +0000 (18:52 -0400)]
[ft] Use unfitted kerning if x_ppem is zero

12 years agoRevert "Towards templatizing common Lookup types"
Behdad Esfahbod [Wed, 11 Jul 2012 22:01:27 +0000 (18:01 -0400)]
Revert "Towards templatizing common Lookup types"

This reverts commit 727135f3a9938c1ebd5b9f5015a46c7ccc8573c5.

This is work-in-progress.  Didn't mean to push it out just yet.

12 years agoBump WINNT version requested from 500 to 600
Behdad Esfahbod [Wed, 11 Jul 2012 20:44:51 +0000 (16:44 -0400)]
Bump WINNT version requested from 500 to 600

Since we use the OpenType versions of Uniscribe functions, we are
relying on that version of the WINNT API.  Otherwise, usp10.h will hide
those symbols.

12 years agoFix build with no Unicode funcs implementations provided
Behdad Esfahbod [Wed, 11 Jul 2012 20:35:04 +0000 (16:35 -0400)]
Fix build with no Unicode funcs implementations provided

12 years agoUpdate git.mk to upstream
Behdad Esfahbod [Wed, 11 Jul 2012 19:30:08 +0000 (15:30 -0400)]
Update git.mk to upstream

12 years agoTowards templatizing common Lookup types
Behdad Esfahbod [Wed, 4 Jul 2012 02:15:35 +0000 (22:15 -0400)]
Towards templatizing common Lookup types

12 years agoMinor
Behdad Esfahbod [Tue, 3 Jul 2012 15:38:46 +0000 (11:38 -0400)]
Minor

12 years agoMinor
Behdad Esfahbod [Fri, 29 Jun 2012 14:50:12 +0000 (10:50 -0400)]
Minor

12 years agoAdd TODO item
Behdad Esfahbod [Wed, 27 Jun 2012 14:07:27 +0000 (10:07 -0400)]
Add TODO item

12 years agoFix check for Intel atomic ops
Behdad Esfahbod [Tue, 26 Jun 2012 15:16:13 +0000 (11:16 -0400)]
Fix check for Intel atomic ops

12 years agoUse octal-escaped UTF-8 characters instead of plain text
Behdad Esfahbod [Tue, 26 Jun 2012 14:46:31 +0000 (10:46 -0400)]
Use octal-escaped UTF-8 characters instead of plain text

https://bugs.freedesktop.org/show_bug.cgi?id=50970

12 years agoDisable introspection again
Behdad Esfahbod [Sun, 24 Jun 2012 17:20:56 +0000 (13:20 -0400)]
Disable introspection again

Until I figure out the build issues.  Sigh...

12 years agoMinor
Behdad Esfahbod [Sun, 17 Jun 2012 18:58:59 +0000 (14:58 -0400)]
Minor

12 years agoGStaticMutex is deprecated
Behdad Esfahbod [Sat, 16 Jun 2012 19:40:03 +0000 (15:40 -0400)]
GStaticMutex is deprecated

12 years agog_thread_init() is deprecated
Behdad Esfahbod [Sat, 16 Jun 2012 19:26:13 +0000 (15:26 -0400)]
g_thread_init() is deprecated

12 years agoMake source more digestable for gobject-introspection
Behdad Esfahbod [Sat, 16 Jun 2012 19:21:55 +0000 (15:21 -0400)]
Make source more digestable for gobject-introspection

12 years agoFlesh out gobject-introspection stuff a bit
Behdad Esfahbod [Sat, 16 Jun 2012 19:21:41 +0000 (15:21 -0400)]
Flesh out gobject-introspection stuff a bit

12 years agoAdd TODO item
Behdad Esfahbod [Sat, 16 Jun 2012 18:53:51 +0000 (14:53 -0400)]
Add TODO item

12 years agoMinor
Behdad Esfahbod [Tue, 12 Jun 2012 13:52:57 +0000 (09:52 -0400)]
Minor

12 years agoAdd hb_object_lock/unlock()
Behdad Esfahbod [Sat, 9 Jun 2012 18:58:01 +0000 (14:58 -0400)]
Add hb_object_lock/unlock()

12 years agoUgh
Behdad Esfahbod [Sat, 9 Jun 2012 07:26:16 +0000 (03:26 -0400)]
Ugh

12 years agoMore Oops! Fix fast-path with sub-type==0
Behdad Esfahbod [Sat, 9 Jun 2012 07:11:22 +0000 (03:11 -0400)]
More Oops!  Fix fast-path with sub-type==0

12 years agoOops!
Behdad Esfahbod [Sat, 9 Jun 2012 07:07:59 +0000 (03:07 -0400)]
Oops!

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 07:05:20 +0000 (03:05 -0400)]
Minor

12 years agoAdd sanitize() logic for fast-paths
Behdad Esfahbod [Sat, 9 Jun 2012 07:02:36 +0000 (03:02 -0400)]
Add sanitize() logic for fast-paths

12 years agoAdd fast-path for GPOS too
Behdad Esfahbod [Sat, 9 Jun 2012 06:53:57 +0000 (02:53 -0400)]
Add fast-path for GPOS too

Shaves another 3% for DejaVu Sans long Latin strings.

12 years agoAdd fast-path to GSUB to check coverage
Behdad Esfahbod [Sat, 9 Jun 2012 06:48:16 +0000 (02:48 -0400)]
Add fast-path to GSUB to check coverage

Shaves a good 10% off DejaVu Sans with simple Latin text for me.
Now, DejaVu is very ChainContext-intensive, but it's also a very
popular font!

12 years agoMatch input before backtrack
Behdad Esfahbod [Sat, 9 Jun 2012 06:26:57 +0000 (02:26 -0400)]
Match input before backtrack

Makes more sense, optimization-wise.

12 years agoAdd set add_coverage() to Coverage()
Behdad Esfahbod [Sat, 9 Jun 2012 06:02:46 +0000 (02:02 -0400)]
Add set add_coverage() to Coverage()

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 05:39:11 +0000 (01:39 -0400)]
Minor

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 05:21:02 +0000 (01:21 -0400)]
Minor

12 years agoFix cache implementation
Behdad Esfahbod [Sat, 9 Jun 2012 05:18:58 +0000 (01:18 -0400)]
Fix cache implementation

12 years agoMicro-optimize
Behdad Esfahbod [Sat, 9 Jun 2012 05:10:26 +0000 (01:10 -0400)]
Micro-optimize

I know...

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 04:56:41 +0000 (00:56 -0400)]
Minor

12 years agoUse linear search for small counts
Behdad Esfahbod [Sat, 9 Jun 2012 04:50:40 +0000 (00:50 -0400)]
Use linear search for small counts

I see about 8% speedup with long strings with DejaVu Sans.

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 04:26:32 +0000 (00:26 -0400)]
Minor

12 years agoMinor. Hide _hb_ot_layout_get_glyph_property()
Behdad Esfahbod [Sat, 9 Jun 2012 04:24:38 +0000 (00:24 -0400)]
Minor.  Hide _hb_ot_layout_get_glyph_property()

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 04:23:24 +0000 (00:23 -0400)]
Minor

12 years agoIn MarkBase attachment, only attach to first of a MultipleSubst sequence
Behdad Esfahbod [Sat, 9 Jun 2012 02:04:23 +0000 (22:04 -0400)]
In MarkBase attachment, only attach to first of a MultipleSubst sequence

This is apparently what Uniscribe does.  Test case is:

  SEEN FATHA TEH ALEF

with Arabic Typesetting.  Originally reported by Khaled Hosny.

12 years agoSet lig_comp for MultipleSubst components
Behdad Esfahbod [Sat, 9 Jun 2012 01:47:23 +0000 (21:47 -0400)]
Set lig_comp for MultipleSubst components

To be used for correct mark attachment to first component of a
MultipleSubst output.  That's what Uniscribe does.

12 years agoRemove unused buffer->replace_glyphs_be16
Behdad Esfahbod [Sat, 9 Jun 2012 01:45:00 +0000 (21:45 -0400)]
Remove unused buffer->replace_glyphs_be16

12 years agoDon't use replace_glyphs_be for MultipleSubst
Behdad Esfahbod [Sat, 9 Jun 2012 01:44:06 +0000 (21:44 -0400)]
Don't use replace_glyphs_be for MultipleSubst

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 01:41:46 +0000 (21:41 -0400)]
Minor

12 years agoAdd test for static initializers and other C++ stuff
Behdad Esfahbod [Sat, 9 Jun 2012 01:32:43 +0000 (21:32 -0400)]
Add test for static initializers and other C++ stuff

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 01:29:18 +0000 (21:29 -0400)]
Minor

12 years agoRemove done TODO items
Behdad Esfahbod [Sat, 9 Jun 2012 01:01:45 +0000 (21:01 -0400)]
Remove done TODO items

12 years agoMerge clusters during normalization
Behdad Esfahbod [Sat, 9 Jun 2012 01:01:20 +0000 (21:01 -0400)]
Merge clusters during normalization

12 years agoMinor
Behdad Esfahbod [Sat, 9 Jun 2012 00:56:05 +0000 (20:56 -0400)]
Minor