... |
... |
@@ -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 );
|