freetype-commit
[Top][All Lists]
Advanced

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

[Git][freetype/freetype][master] * src/sfnt/ttsbit.c (tt_face_load_strik


From: Alexei Podtelezhnikov (@apodtele)
Subject: [Git][freetype/freetype][master] * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Simplify calculations.
Date: Tue, 18 Oct 2022 15:58:05 +0000

Alexei Podtelezhnikov pushed to branch master at FreeType / FreeType

Commits:

  • b8882a3e
    by Alexei Podtelezhnikov at 2022-10-18T15:58:02+00:00
    * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Simplify calculations.

1 changed file:

Changes:

  • src/sfnt/ttsbit.c
    ... ... @@ -397,9 +397,9 @@
    397 397
           {
    
    398 398
             FT_Stream       stream = face->root.stream;
    
    399 399
             FT_UInt         offset;
    
    400
    -        FT_UShort       upem, ppem, resolution;
    
    400
    +        FT_UShort       ppem, resolution;
    
    401 401
             TT_HoriHeader  *hori;
    
    402
    -        FT_Pos          ppem_; /* to reduce casts */
    
    402
    +        FT_Fixed        scale;
    
    403 403
     
    
    404 404
             FT_Error  error;
    
    405 405
             FT_Byte*  p;
    
    ... ... @@ -422,32 +422,23 @@
    422 422
     
    
    423 423
             FT_FRAME_EXIT();
    
    424 424
     
    
    425
    -        upem = face->header.Units_Per_EM;
    
    426
    -        hori = &face->horizontal;
    
    427
    -
    
    428 425
             metrics->x_ppem = ppem;
    
    429 426
             metrics->y_ppem = ppem;
    
    430 427
     
    
    431
    -        ppem_ = (FT_Pos)ppem;
    
    428
    +        scale = FT_DivFix( ppem * 64, face->header.Units_Per_EM );
    
    429
    +        hori  = &face->horizontal;
    
    432 430
     
    
    433
    -        metrics->ascender =
    
    434
    -          FT_MulDiv( hori->Ascender, ppem_ * 64, upem );
    
    435
    -        metrics->descender =
    
    436
    -          FT_MulDiv( hori->Descender, ppem_ * 64, upem );
    
    437
    -        metrics->height =
    
    438
    -          FT_MulDiv( hori->Ascender - hori->Descender + hori->Line_Gap,
    
    439
    -                     ppem_ * 64, upem );
    
    440
    -        metrics->max_advance =
    
    441
    -          FT_MulDiv( hori->advance_Width_Max, ppem_ * 64, upem );
    
    431
    +        metrics->ascender    = FT_MulFix( hori->Ascender, scale );
    
    432
    +        metrics->descender   = FT_MulFix( hori->Descender, scale );
    
    433
    +        metrics->height      =
    
    434
    +          FT_MulFix( hori->Ascender - hori->Descender + hori->Line_Gap,
    
    435
    +                     scale );
    
    436
    +        metrics->max_advance = FT_MulFix( hori->advance_Width_Max, scale );
    
    442 437
     
    
    443 438
             /* set the scale values (in 16.16 units) so advances */
    
    444 439
             /* from the hmtx and vmtx table are scaled correctly */
    
    445
    -        metrics->x_scale = FT_MulDiv( metrics->x_ppem,
    
    446
    -                                      64 * 0x10000,
    
    447
    -                                      face->header.Units_Per_EM );
    
    448
    -        metrics->y_scale = FT_MulDiv( metrics->y_ppem,
    
    449
    -                                      64 * 0x10000,
    
    450
    -                                      face->header.Units_Per_EM );
    
    440
    +        metrics->x_scale = scale;
    
    441
    +        metrics->y_scale = scale;
    
    451 442
     
    
    452 443
             return error;
    
    453 444
           }
    


  • reply via email to

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