Behdad Esfahbod
151d93de8a
[GX] Hook up GPOS to Variation Store stored in GDEF
...
Untested.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
dc9f229799
[GX] Port variation stuff to Variation Store design
...
Not hooked up to GDEF yet.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
8dddc231cf
[GX] Revert "[GX] Add VariationAlternates, to allow conditional lookups in GSUB/GPOS"
...
This reverts commit 2859f1c7174d6f7ae5dcf0db5411bc0182b21594.
We are going in a different direction.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
baa329c6a1
[GX] Add compact VariationDevice implementation
...
Add compact format that uses signed bytes instead of shorts.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
71b06fd392
[GX] Add VariationAlternates, to allow conditional lookups in GSUB/GPOS
...
Not hooked up to runtime yet.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
976eeb8e02
[GX] Minor
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
ed8a9067ca
[GX] Minor
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
15c5ee6747
[GX] Minor rename
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
4c535a822f
[GX] Hookup VariationDevice to Device table implementation
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
a0c2366075
[GX] Break out early if factor is zero
...
Also disable sanity-checking of variation records.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
ca28670316
[GX] Towards anisotropic interpolation
...
Also hookup to ValueRecord and Anchors.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
6d9d3c55bb
[GX] Add data types for encoding numerical variations
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
851b0db36d
Minor. We should never get to this branch, but fix it anyway.
2016-04-08 23:46:55 -07:00
Behdad Esfahbod
d163dc18e6
Minor
2016-01-12 13:05:01 +00:00
Behdad Esfahbod
da2fcfdc51
Don't count fixing-up FeatureParams offset as error
...
The font Garamond Premier Pro Caption (and possibly many other
Adobe fonts), have many FeatureParamsSize tables with the old
wrong offset. We handle fixing those up, but they were still
contributing to edit_count, and when I reduced HB_SANITIZE_MAX_EDIT
from 100 to 8 in 14c2de3218
, these
fonts were now getting GPOS dropped and hence kerning disabled.
Fix, by not counting edits made towareds offset fix-up. I'll
also increase edit count again, in the next commit.
2016-01-05 13:23:45 +00:00
Chun-wei Fan
167c327177
Fix build on MSVC >= 2012
...
Use the DEFINE_ENUM_FLAG_OPERATORS macro in winnt.h on Visual Studio,
which defines the bitwise operators for the enumerations that we want to
mark as hb_mark_as_flags_t, which will take care of the situation on newer
Visual Studio (>= 2012), where the build breaks with C2057 errors as the
underlying types of the enumerations is not clear to the compiler when we
do a bitwise op within the declaration of the enumerations themselves.
Also disable the C4200 (nonstandard extension used : zero-sized array in
struct/union) and C4800 ('type' : forcing value to bool 'true' or 'false'
(performance warning)) warnings as the C4200 is the intended scenario and
C4800 is harmless but is so far an unavoidable side effect of using
DEFINE_ENUM_FLAG_OPERATORS.
2015-11-17 12:19:22 +08:00
Behdad Esfahbod
aa7044de0c
Generalize flags types
2015-11-04 16:25:57 -08:00
Behdad Esfahbod
5ba450407b
Make max context-length and max nesting level configurable
...
...at compile time.
2015-11-02 15:43:39 -08:00
Behdad Esfahbod
613e630617
Reduce max nesting level from 8 to 6
...
We probably should implement better system to catch cyclic lookups.
But for now, this speeds up worst case behavior with broken fonts
considerably without compromising legitimate usecases.
https://github.com/behdad/harfbuzz/issues/139#issuecomment-147788447
2015-10-13 23:33:28 -03:00
Behdad Esfahbod
b47159011c
Define return_trace()
...
Not functional change (expected!).
2015-09-29 14:57:02 +01:00
Behdad Esfahbod
ef79bdf73b
Minor
2015-02-25 15:43:35 -08:00
Behdad Esfahbod
8e3d4bae03
Minor
2015-02-25 15:43:33 -08:00
Behdad Esfahbod
40c58923cb
[layout] Refactor Lookup::dispatch()
2015-02-25 15:43:30 -08:00
Behdad Esfahbod
70366f5d19
[layout] Refactor get_subtable()
2015-02-25 15:43:29 -08:00
Behdad Esfahbod
de2118ed7a
Make sanitize() a const method
...
This makes a lot of code safer. We only try modifying the object in one
place, after making sure it's safe to do so. So, do a const_cast<> in
that one place...
2015-02-25 15:43:28 -08:00
Behdad Esfahbod
7627100f42
Mark unsigned integer literals with the u suffix
...
Simplifies hb_in_range() calls as the type can be inferred.
The rest is obsessiveness, I admit.
2014-07-11 16:22:13 -04:00
Behdad Esfahbod
7d4ada66c9
Mark unsed members with a "Z" suffix
...
There may be more. There are members that are by definition
redundant or reserved and not needed, NOT what we *currently*
don't use.
I'm sure there's more...
2014-06-27 17:32:56 -04:00
Behdad Esfahbod
586b60622c
Minor: final bits of cleanup
2014-06-27 15:39:47 -04:00
Behdad Esfahbod
99d2817123
Minor: Remove GenericOffset
2014-06-27 15:19:15 -04:00
Behdad Esfahbod
9da552dcc5
Minor: Remove some GenericXXX templates
2014-06-27 15:18:36 -04:00
Behdad Esfahbod
df554af99d
Rename search() to bsearch() and lsearch()
...
Such that the complexity of the algorithm used is clear at
call site.
2014-06-19 15:39:18 -04:00
Behdad Esfahbod
51f563579b
Move try_set to sanitize context
2014-06-04 18:42:32 -04:00
Behdad Esfahbod
dac86026a6
Fix some cppcheck warnings
...
Bug 77800 - cppcheck reports
2014-06-03 17:57:00 -04:00
Behdad Esfahbod
e1ebf01d0c
Minor
2013-11-26 18:00:35 -05:00
Behdad Esfahbod
a182dbc9e4
Minor
2013-11-26 17:53:41 -05:00
Behdad Esfahbod
83408cf804
Fix llvm warnings on Mac
...
Patch from Scott Fleischman. Warnings were:
harfbuzz/src/hb-font-private.hh:121:42: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
harfbuzz/src/hb-font-private.hh:126:42: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
harfbuzz/src/hb-font-private.hh:400:85: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
harfbuzz/src/hb-ot-layout-common-private.hh:1115:37: Implicit conversion
loses integer precision: 'long long' to 'int'
harfbuzz/src/hb-ft.cc:421:97: Implicit conversion loses integer
precision: 'unsigned long long' to 'int'
harfbuzz/src/hb-ft.cc:422:97: Implicit conversion loses integer
precision: 'unsigned long long' to 'int'
2013-11-06 14:46:04 -05:00
Behdad Esfahbod
ba6ddc421e
[otlayout] Increase MAX_CONTEXT_LENGTH
...
It's cheap.
2013-10-17 13:52:51 +02:00
Behdad Esfahbod
6b65a76b40
[otlayout] Fix (Chain)Context recursion!
...
Previously we only supported recursive sublookups with
ascending indices. We were also not correctly handling
non-1-to-1 recursed lookups.
Fix all that!
Fixes the three tests in test/shaping/tests/context-matching.tests,
which were derived from NotoSansBengali and NotoSansDevanagari
among others.
2013-10-14 18:54:51 +02:00
Behdad Esfahbod
515a0ac81e
Fix compiler warning
2013-08-09 09:40:59 -04:00
Behdad Esfahbod
625678436c
Fix glyph closure with class==0
...
As reported by cibu. Untested.
2013-08-05 22:44:18 -04:00
Behdad Esfahbod
48382e2f41
Minor
2013-07-30 18:25:39 -04:00
Behdad Esfahbod
797d76d07f
Minor
2013-04-18 19:04:12 -04:00
Behdad Esfahbod
1ffd23cb47
[OTLayout] Limit alternate-location FeatureParams to 'size' feature
2012-12-17 23:29:15 -05:00
Behdad Esfahbod
efe252e600
[OTLayout] Fix 'size' featureParams implementation
...
Looks at alternate location now.
2012-12-17 23:25:57 -05:00
Behdad Esfahbod
9b54562d63
[OTLayout] Towards correct FeatureParams handling
2012-12-17 13:55:36 -05:00
Behdad Esfahbod
87e43b7f2b
[OTLayout] Wire tag and list start all the way to Feature
...
To fix FeatureParam issues. No actual fix yet, just plumbing.
2012-12-14 17:48:23 -05:00
Behdad Esfahbod
0bae50a36f
[OTLayout] Add FeatureParamsCharacterVariants struct
...
No API yet.
2012-12-11 16:29:24 -05:00
Behdad Esfahbod
875a5cbc9c
[OTLayout] Change hb_ot_layout_get_params() API
...
And add implementation for StylisticSet UINameID. No API yet.
2012-12-11 14:17:01 -05:00
Behdad Esfahbod
f54cce3c6a
[OTLayout] Implement 'size' feature
2012-11-26 14:02:31 +02:00
Behdad Esfahbod
2dc1141d7d
[OTLayout] Remove operator() from ClassDef
2012-11-24 19:16:34 -05:00
Behdad Esfahbod
b67881b171
[OTLayout] Remove operator() from Coverage
2012-11-24 19:13:55 -05:00
Behdad Esfahbod
be218c688c
Pass this object to trace macros
2012-11-23 15:32:14 -05:00
Behdad Esfahbod
7d52e6601f
Whitespace
2012-11-16 18:49:54 -08:00
Behdad Esfahbod
89ca8eeb83
Implement hb_ot_layout_get_glyphs_in_class()
2012-11-16 13:53:40 -08:00
Behdad Esfahbod
365f27ab5b
Work around older compilers
...
As reported on the list:
I am seeing a similar problem building harfbuzz 0.9.5 with Apple gcc
4.0.1 on OS X 10.5 Leopard:
hb-ot-layout-common-private.hh:406: error: 'struct
OT::CoverageFormat1::Iter' is private
hb-ot-layout-common-private.hh:646: error: within this context
hb-ot-layout-common-private.hh:500: error: 'struct
OT::CoverageFormat2::Iter' is private
hb-ot-layout-common-private.hh:647: error: within this context
make[4]: *** [libharfbuzz_la-hb-ot-layout.lo] Error 1
Also reported as happening with MSVC 2005.
2012-11-12 11:16:57 -08:00
Behdad Esfahbod
fabd3113a9
[OT] Port Arabic fallback shaping to synthetic GSUB
...
All of init/medi/fina/isol and rlig implemented.
Let there be dragons... ⻯
2012-09-06 00:51:44 -04:00
Behdad Esfahbod
b3b89b6658
[OT] Add SubstLookup serialize API
2012-09-04 21:28:33 -04:00
Behdad Esfahbod
652d1e0d64
[OT] Start adding Lookup-level serialize API
2012-09-04 20:00:44 -04:00
Behdad Esfahbod
a930c68e9c
[OT] More serialize. Implements all basic GSUB subtables
2012-09-04 19:16:09 -04:00
Behdad Esfahbod
c61be03d6d
[OT] A bit more serialize
2012-09-01 21:49:44 -04:00
Behdad Esfahbod
bc5be24014
[OT] Restart work on serialize()
2012-09-01 21:25:20 -04:00
Behdad Esfahbod
9f2348de58
[OT] Add serialize() for Coverage
2012-08-29 21:08:59 -04:00
Behdad Esfahbod
7c8e844d92
Use namespace for OpenType tables
...
Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API.
2012-08-28 17:57:49 -04:00
Behdad Esfahbod
a321e1d51e
Revert "Reject lookups with no subTable"
...
This reverts commit 30ec9002d8
.
See previous commit.
2012-08-09 18:30:34 -04:00
Behdad Esfahbod
c8accf1dd2
[OT] Templatize Coverage::add_coverage()
2012-08-01 21:05:57 -04:00
Behdad Esfahbod
dadede012e
Minor
2012-07-28 18:13:09 -04:00
Behdad Esfahbod
30ec9002d8
Reject lookups with no subTable
2012-07-28 17:25:20 -04:00
Behdad Esfahbod
ec8d249469
Make data members of various OpenType structs protected instead of private
...
Should fix warnings generated when building with -Wunused-private-field.
Based on patch from Jonathan Kew.
2012-07-24 15:40:37 -04:00
Behdad Esfahbod
67bb9e8cea
Add set add_coverage() to Coverage()
2012-06-09 02:02:46 -04:00
Behdad Esfahbod
caf0412690
Minor
2012-06-09 00:26:32 -04:00
Behdad Esfahbod
3f18236a03
Fix more warnings
2012-05-13 16:20:10 +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
0ab8c86217
Annotate SANITIZE return values
...
More to come, for APPLY, CLOSURE, etc.
2012-05-11 02:11:52 +02: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
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
7d50d50263
Add Coverage iterators
2012-04-23 13:04:05 -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
11138ccff7
Add normalize mode
...
In preparation for Hangul shaper.
2012-04-05 17:25:19 -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
31f18abecb
Minor compiler warning fixes
2011-06-15 09:49:58 -04:00
Behdad Esfahbod
abcfe9b59b
Remove hb_ot_layout_context_t, simplify code
2011-05-11 00:02:02 -04:00
Behdad Esfahbod
2409d5f8d7
Update Copyright headers
2011-04-21 17:14:28 -04:00
Behdad Esfahbod
da97541988
[API] Allow negative font x_scale/y_scale
...
I was reconsidering whether y should grow down, since all three/four
times I've used this API I was tricked and got that wrong in my use.
So I was very inclined to make y grow down instead of up. However,
considering that the font space has y up and it would be very confusing
for callbacks to work against that, I decided that what I really want
is for the user to be able to set y_scale to a negative number to imply
that user-space y grows down.
Changing x_scale/y_scale from unsigned int to int allows that, and I've
made pango to use that instead of negating glyph y_offset later. hb-ft
however still has y group up. I *guess* that's how FreeType works?
I'm not sure, FreeType docs don't make this clear...
I'm happy with the resolution :-).
2011-04-21 15:15:02 -04:00
Behdad Esfahbod
4e22c7e941
Add comment
2010-11-03 16:10:12 -04:00
Behdad Esfahbod
8c69e65abe
Rename lookup_flags to lookup_props since it's more than just flags
2010-11-02 19:12:59 -04:00
Behdad Esfahbod
98370e89d1
WIP removing external synthesized GDEF support and implementing it internally
2010-11-02 19:12:58 -04:00
Behdad Esfahbod
d6c9eadb88
Remove more pointless LONGTERMTODO items
2010-10-27 12:34:50 -04:00
Behdad Esfahbod
7f97d2cd90
Pedantic
2010-10-01 19:09:01 -04:00
Behdad Esfahbod
36b3862009
One fewer cmp() implementation...
2010-09-29 12:10:24 -04:00
Behdad Esfahbod
4e573715ae
Improve cmp function parameter namings and casts
...
No semantic change.
2010-09-28 16:28:57 -04:00
Behdad Esfahbod
9dc45401c0
Fix stupid bug in bsearch cmp function!
2010-09-28 16:23:28 -04:00
Behdad Esfahbod
5bd1e95236
Speedup Device table delta computation for common cases
2010-09-22 16:46:18 -04:00
Behdad Esfahbod
acdba3f90b
Prefer C linkage
2010-07-23 15:39:27 -04:00
Behdad Esfahbod
fd56ae4963
Don't bother sorting, it's a safe font error if the array is not sorted
2010-07-08 00:53:40 -04:00
Behdad Esfahbod
cc8a4abea6
Use bsearch where applicable
2010-07-08 00:40:04 -04:00
Behdad Esfahbod
b634beb39e
Fix delta scale, again...
2010-05-20 17:44:52 +01:00