Commit Graph

68 Commits

Author SHA1 Message Date
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