freetype-commit
[Top][All Lists]
Advanced

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

[Git][freetype/freetype-demos][master] 2 commits: [ftgrid] Implement emb


From: Alexei Podtelezhnikov (@apodtele)
Subject: [Git][freetype/freetype-demos][master] 2 commits: [ftgrid] Implement embedded bitmap toggle.
Date: Sat, 05 Feb 2022 03:47:45 +0000

Alexei Podtelezhnikov pushed to branch master at FreeType / FreeType Demo Programs

Commits:

1 changed file:

Changes:

  • src/ftgrid.c
    ... ... @@ -495,6 +495,22 @@
    495 495
             }
    
    496 496
             break;
    
    497 497
     
    
    498
    +      case gr_pixel_mode_bgra:
    
    499
    +        for ( i = 0; i < bit->rows; i++ )
    
    500
    +        {
    
    501
    +          FT_UInt32*  l4 = (FT_UInt32*)line;
    
    502
    +          FT_UInt32*  s4 = (FT_UInt32*)( s + i * pitch );
    
    503
    +
    
    504
    +          for ( j = 0; j < width; j++, s4++ )
    
    505
    +            for ( k = 0; k < scale; k++, l4++ )
    
    506
    +              *l4 = *s4;
    
    507
    +
    
    508
    +          for ( k = 1; k < scale; k++, line += pitch * scale )
    
    509
    +            memcpy( line + pitch * scale, line, (size_t)( pitch * scale ) );
    
    510
    +          line += pitch * scale;
    
    511
    +        }
    
    512
    +        break;
    
    513
    +
    
    498 514
           default:
    
    499 515
             return;
    
    500 516
         }
    
    ... ... @@ -515,7 +531,6 @@
    515 531
         FT_Size       size;
    
    516 532
         FT_GlyphSlot  slot;
    
    517 533
         FT_UInt       glyph_idx;
    
    518
    -    FT_Int32      load_flags;
    
    519 534
         int           scale = (int)st->scale;
    
    520 535
         int           ox    = st->x_origin;
    
    521 536
         int           oy    = st->y_origin;
    
    ... ... @@ -533,11 +548,7 @@
    533 548
         _af_debug_disable_blue_hints = !st->do_blue_hints;
    
    534 549
     #endif
    
    535 550
     
    
    536
    -    load_flags = handle->load_flags;
    
    537
    -    if ( !( st->work & DO_BITMAP ) )
    
    538
    -      load_flags |= FT_LOAD_NO_BITMAP;
    
    539
    -
    
    540
    -    if ( FT_Load_Glyph( size->face, glyph_idx, load_flags ) )
    
    551
    +    if ( FT_Load_Glyph( size->face, glyph_idx, handle->load_flags ) )
    
    541 552
           return;
    
    542 553
     
    
    543 554
         slot = size->face->glyph;
    
    ... ... @@ -570,9 +581,9 @@
    570 581
         /* render scaled bitmap */
    
    571 582
         if ( st->work & DO_BITMAP && scale == st->scale )
    
    572 583
         {
    
    573
    -      FT_Glyph        glyph, glyf;
    
    574
    -      int             left, top, x_advance, y_advance;
    
    575
    -      grBitmap        bitg;
    
    584
    +      FT_Glyph  glyph, glyf;
    
    585
    +      int       left, top, x_advance, y_advance;
    
    586
    +      grBitmap  bitg;
    
    576 587
     
    
    577 588
     
    
    578 589
           FT_Get_Glyph( slot, &glyph );
    
    ... ... @@ -839,7 +850,7 @@
    839 850
         grWriteln( "F1, ?       display this help screen    if autohinting:                     " );
    
    840 851
         grWriteln( "                                          H         toggle horiz. hinting   " );
    
    841 852
         grWriteln( "i, k        move grid up/down             V         toggle vert. hinting    " );
    
    842
    -    grWriteln( "j, l        move grid left/right          B         toggle blue zone hinting" );
    
    853
    +    grWriteln( "j, l        move grid left/right          Z         toggle blue zone hinting" );
    
    843 854
         grWriteln( "PgUp, PgDn  zoom in/out grid              s         toggle segment drawing  " );
    
    844 855
         grWriteln( "SPC         reset zoom and position                  (unfitted, with blues) " );
    
    845 856
         grWriteln( "                                          1         dump edge hints         " );
    
    ... ... @@ -855,19 +866,19 @@
    855 866
         grWriteln( "                                          H         cycle through hinting   " );
    
    856 867
         grWriteln( "Left, Right adjust index by 1                        engines (if available) " );
    
    857 868
         grWriteln( "F7, F8      adjust index by 16                                              " );
    
    858
    -    grWriteln( "F9, F10     adjust index by 256         b           toggle bitmap           " );
    
    859
    -    grWriteln( "F11, F12    adjust index by 4096        d           toggle dot display      " );
    
    869
    +    grWriteln( "F9, F10     adjust index by 256         b           toggle embedded bitmap  " );
    
    870
    +    grWriteln( "F11, F12    adjust index by 4096        B           toggle bitmap display   " );
    
    860 871
         grWriteln( "                                        o           toggle outline display  " );
    
    861
    -    grWriteln( "h           toggle hinting              D           toggle dotnumber display" );
    
    862
    -    grWriteln( "f           toggle forced auto-                                             " );
    
    863
    -    grWriteln( "             hinting (if hinting)       if Multiple Master or GX font:      " );
    
    864
    -    grWriteln( "G           toggle grid display           F2        cycle through axes      " );
    
    865
    -    grWriteln( "C           change color palette          F3, F4    adjust current axis by  " );
    
    866
    -    grWriteln( "                                                     1/50th of its range    " );
    
    867
    -    grWriteln( "F5, F6      cycle through                                                   " );
    
    868
    -    grWriteln( "             anti-aliasing modes        P           print PNG file          " );
    
    869
    -    grWriteln( "L           cycle through LCD           q, ESC      quit ftgrid             " );
    
    870
    -    grWriteln( "             filters" );
    
    872
    +    grWriteln( "h           toggle hinting              d           toggle dot display      " );
    
    873
    +    grWriteln( "f           toggle forced auto-         D           toggle dotnumber display" );
    
    874
    +    grWriteln( "             hinting (if hinting)                                           " );
    
    875
    +    grWriteln( "G           toggle grid display         if Multiple Master or GX font:      " );
    
    876
    +    grWriteln( "C           change color palette          F2        cycle through axes      " );
    
    877
    +    grWriteln( "                                          F3, F4    adjust current axis by  " );
    
    878
    +    grWriteln( "F5, F6      cycle through                            1/50th of its range    " );
    
    879
    +    grWriteln( "             anti-aliasing modes                                            " );
    
    880
    +    grWriteln( "L           cycle through LCD           P           print PNG file          " );
    
    881
    +    grWriteln( "             filters                    q, ESC      quit ftgrid             " );
    
    871 882
         grLn();
    
    872 883
         grWriteln( "g, v        adjust gamma value" );
    
    873 884
         /*          |----------------------------------|    |----------------------------------| */
    
    ... ... @@ -1372,6 +1383,14 @@
    1372 1383
           FTDemo_Update_Current_Flags( handle );
    
    1373 1384
           break;
    
    1374 1385
     
    
    1386
    +    case grKEY( 'b' ):
    
    1387
    +      handle->use_sbits = !handle->use_sbits;
    
    1388
    +      status.header    = handle->use_sbits ? "embedded bitmaps are now on"
    
    1389
    +                                           : "embedded bitmaps are now off";
    
    1390
    +
    
    1391
    +      FTDemo_Update_Current_Flags( handle );
    
    1392
    +      break;
    
    1393
    +
    
    1375 1394
     #ifdef FT_DEBUG_AUTOFIT
    
    1376 1395
         case grKEY( '1' ):
    
    1377 1396
           if ( handle->hinted                                  &&
    
    ... ... @@ -1464,7 +1483,7 @@
    1464 1483
           status.work ^= DO_OUTLINE;
    
    1465 1484
           break;
    
    1466 1485
     
    
    1467
    -    case grKEY( 'b' ):
    
    1486
    +    case grKEY( 'B' ):
    
    1468 1487
           status.work ^= DO_BITMAP;
    
    1469 1488
           if ( status.work & DO_BITMAP )
    
    1470 1489
             status.work ^= DO_GRAY_BITMAP;
    
    ... ... @@ -1516,7 +1535,7 @@
    1516 1535
             status.header = "need autofit mode to toggle vertical hinting";
    
    1517 1536
           break;
    
    1518 1537
     
    
    1519
    -    case grKEY( 'B' ):
    
    1538
    +    case grKEY( 'Z' ):
    
    1520 1539
           if ( handle->autohint                            ||
    
    1521 1540
                handle->lcd_mode == LCD_MODE_LIGHT          ||
    
    1522 1541
                handle->lcd_mode == LCD_MODE_LIGHT_SUBPIXEL )
    
    ... ... @@ -1794,6 +1813,7 @@
    1794 1813
     
    
    1795 1814
         /* initialize engine */
    
    1796 1815
         handle = FTDemo_New();
    
    1816
    +    handle->use_sbits = 0;
    
    1797 1817
     
    
    1798 1818
         grid_status_init( &status );
    
    1799 1819
         circle_init( handle, 128 );
    


  • reply via email to

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