[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master f403f20: [ftview, ftstring, ftgrid] Remove anti
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2-demos] master f403f20: [ftview, ftstring, ftgrid] Remove anti-aliasing toggle. |
Date: |
Sun, 26 Mar 2017 23:32:45 -0400 (EDT) |
branch: master
commit f403f20726a831a397d7551af3a2c9dd92157208
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
[ftview, ftstring, ftgrid] Remove anti-aliasing toggle.
* src/ftcommon.h (FTDemo_Handle): Replace `antialias' field with
`LCD_MODE_MONO' enumerator.
* src/ftcommon.c (FTDemo_Update_Current_Flags, FTDemo_Glyph_To_Bitmap,
FTDemo_Index_To_Bitmap): Updated.
* src/ftgrid.c (Process_Event, event_help, event_lcd_mode_change,
event_lcd_filter_change): Ditto.
* src/ftstring.c (Process_Event, event_help, event_lcdmode_change):
Ditto.
* src/ftview.c (Process_Event, event_help, write_header): Ditto.
---
ChangeLog | 14 ++++++++++
src/ftcommon.c | 82 ++++++++++++++++++++++++++++++++-------------------------
src/ftcommon.h | 6 ++---
src/ftgrid.c | 78 ++++++++++++++++++++++++------------------------------
src/ftstring.c | 17 ++++--------
src/ftview.c | 83 ++++++++++++++++++++++++----------------------------------
6 files changed, 136 insertions(+), 144 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 514b97b..c577b23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2017-03-26 Alexei Podtelezhnikov <address@hidden>
+
+ [ftview, ftstring, ftgrid] Remove anti-aliasing toggle.
+
+ * src/ftcommon.h (FTDemo_Handle): Replace `antialias' field with
+ `LCD_MODE_MONO' enumerator.
+ * src/ftcommon.c (FTDemo_Update_Current_Flags, FTDemo_Glyph_To_Bitmap,
+ FTDemo_Index_To_Bitmap): Updated.
+ * src/ftgrid.c (Process_Event, event_help, event_lcd_mode_change,
+ event_lcd_filter_change): Ditto.
+ * src/ftstring.c (Process_Event, event_help, event_lcdmode_change):
+ Ditto.
+ * src/ftview.c (Process_Event, event_help, write_header): Ditto.
+
2017-03-24 Alexei Podtelezhnikov <address@hidden>
* src/ftview.c (Render_*): Improve readability.
diff --git a/src/ftcommon.c b/src/ftcommon.c
index bbcfd37..3c37952 100644
--- a/src/ftcommon.c
+++ b/src/ftcommon.c
@@ -297,10 +297,9 @@
handle->encoding = FT_ENCODING_NONE;
handle->hinted = 1;
- handle->antialias = 1;
handle->use_sbits = 1;
handle->autohint = 0;
- handle->lcd_mode = 0;
+ handle->lcd_mode = 1;
handle->color = 1;
handle->use_sbits_cache = 1;
@@ -613,30 +612,29 @@
{
target = 0;
- if ( handle->antialias )
+ switch ( handle->lcd_mode )
{
- switch ( handle->lcd_mode )
- {
- case LCD_MODE_LIGHT:
- target = FT_LOAD_TARGET_LIGHT;
- break;
+ case LCD_MODE_MONO:
+ target = FT_LOAD_TARGET_MONO;
+ break;
- case LCD_MODE_RGB:
- case LCD_MODE_BGR:
- target = FT_LOAD_TARGET_LCD;
- break;
+ case LCD_MODE_LIGHT:
+ target = FT_LOAD_TARGET_LIGHT;
+ break;
- case LCD_MODE_VRGB:
- case LCD_MODE_VBGR:
- target = FT_LOAD_TARGET_LCD_V;
- break;
+ case LCD_MODE_RGB:
+ case LCD_MODE_BGR:
+ target = FT_LOAD_TARGET_LCD;
+ break;
- default:
- target = FT_LOAD_TARGET_NORMAL;
- }
+ case LCD_MODE_VRGB:
+ case LCD_MODE_VBGR:
+ target = FT_LOAD_TARGET_LCD_V;
+ break;
+
+ default:
+ target = FT_LOAD_TARGET_NORMAL;
}
- else
- target = FT_LOAD_TARGET_MONO;
flags |= target;
}
@@ -644,7 +642,7 @@
{
flags |= FT_LOAD_NO_HINTING;
- if ( !handle->antialias )
+ if ( handle->lcd_mode == 0 )
flags |= FT_LOAD_MONOCHROME;
}
@@ -707,19 +705,31 @@
if ( glyf->format == FT_GLYPH_FORMAT_OUTLINE )
{
- FT_Render_Mode render_mode = FT_RENDER_MODE_MONO;
+ FT_Render_Mode render_mode;
- if ( handle->antialias )
+ switch ( handle->lcd_mode )
{
- if ( handle->lcd_mode == 0 )
- render_mode = FT_RENDER_MODE_NORMAL;
- else if ( handle->lcd_mode == 1 )
- render_mode = FT_RENDER_MODE_LIGHT;
- else if ( handle->lcd_mode <= 3 )
- render_mode = FT_RENDER_MODE_LCD;
- else
- render_mode = FT_RENDER_MODE_LCD_V;
+ case LCD_MODE_MONO:
+ render_mode = FT_RENDER_MODE_MONO;
+ break;
+
+ case LCD_MODE_LIGHT:
+ render_mode = FT_RENDER_MODE_LIGHT;
+ break;
+
+ case LCD_MODE_RGB:
+ case LCD_MODE_BGR:
+ render_mode = FT_RENDER_MODE_LCD;
+ break;
+
+ case LCD_MODE_VRGB:
+ case LCD_MODE_VBGR:
+ render_mode = FT_RENDER_MODE_LCD_V;
+ break;
+
+ default:
+ render_mode = FT_RENDER_MODE_NORMAL;
}
/* render the glyph to a bitmap, don't destroy original */
@@ -763,13 +773,13 @@
break;
case FT_PIXEL_MODE_LCD:
- target->mode = handle->lcd_mode == 2 ? gr_pixel_mode_lcd
+ target->mode = handle->lcd_mode == 3 ? gr_pixel_mode_lcd
: gr_pixel_mode_lcd2;
target->grays = source->num_grays;
break;
case FT_PIXEL_MODE_LCD_V:
- target->mode = handle->lcd_mode == 4 ? gr_pixel_mode_lcdv
+ target->mode = handle->lcd_mode == 5 ? gr_pixel_mode_lcdv
: gr_pixel_mode_lcdv2;
target->grays = source->num_grays;
break;
@@ -872,12 +882,12 @@
break;
case FT_PIXEL_MODE_LCD:
- target->mode = handle->lcd_mode == 2 ? gr_pixel_mode_lcd
+ target->mode = handle->lcd_mode == 3 ? gr_pixel_mode_lcd
: gr_pixel_mode_lcd2;
break;
case FT_PIXEL_MODE_LCD_V:
- target->mode = handle->lcd_mode == 4 ? gr_pixel_mode_lcdv
+ target->mode = handle->lcd_mode == 5 ? gr_pixel_mode_lcdv
: gr_pixel_mode_lcdv2;
break;
diff --git a/src/ftcommon.h b/src/ftcommon.h
index 21d0490..f8e642f 100644
--- a/src/ftcommon.h
+++ b/src/ftcommon.h
@@ -134,7 +134,8 @@
} TFont, *PFont;
enum {
- LCD_MODE_AA = 0,
+ LCD_MODE_MONO = 0,
+ LCD_MODE_AA,
LCD_MODE_LIGHT,
LCD_MODE_RGB,
LCD_MODE_BGR,
@@ -189,10 +190,9 @@
/* call FTDemo_Update_Current_Flags after setting any of the following
fields */
int hinted; /* is glyph hinting active? */
- int antialias; /* is anti-aliasing active? */
int use_sbits; /* do we use embedded bitmaps? */
int autohint; /* force auto-hinting */
- int lcd_mode;
+ int lcd_mode; /* mono, aa, light, vrgb, ... */
int preload; /* force font file preloading */
int color; /* load color bitmaps */
diff --git a/src/ftgrid.c b/src/ftgrid.c
index e9ec6d6..55a9482 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -984,7 +984,7 @@
grWriteln( "f toggle forced auto- d toggle dot
display " );
grWriteln( " hinting (if hinting) o toggle
outline display " );
grWriteln( " D toggle
dotnumber display" );
- grWriteln( "a toggle anti-aliasing
" );
+ grWriteln( "
" );
grWriteln( "F5, F6 cycle through if Multiple Master or
GX font: " );
grWriteln( " anti-aliasing modes F2 cycle
through axes " );
grWriteln( "L cycle through LCD F3, F4 adjust
current axis by " );
@@ -1156,52 +1156,50 @@
static void
event_lcd_mode_change( int delta )
{
- if ( handle->antialias )
- {
- const char* lcd_mode = NULL;
+ const char* lcd_mode = NULL;
- handle->lcd_mode = ( handle->lcd_mode +
- delta +
- N_LCD_MODES ) % N_LCD_MODES;
+ handle->lcd_mode = ( handle->lcd_mode +
+ delta +
+ N_LCD_MODES ) % N_LCD_MODES;
- switch ( handle->lcd_mode )
- {
- case LCD_MODE_AA:
- lcd_mode = "normal AA";
- break;
- case LCD_MODE_LIGHT:
- lcd_mode = "light AA";
- break;
- case LCD_MODE_RGB:
- lcd_mode = "LCD (horiz. RGB)";
- break;
- case LCD_MODE_BGR:
- lcd_mode = "LCD (horiz. BGR)";
- break;
- case LCD_MODE_VRGB:
- lcd_mode = "LCD (vert. RGB)";
- break;
- case LCD_MODE_VBGR:
- lcd_mode = "LCD (vert. BGR)";
- break;
- }
- sprintf( status.header_buffer, "rendering mode changed to %s",
- lcd_mode );
+ switch ( handle->lcd_mode )
+ {
+ case LCD_MODE_MONO:
+ lcd_mode = "monochrome";
+ break;
+ case LCD_MODE_AA:
+ lcd_mode = "normal AA";
+ break;
+ case LCD_MODE_LIGHT:
+ lcd_mode = "light AA";
+ break;
+ case LCD_MODE_RGB:
+ lcd_mode = "LCD (horiz. RGB)";
+ break;
+ case LCD_MODE_BGR:
+ lcd_mode = "LCD (horiz. BGR)";
+ break;
+ case LCD_MODE_VRGB:
+ lcd_mode = "LCD (vert. RGB)";
+ break;
+ case LCD_MODE_VBGR:
+ lcd_mode = "LCD (vert. BGR)";
+ break;
+ }
+ sprintf( status.header_buffer, "rendering mode changed to %s",
+ lcd_mode );
- status.header = (const char *)status.header_buffer;
+ status.header = (const char *)status.header_buffer;
- FTDemo_Update_Current_Flags( handle );
- }
- else
- status.header = "need anti-aliasing to change rendering mode";
+ FTDemo_Update_Current_Flags( handle );
}
static void
event_lcd_filter_change( void )
{
- if ( handle->antialias && handle->lcd_mode > 1 )
+ if ( handle->lcd_mode > 2 )
{
const char* lcd_filter = NULL;
@@ -1490,14 +1488,6 @@
event_help();
break;
- case grKEY( 'a' ):
- handle->antialias = !handle->antialias;
- status.header = handle->antialias ? "anti-aliasing is now on"
- : "anti-aliasing is now off";
-
- FTDemo_Update_Current_Flags( handle );
- break;
-
case grKEY( 'f' ):
handle->autohint = !handle->autohint;
status.header = handle->autohint ? "forced auto-hinting is now on"
diff --git a/src/ftstring.c b/src/ftstring.c
index 7f026d6..5224d9c 100644
--- a/src/ftstring.c
+++ b/src/ftstring.c
@@ -154,13 +154,12 @@
grLn();
grWriteln( " F1 or ? : display this help screen" );
grLn();
- grWriteln( " a : toggle anti-aliasing" );
grWriteln( " b : toggle embedded bitmaps (and disable rotation)"
);
grWriteln( " f : toggle forced auto-hinting" );
grWriteln( " h : toggle outline hinting" );
grLn();
grWriteln( " 1-2 : select rendering mode" );
- grWriteln( " l : cycle through LCD modes" );
+ grWriteln( " l : cycle through anti-aliasing modes" );
grWriteln( " k : cycle through kerning modes" );
grWriteln( " t : cycle through kerning degrees" );
grWriteln( " Space : cycle through color" );
@@ -252,6 +251,9 @@
switch ( handle->lcd_mode )
{
+ case LCD_MODE_AA:
+ lcd_mode = " normal AA";
+ break;
case LCD_MODE_LIGHT:
lcd_mode = " light AA";
break;
@@ -269,7 +271,7 @@
break;
default:
handle->lcd_mode = 0;
- lcd_mode = " normal AA";
+ lcd_mode = " monochrome";
}
sprintf( status.header_buffer, "mode changed to %s", lcd_mode );
@@ -391,15 +393,6 @@
event_help();
break;
- case grKEY( 'a' ):
- handle->antialias = !handle->antialias;
- status.header = handle->antialias
- ? (char *)"anti-aliasing is now on"
- : (char *)"anti-aliasing is now off";
-
- FTDemo_Update_Current_Flags( handle );
- break;
-
case grKEY( 'b' ):
handle->use_sbits = !handle->use_sbits;
status.header = handle->use_sbits
diff --git a/src/ftview.c b/src/ftview.c
index 9e5f7a0..7148c25 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -717,14 +717,14 @@
grWriteln( "F1, ? display this help screen
" );
grWriteln( "
" );
grWriteln( "render modes: anti-aliasing modes:
" );
- grWriteln( " 1 all glyphs A normal
" );
- grWriteln( " 2 all glyphs fancy B light
" );
- grWriteln( " (emboldened / slanted) C horizontal
RGB (LCD) " );
- grWriteln( " 3 all glyphs stroked D horizontal
BGR (LCD) " );
- grWriteln( " 4 text string E vertical
RGB (LCD) " );
- grWriteln( " 5 waterfall F vertical
BGR (LCD) " );
- grWriteln( " space cycle forwards k cycle
forwards " );
- grWriteln( " backspace cycle backwards l cycle
backwards " );
+ grWriteln( " 1 all glyphs A monochrome
" );
+ grWriteln( " 2 all glyphs fancy B normal
" );
+ grWriteln( " (emboldened / slanted) C light
" );
+ grWriteln( " 3 all glyphs stroked D horizontal
RGB (LCD) " );
+ grWriteln( " 4 text string E horizontal
BGR (LCD) " );
+ grWriteln( " 5 waterfall F vertical
RGB (LCD) " );
+ grWriteln( " space cycle forwards G vertical
BGR (LCD) " );
+ grWriteln( " backspace cycle backwards k, l cycle back
and forth " );
grWriteln( "
" );
grWriteln( "b toggle embedded bitmaps x, X adjust
horizontal " );
grWriteln( "c toggle color glyphs
emboldening (in mode 2)" );
@@ -748,7 +748,7 @@
grWriteln( "w toggle warping (in light Tab cycle
through charmaps " );
grWriteln( " AA mode, if available)
" );
grWriteln( "
" );
- grWriteln( "a toggle anti-aliasing q, ESC quit
ftview " );
+ grWriteln( " q, ESC quit
ftview " );
/* |----------------------------------|
|----------------------------------| */
grLn();
grLn();
@@ -1064,17 +1064,14 @@
return ret;
}
- if ( handle->antialias )
+ if ( handle->lcd_mode == (int)( event->key - 'A' ) )
+ return ret;
+ if ( event->key >= 'A' && event->key < 'A' + N_LCD_MODES )
{
- if ( handle->lcd_mode == (int)( event->key - 'A' ) )
- return ret;
- if ( event->key >= 'A' && event->key < 'A' + N_LCD_MODES )
- {
- handle->lcd_mode = event->key - 'A';
- FTDemo_Update_Current_Flags( handle );
- status.update = 1;
- return ret;
- }
+ handle->lcd_mode = event->key - 'A';
+ FTDemo_Update_Current_Flags( handle );
+ status.update = 1;
+ return ret;
}
switch ( event->key )
@@ -1090,12 +1087,6 @@
status.update = 1;
break;
- case grKEY( 'a' ):
- handle->antialias = !handle->antialias;
- FTDemo_Update_Current_Flags( handle );
- status.update = 1;
- break;
-
case grKEY( 'b' ):
handle->use_sbits = !handle->use_sbits;
FTDemo_Update_Current_Flags( handle );
@@ -1152,18 +1143,15 @@
case grKEY( 'l' ):
case grKEY( 'k' ):
- if ( handle->antialias )
- {
- handle->lcd_mode = ( event->key == grKEY( 'l' ) )
- ? ( ( handle->lcd_mode == ( N_LCD_MODES - 1 ) )
- ? 0
- : handle->lcd_mode + 1 )
- : ( ( handle->lcd_mode == 0 )
- ? ( N_LCD_MODES - 1 )
- : handle->lcd_mode - 1 );
- FTDemo_Update_Current_Flags( handle );
- status.update = 1;
- }
+ handle->lcd_mode = ( event->key == grKEY( 'l' ) )
+ ? ( ( handle->lcd_mode == ( N_LCD_MODES - 1 ) )
+ ? 0
+ : handle->lcd_mode + 1 )
+ : ( ( handle->lcd_mode == 0 )
+ ? ( N_LCD_MODES - 1 )
+ : handle->lcd_mode - 1 );
+ FTDemo_Update_Current_Flags( handle );
+ status.update = 1;
break;
case grKEY( 'w' ):
@@ -1587,36 +1575,33 @@
line++;
/* anti-aliasing */
- sprintf( buf, "anti-alias: %s",
- handle->antialias ? "on" : "off" );
- grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
- buf, display->fore_color );
-
- if ( handle->antialias )
{
const char* lcd_mode;
switch ( handle->lcd_mode )
{
+ case LCD_MODE_AA:
+ lcd_mode = "normal AA";
+ break;
case LCD_MODE_LIGHT:
- lcd_mode = " light AA";
+ lcd_mode = "light AA";
break;
case LCD_MODE_RGB:
- lcd_mode = " LCD (horiz. RGB)";
+ lcd_mode = "LCD (horiz. RGB)";
break;
case LCD_MODE_BGR:
- lcd_mode = " LCD (horiz. BGR)";
+ lcd_mode = "LCD (horiz. BGR)";
break;
case LCD_MODE_VRGB:
- lcd_mode = " LCD (vert. RGB)";
+ lcd_mode = "LCD (vert. RGB)";
break;
case LCD_MODE_VBGR:
- lcd_mode = " LCD (vert. BGR)";
+ lcd_mode = "LCD (vert. BGR)";
break;
default:
handle->lcd_mode = 0;
- lcd_mode = " normal AA";
+ lcd_mode = "monochrome";
}
grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
lcd_mode, display->fore_color );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master f403f20: [ftview, ftstring, ftgrid] Remove anti-aliasing toggle.,
Alexei Podtelezhnikov <=