summaryrefslogtreecommitdiff
path: root/src/sfnt.h
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2024-01-08 15:32:07 +0800
committerPo Lu <luangruo@yahoo.com>2024-01-08 15:51:51 +0800
commit2656d756851d97434da7846a5a30202baafb2241 (patch)
tree9f980e028ad0ace01145cac8686f39272aa126dc /src/sfnt.h
parentc946efe7b3778302cd64442b451f806f4be7e78e (diff)
downloademacs-2656d756851d97434da7846a5a30202baafb2241.tar.gz
Properly instruct Italic Arial or BS Mono at small PPEM sizes
* src/sfnt.c (sfnt_read_simple_glyph): Correct alignment errors. (PUSH2_UNCHECKED): Don't shift negative signed value to the left. (SLOOP): Permit LOOP to be set to 0, which inhibits the execution of instructions it affects. (sfnt_address_zp2, sfnt_address_zp1, sfnt_address_zp0): Permit X and Y to be NULL. (sfnt_dot_fix_14): Guarantee that the final value is rounded to negative infinity, not zero. (sfnt_project_zp1_zp0_org): New function. (sfnt_interpret_mdrp): Avoid rounding issues by computing original distance from unscaled coordinates, if at all possible. (sfnt_interpret_simple_glyph, sfnt_interpret_compound_glyph_2): Set zone->simple. (all_tests) <LOOP>: Update test. (sfnt_identify_instruction, main): Adjust tests. * src/sfnt.h (struct sfnt_interpreter_zone): New field simple.
Diffstat (limited to 'src/sfnt.h')
-rw-r--r--src/sfnt.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sfnt.h b/src/sfnt.h
index 2b92f9f540a..5b01270e8ce 100644
--- a/src/sfnt.h
+++ b/src/sfnt.h
@@ -1759,6 +1759,10 @@ struct sfnt_interpreter_zone
/* Pointer to the flags associated with this data. */
unsigned char *flags;
+
+ /* If this structure was produced from a simple glyph, pointer to
+ the simple glyph itself. NULL otherwise. */
+ struct sfnt_simple_glyph *simple;
};
enum