freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype][gsoc-craig-2023] Fill in more of the database,


From: Craig White (@gerzytet)
Subject: [Git][freetype/freetype][gsoc-craig-2023] Fill in more of the database, fix bug in binary search
Date: Tue, 04 Jul 2023 17:10:52 +0000

Craig White pushed to branch gsoc-craig-2023 at FreeType / FreeType

Commits:

  • cfce1acb
    by Craig White at 2023-07-04T13:10:18-04:00
    Fill in more of the database, fix bug in binary search
    

2 changed files:

Changes:

  • src/autofit/afadjust.c
    ... ... @@ -24,14 +24,110 @@ adjustment_database[] =
    24 24
         {0xC3,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*A with tilde*/
    
    25 25
         {0xC8,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*E with grave*/
    
    26 26
         {0xCC,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*I with grave*/
    
    27
    -    {0xD9,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*U with grave*/
    
    28
    -    {0xE0,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*a with grave*/
    
    29
    -    {0xEC,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*i with grave*/
    
    30
    -    {0x114, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*E with macron*/
    
    31
    -    {0x12A, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*I with macron*/
    
    32
    -    {0x12B, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*i with macron*/
    
    33
    -    {0x16A, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}, /*U with macron*/
    
    34
    -    {0x16B, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}  /*u with macron*/
    
    27
    +    {0xCD,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    28
    +    {0xCE,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    29
    +    {0xD1,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    30
    +    {0xD2,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    31
    +    {0xD3,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    32
    +    {0xD4,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    33
    +    {0xD5,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    34
    +    {0xD9,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    35
    +    {0xD1,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    36
    +    {0xDB,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    37
    +    {0xDD,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    38
    +    {0xE0,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    39
    +    {0xE1,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    40
    +    {0xE2,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    41
    +    {0xE3,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    42
    +    {0xE8,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    43
    +    {0xE9,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    44
    +    {0xEA,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    45
    +    {0xEC,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    46
    +    {0xED,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    47
    +    {0xEE,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    48
    +    {0xF1,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    49
    +    {0xF2,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    50
    +    {0xF3,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    51
    +    {0xF4,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    52
    +    {0xF5,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    53
    +    {0xF9,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    54
    +    {0xFA,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    55
    +    {0xFB,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    56
    +    {0xFD,  AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    57
    +    {0x100, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    58
    +    {0x101, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    59
    +    {0x102, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    60
    +    {0x103, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    61
    +    {0x106, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    62
    +    {0x108, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    63
    +    {0x109, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    64
    +    {0x10A, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    65
    +    {0x10B, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    66
    +    {0x10C, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    67
    +    {0x10D, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    68
    +    {0x10E, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    69
    +    {0x112, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    70
    +    {0x113, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    71
    +    {0x114, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    72
    +    {0x115, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    73
    +    {0x116, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    74
    +    {0x117, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    75
    +    {0x11B, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    76
    +    {0x11C, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    77
    +    {0x11D, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    78
    +    {0x11E, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    79
    +    {0x11F, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    80
    +    {0x120, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    81
    +    {0x121, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    82
    +    {0x123, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    83
    +    {0x124, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    84
    +    {0x125, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    85
    +    {0x128, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    86
    +    {0x129, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    87
    +    {0x12A, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    88
    +    {0x12B, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    89
    +    {0x12C, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    90
    +    {0x12D, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    91
    +    {0x12F, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    92
    +    {0x130, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    93
    +    {0x134, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    94
    +    {0x135, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    95
    +    {0x139, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    96
    +    {0x13A, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    97
    +    {0x143, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    98
    +    {0x144, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    99
    +    {0x147, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    100
    +    {0x14C, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    101
    +    {0x14D, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    102
    +    {0x14E, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    103
    +    {0x14F, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    104
    +    {0x154, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    105
    +    {0x155, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    106
    +    {0x158, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    107
    +    {0x159, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    108
    +    {0x15A, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    109
    +    {0x15B, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    110
    +    {0x15C, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    111
    +    {0x15D, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    112
    +    {0x160, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    113
    +    {0x161, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    114
    +    {0x164, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    115
    +    {0x168, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    116
    +    {0x169, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    117
    +    {0x16A, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    118
    +    {0x16B, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    119
    +    {0x16C, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    120
    +    {0x16D, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    121
    +    {0x174, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    122
    +    {0x175, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    123
    +    {0x176, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    124
    +    {0x177, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    125
    +    {0x179, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    126
    +    {0x17A, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    127
    +    {0x17B, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    128
    +    {0x17C, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    129
    +    {0x17D, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP},
    
    130
    +    {0x17E, AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP}
    
    35 131
     };
    
    36 132
     
    
    37 133
     /*Helper function: get the adjustment database entry for a codepoint*/
    
    ... ... @@ -40,7 +136,7 @@ af_adjustment_database_lookup( FT_UInt32 codepoint ) {
    40 136
         /* Binary search for database entry */
    
    41 137
         FT_Int low = 0;
    
    42 138
         FT_Int high = AF_ADJUSTMENT_DATABASE_LENGTH - 1;
    
    43
    -    while ( high > low )
    
    139
    +    while ( high >= low )
    
    44 140
         {
    
    45 141
             FT_Int mid = ( low + high ) / 2;
    
    46 142
             FT_UInt32 mid_codepoint = adjustment_database[mid].codepoint;
    
    ... ... @@ -94,7 +190,7 @@ af_reverse_character_map_lookup( AF_ReverseCharacterMap map, FT_Int glyph_index
    94 190
         /* Binary search for reverse character map entry */
    
    95 191
         FT_Int low = 0;
    
    96 192
         FT_Int high = map->length - 1;
    
    97
    -    while ( high > low )
    
    193
    +    while ( high >= low )
    
    98 194
         {
    
    99 195
             FT_Int mid = ( high + low ) / 2;
    
    100 196
             FT_Int mid_glyph_index = map->entries[mid].glyph_index;
    

  • src/autofit/afadjust.h
    ... ... @@ -9,14 +9,17 @@ FT_BEGIN_HEADER
    9 9
     /*stacked vertically merge, even though they should be separate*/
    
    10 10
     typedef enum AF_VerticalSeparationAdjustmentType_
    
    11 11
     {
    
    12
    -    AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP,
    
    13 12
         /*This means that the hinter should find the topmost contour and push it up until its lowest point is 1 pixel*/
    
    14 13
         /*above the highest point not part of that contour.*/
    
    14
    +    AF_VERTICAL_ADJUSTMENT_TOP_CONTOUR_UP,
    
    15
    +
    
    16
    +    /*This is the opposite direction.  The hinter should find the bottommost contour*/
    
    17
    +    /*And push it down until there is a 1 pixel gap*/
    
    18
    +    AF_VERTICAL_ADJUSTMENT_BOTTOM_CONTOUR_DOWN,
    
    19
    +
    
    15 20
         AF_VERTICAL_ADJUSTMENT_NONE
    
    16 21
     
    
    17
    -    /*others will be needed, such as the case where the lower contour should be moved in the adjustment instead of the upper one*/
    
    18
    -    /*or umlats, where there are 2 contours which should be moved together*/
    
    19
    -    /*and a way of handling A and O, where the letter consists of 2 contours*/
    
    22
    +    /*others will be needed, such as umlats, where there are 2 contours which should be moved together*/
    
    20 23
     } AF_VerticalSeparationAdjustmentType;
    
    21 24
     
    
    22 25
     typedef struct AF_AdjustmentDatabaseEntry_
    


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]