Henri Verbeet
34c2f74518
usp10: Avoid LPWORD.
...
And cleanup a style issue along the way.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-23 15:13:38 +01:00
Henri Verbeet
ab8ec605b8
usp10: Avoid LPPOINT.
...
And cleanup some style issues along the way.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-23 15:13:35 +01:00
Henri Verbeet
ba66b626eb
usp10: Avoid LPOUTLINETEXTMETRICW.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 13:22:45 +01:00
Henri Verbeet
c8f87ad3ed
usp10: Make the script cache parameter to GPOS_apply_MarkToBase() const.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 13:22:41 +01:00
Henri Verbeet
cd9db34e51
usp10: Pass const metrics to GPOS_convert_design_units_to_device().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 13:22:40 +01:00
Henri Verbeet
6a0e5bb79d
usp10: Use heap_alloc() instead of HeapAlloc().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-10 23:21:26 +01:00
Henri Verbeet
77e5a2fba9
usp10: Use heap_alloc_zero() instead of HeapAlloc() with HEAP_ZERO_MEMORY.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-10 23:21:26 +01:00
Henri Verbeet
bab506e1cd
usp10: Use memmove() in GSUB_apply_LigatureSubst().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-01 15:56:56 +01:00
Nikolay Sivov
892393bb76
usp10: Filter out DeltaFormat == 0 too, valid range is [1, 3].
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 14:04:12 +01:00
Henri Verbeet
66dce1e75f
usp10: Introduce an enumeration for GSUB lookup types.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 14:04:06 +01:00
Nikolay Sivov
fefd15118f
usp10: Ignore device tables with invalid delta format.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:14:28 +01:00
Henri Verbeet
6fec9b1325
usp10: Return the logical offset in GPOS_apply_lookup().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:09:04 +01:00
Henri Verbeet
8d1566735f
usp10: Return the logical offset in GPOS_apply_ChainContextPos().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:09:02 +01:00
Henri Verbeet
22101966cf
usp10: Return the logical offset in GPOS_apply_ContextPos().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:09:00 +01:00
Henri Verbeet
6e84358bcd
usp10: Return the logical offset in GPOS_apply_PairAdjustment().
...
The base index is redundant, and actually makes it harder to iterate in
logical order in GPOS_apply_feature().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:08:58 +01:00
Henri Verbeet
61e8a388b2
usp10: Introduce an enumeration for GPOS lookup types.
...
As opposed to using magic numbers.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:08:53 +01:00
Aric Stewart
e2d4cf9e29
usp10: Fix next index for RTL MultipleSubst.
...
MultipleSubst will expand the glyph array to the right, so when the
writing direction is RTL the next index does not need to be modified by
the new count of glyphs.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:47 +01:00
Aric Stewart
0401bdfad6
usp10: Change GSUB_E_NOGLYPH value.
...
-1 is a potentially valid index to return for RTL languages.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:47 +01:00
Aric Stewart
aae5a831e2
usp10: Implement Chaining Context Substitution Format 2: Class-based Chaining Context Glyph Substitution.
...
Used by the font Noto Nastaliq Urdu.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 20:04:52 +01:00
Aric Stewart
b98a70aa40
usp10: Implement Contextual Positioning Subtable: Format 2.
...
Used by the font Noto Nastaliq Urdu.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 20:04:52 +01:00
Aric Stewart
5e6b2c0ed6
usp10: Implement GSUB Context Substitution types 1 and 2.
...
Used by the font Noto Nastaliq Urdu.
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 20:04:51 +01:00
Hadrien Boizard
37840f84ff
usp10: Use wine_dbgstr_point in TRACES.
...
Signed-off-by: Hadrien Boizard <h.boizard@gmail.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 00:09:21 +09:00
Nikolay Sivov
9da5adce66
usp10: Some spelling fixes.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-06 12:50:31 +09:00
Aric Stewart
12fb74ac56
usp10: Handle GSUB SubType 7: Extension Substitution.
...
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-13 13:23:31 +09:00
Sebastian Lackner
ebd1b86bbb
usp10: Silence repeated GSUB_apply_ChainContext[Subst|Pos] FIXMEs.
2014-11-06 23:47:11 +09:00
Michael Stefaniuc
7585859986
usp10: Removed unused variable (PVS-Studio).
2014-10-29 20:31:07 +09:00
Phil Krylov
c9cbde73c0
usp10: Support GPOS extension lookup subtables.
2013-03-25 14:03:52 +01:00
Aric Stewart
237ed21737
usp10: Fix memory leak when a font has 0 languages, scripts or features.
...
Based on original fix proposded by Wojciech Pyczak.
2013-02-08 19:31:31 +01:00
Aric Stewart
c1f190a0c5
usp10: GPOS Mark to Base seeks back in the string to the first glyph that is not a mark for its base.
2013-01-21 12:14:34 +01:00
Aric Stewart
287243a9b9
usp10: Group the GDEF table loading with the other opentype tables.
2013-01-21 12:14:19 +01:00
Aric Stewart
6b8c910b37
usp10: MarkToMark calculations may need to happen even if the offset is 0.
2013-01-18 14:47:11 +01:00
Aric Stewart
62b4f31d6d
usp10: Implement GPOS Cursive Attachment Positioning Subtable.
2013-01-17 20:28:48 +01:00
Aric Stewart
e5ab22d684
ups10: Mark to Base, Mark and Ligature are not cumulative offsets.
2013-01-15 14:39:08 +01:00
Huw Davies
6ae41d015c
usp10: Fix MarkToMark offset for RTL text.
2013-01-14 17:35:25 +01:00
Huw Davies
464bf22fdf
usp10: Fix pair adjustment for RTL text.
2013-01-14 17:35:24 +01:00
Huw Davies
0783987a26
usp10: Don't compute a pair adjustment for the last glyph.
2013-01-14 17:35:24 +01:00
Huw Davies
7ba38ad62e
usp10: Fix MarkToBase offset for RTL text.
2013-01-14 17:35:23 +01:00
Huw Davies
b864b4aae2
usp10: Propagate the script analysis to the GPOS lookup functions.
2013-01-14 17:35:14 +01:00
Aric Stewart
7254a0ab4c
usp10: Implement GPOS MarkToLigature Attachment Positioning Subtable.
2013-01-10 12:23:01 +01:00
Aric Stewart
9dd91d3198
usp10: Correct issues if a feature tag is duplicated between GSUB and GPOS.
...
Identified by Huw Davies.
2013-01-08 19:09:35 +01:00
Huw Davies
496898db51
usp10: Add support for format 2 pair adjustments.
2012-12-20 18:04:41 +01:00
Huw Davies
08fcdd5f6f
usp10: Move the application of pair values to a helper function.
2012-12-20 18:04:37 +01:00
Huw Davies
79cbcf9612
usp10: Glyph class tables are just generic class tables.
2012-12-20 18:04:33 +01:00
Huw Davies
b83216c124
usp10: PairValueRecord is a variable length struct, so don't use a C array to index into them.
2012-12-19 14:38:59 +01:00
Huw Davies
c28897f3e9
usp10: Add the ability to just return the size of the value record.
2012-12-19 14:38:59 +01:00
Michael Stefaniuc
b4712d2e16
usp10: Use FIELD_OFFSET to calculate the size of a struct with variable length array.
2012-10-31 18:07:19 +01:00
André Hentschel
c41bdf98bb
usp10: Add missing break in switch (coverity).
2012-10-24 11:33:27 +02:00
Aric Stewart
af318c5fd0
usp10: Implement MarkToMark Attachment Positioning Subtable.
2012-08-16 17:13:09 +02:00
Aric Stewart
cd8c1b28ad
usp10: Correct rounding of negative offsets in GPOS.
2012-08-15 13:58:46 +02:00
Aric Stewart
e2250ce6cb
usp10: Correct implementation of Pair Positioning Adjustment: Format 1.
2012-08-15 13:55:25 +02:00