Commit Graph

4227 Commits

Author SHA1 Message Date
Behdad Esfahbod 8b427c78ef [uniscribe] Sanitize font file 2013-07-22 10:57:05 -04:00
Behdad Esfahbod 12ff69df21 [uniscribe] Handle TTC when renaming font 2013-07-22 10:52:12 -04:00
Behdad Esfahbod 05bad3b8c2 [uniscribe] Use OT::* types 2013-07-21 17:19:09 -04:00
Behdad Esfahbod bdeea605fe [uniscribe] Move name generation into separate function 2013-07-21 17:19:09 -04:00
Behdad Esfahbod 73f947e2a7 [uniscribe] Use blob to pass data around 2013-07-21 17:19:09 -04:00
Behdad Esfahbod 8ac2e88def [uniscribe] Use unique font name
When installing per-process fonts using AddFontMemResourceEx(),
if a font with the same family name is already installed, sometimes
that one gets used.  Which is problematic for us.  As such, we
now mangle the font to install a new 'name' table with a unique
name, which we then use to choose the font.

Patch from Jonathan Kew.
2013-07-21 17:17:44 -04:00
Behdad Esfahbod 8751de5083 Followup fix for 3f9e2dced2
During GSUB, if a ligation happens, subsequence context input matching
matches the new indexing.  During GPOS however, the indices never
change.  So just go one by one.

Fixes 'dist' positioning with mmrtext.ttf and the following sequence:

  U+1014,U+1039,U+1011,U+1014,U+1039,U+1011,U+1014,U+1039,U+1011

Reported by Jonathan Kew.
2013-07-18 16:29:50 -04:00
Behdad Esfahbod 2b78d67e9f 0.9.19 2013-07-16 16:06:27 -04:00
Behdad Esfahbod e509d35cf1 [ft] hb_ft_get_glyph_from_name fails for the name of glyph id 0
Based on patch from Jonathan Kew, as reported on the mailing list.
2013-07-11 14:56:45 -04:00
Behdad Esfahbod 29b596ac67 [uniscribe] Fix buffer allocation
Email from Jonathan Kew:

My cygwin build kept aborting on certain test words when run with the
uniscribe backend. Turned out this was caused by a bug in the allocation
of scratch buffers in hb-uniscribe.cc.

Commit 2a17f9568d introduced a new line

  ALLOCATE_ARRAY (SCRIPT_VISATTR, vis_attr, glyphs_size);

but it failed to account for this in the computation of glyphs_size
(the number of glyphs for which scratch buffer space is available),
with the result that the vis_clusters array ends up overrunning the
end of the scratch buffer and clobbering the beginning of the buffer's
info[].

AFAICS, the vis_attr array is not actually used, so the simple fix is
to remove the line that allocates it. (If/when we -do- need to use
vis_attr for something, we'll need to add another term to the earlier
calculation of glyphs_size.)

With this patch, the uniscribe backend runs reliably again.

JK
2013-07-08 08:37:15 -06:00
Behdad Esfahbod 9245e98742 [Indic] Add Javanese config
We should add for other scripts too, send me the virama codepoint
and script name...
2013-06-26 20:57:58 -04:00
Behdad Esfahbod 5f85c80a07 [OT] Collect requiredFeature only if features are not provided
As per Werner's report on the list.
2013-06-26 20:14:18 -04:00
Behdad Esfahbod 3f9e2dced2 Fix contextual lookup recursion indexing
See email thread "Skipping Control for Attaching Marks using OpenType"
from earlier this month.
2013-06-26 19:46:55 -04:00
Behdad Esfahbod f5da11e0fa Merge pull request #3 from LogosBible/master
Destroy lookups before blobs.
2013-06-22 08:04:05 -07:00
Bradley Grainger 89312b7417 Destroy lookups before blobs.
'layout->gsub' may depend on data owned by 'layout->gsub_blob', so it must
be deinitialized before the blob is destroyed.
2013-06-21 15:02:18 -07:00
Behdad Esfahbod 79d1007a50 If variation selector is not consumed by cmap, pass it on to GSUB
This changes the semantics of get_glyph() callback and expect that
callbacks return false if the requested variant is not available, and
then we will call them back with variation_selector=0 and will retain
the glyph for the selector in the glyph stream.

Apparently most Mongolian fonts implement the Mongolian Variation
Selectors using GSUB, not cmap.

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

Note that this doesn't fix the Mongolian shaping yet, because the way
that's implemented is that the, say, 'init' feature ligates the letter
and the variation-selector.  However, since currently the variation
selector doesn't have the 'init' mask on, it will not be matched...
2013-06-13 19:01:07 -04:00
Behdad Esfahbod c7a8491720 Skip over multiple variation selectors in a row 2013-06-10 15:08:49 -04:00
Behdad Esfahbod 7235f33f9e Fix misc warnings reported by cppcheck
https://bugs.freedesktop.org/show_bug.cgi?id=65544
2013-06-10 15:08:49 -04:00
Behdad Esfahbod 570bcccd3f Fix PKG_CHECK_MODULES usage
Oops.

Bug 65246 - Fix build without graphite2
2013-06-10 13:57:25 -04:00
Behdad Esfahbod 270cfd7a9c Fix PKG_CHECK_MODULES usage
Bug 65246 - Fix build without graphite2

If we don't provide ACTION-IF-NOT-FOUND, configure aborts if it can't
find the libraries.  We handle that ourselves so we don't want the
macro to abort.
2013-06-06 18:57:15 -04:00
Behdad Esfahbod 2fd0e02706 Minor 2013-06-06 17:16:01 -04:00
Chun-wei Fan b4c5c52944 util/ansi-print.cc: Use fallback implementation for lround on MSVC
Unfortuately Visual Studio (still) does not support the C99 function
lround, so provide a fallback implementation for it.
2013-06-03 18:50:26 -04:00
Behdad Esfahbod a4446b10bf Fix build for C89 compilers 2013-06-03 18:39:14 -04:00
Behdad Esfahbod 4ddf937242 Remove unnecessary stdint.h include 2013-06-03 18:36:26 -04:00
Chun-wei Fan 93a04b8b5e hb-uniscribe.cc: Re-enable build under Visual Studio
-Declare hinstLib at the top of block
-Fix the definitions of the typedefs of ScriptItemizeOpenType,
 ScriptShapeOpenType and ScriptPlaceOpenType
2013-06-03 18:32:59 -04:00
Behdad Esfahbod 280e52ae95 Fix ChangeLog regen 2013-05-30 18:04:24 -04:00
Behdad Esfahbod c1824daefa Update TODO 2013-05-29 15:30:54 -04:00
Behdad Esfahbod 2966d36032 Fix test build 2013-05-28 17:34:37 -04:00
Behdad Esfahbod 6873f6cc42 Minor 2013-05-28 17:33:16 -04:00
Behdad Esfahbod 4014aa4e53 0.9.18 2013-05-28 17:28:59 -04:00
Behdad Esfahbod d70be29831 Fix dist 2013-05-28 17:27:31 -04:00
Behdad Esfahbod 22ce096174 Generate harfbuzz-icu.pc
Currently it only works with ICU that has .pc files.  I'll
wait till someone complains before fixing it for icu-config
systems.
2013-05-28 17:18:30 -04:00
Behdad Esfahbod d9afa11133 Build hb-icu into libharfbuzz-icu.so 2013-05-28 15:27:40 -04:00
Behdad Esfahbod 7d395c2a25 Minor 2013-05-28 15:25:06 -04:00
Behdad Esfahbod 2a17f9568d Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP
Fallback to older API if OpenType variants are not available.
2013-05-28 13:13:46 -04:00
Behdad Esfahbod f8087ffbad Add --with-cairo 2013-05-27 19:44:26 -04:00
Behdad Esfahbod 82eddfe5d6 Add --with-freetype
Defaults to auto.
2013-05-27 19:33:36 -04:00
Behdad Esfahbod 5e25eb77a4 Default glib to auto again 2013-05-27 19:30:48 -04:00
Behdad Esfahbod eb63e786f3 Add --with-coretext
Defaults to no.
2013-05-27 19:29:09 -04:00
Behdad Esfahbod ab2af17bc6 Add --with-uniscribe
Defaults to no.
2013-05-27 19:27:43 -04:00
Behdad Esfahbod 58db2c2542 Disable UCDN if glib is available
We only want UCDN if we don't have any other Unicode provider.
I'm going to remove ICU from the list of default Unicode providers
as part of moving hb-icu into its own library.  As such, the only
providers will be UCDN and glib.
2013-05-27 19:10:33 -04:00
Behdad Esfahbod ca65326cbd Minor 2013-05-27 19:09:50 -04:00
Behdad Esfahbod 7ae14973ec Disable icu_le shaper
Will add a way to enable it later.
2013-05-27 19:06:50 -04:00
Behdad Esfahbod 7e6ebf7623 Remove icu-config fallback for icu_le shaper
Bug 64878 - compile error with ICU but not ICU
2013-05-27 19:06:03 -04:00
Behdad Esfahbod 932b747147 Bug 65053 - Add configure option to enable/disable ICU support 2013-05-27 19:04:40 -04:00
Behdad Esfahbod cf2c1c7eb8 Disable hb-old shaper
Will add proper way to enable it later.
2013-05-27 18:56:05 -04:00
Behdad Esfahbod 5a78d23f25 Bug 65054 - Add configure option to enable/disable Graphite2
Add --with-graphite2.  Defaults to off.
2013-05-27 18:56:02 -04:00
Behdad Esfahbod 61e7775fa7 Remove hb-icu dependency from hb-icu-le shaper 2013-05-27 18:24:56 -04:00
Behdad Esfahbod 7e08f1258d Don't zero advance of mark-non-mark ligatures
If there's a mark ligating forward with non-mark, they were
inheriting the GC of the mark and later get advance-zeroed.
Don't do that if there's any non-mark glyph in the ligature.

Sample test: U+1780,U+17D2,U+179F with Kh-Metal-Chrieng.ttf

Also:
Bug 58922 - Issue with mark advance zeroing in generic shaper
2013-05-27 14:50:00 -04:00
Behdad Esfahbod cf059ac69d [icu_le] Support non-BMP text 2013-05-24 15:28:11 -04:00