[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 5ac49ab: [ftgrid] Enable LCD filtering.
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2-demos] master 5ac49ab: [ftgrid] Enable LCD filtering. |
Date: |
Sun, 21 Feb 2016 08:12:16 +0000 |
branch: master
commit 5ac49ab54843d04d910d4c6a9e03be6095ca22b2
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
[ftgrid] Enable LCD filtering.
* src/ftgrid.c (event_lcd_filter_change): New function.
(status, main, Process_Event, event_help): Updated.
---
ChangeLog | 7 ++++++
src/ftgrid.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
2 files changed, 62 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b883bff..700a6fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-02-21 Alexei Podtelezhnikov <address@hidden>
+
+ [ftgrid] Enable LCD filtering.
+
+ * src/ftgrid.c (event_lcd_filter_change): New function.
+ (status, main, Process_Event, event_help): Updated.
+
2016-02-20 Alexei Podtelezhnikov <address@hidden>
[ftgrid] Improve stroked path appearance.
diff --git a/src/ftgrid.c b/src/ftgrid.c
index bf1eef3..04087c8 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -27,6 +27,7 @@
#include FT_STROKER_H
#include FT_SYNTHESIS_H
+#include FT_LCD_FILTER_H
#include FT_CFF_DRIVER_H
#include FT_TRUETYPE_DRIVER_H
#include FT_MULTIPLE_MASTERS_H
@@ -128,6 +129,7 @@
int do_dotnumbers;
int do_segment;
+ int lcd_filter;
double gamma;
const char* header;
char header_buffer[BUFSIZE];
@@ -169,6 +171,7 @@
st->do_segment = 0;
st->Num = 0;
+ st->lcd_filter = FT_LCD_FILTER_DEFAULT;
st->gamma = GAMMA;
st->header = "";
@@ -969,12 +972,13 @@
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 g, v adjust
gamma value " );
- grWriteln( "
" );
- grWriteln( "if Multiple Master or GX font: q, ESC quit
ftgrid " );
- grWriteln( " F2 cycle through axes
" );
- grWriteln( " F3, F4 adjust current axis by F5, F6 cycle
through " );
- grWriteln( " 1/50th of its range
anti-aliasing modes " );
+ grWriteln( "a toggle anti-aliasing
" );
+ 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 " );
+ grWriteln( " filters 1/50th of
its range " );
+ grWriteln( "g, v adjust gamma value
" );
+ grWriteln( " q, ESC quit
ftgrid " );
/* |----------------------------------|
|----------------------------------| */
grLn();
grLn();
@@ -1179,6 +1183,45 @@
static void
+ event_lcd_filter_change( void )
+ {
+ if ( handle->antialias && handle->lcd_mode > 1 )
+ {
+ const char* lcd_filter = NULL;
+
+
+ status.lcd_filter++;
+
+ switch ( status.lcd_filter )
+ {
+ case FT_LCD_FILTER_DEFAULT:
+ lcd_filter = "default";
+ break;
+ case FT_LCD_FILTER_LIGHT:
+ lcd_filter = "light";
+ break;
+ case FT_LCD_FILTER_LEGACY1:
+ lcd_filter = "legacy";
+ break;
+ case FT_LCD_FILTER_NONE:
+ default:
+ status.lcd_filter = 0;
+ lcd_filter = "none";
+ }
+
+ sprintf( status.header_buffer, "LCD filter changed to %s",
+ lcd_filter );
+
+ status.header = (const char *)status.header_buffer;
+
+ FT_Library_SetLcdFilter( handle->library, status.lcd_filter );
+ }
+ else
+ status.header = "need LCD mode to change filter";
+ }
+
+
+ static void
event_size_change( int delta )
{
status.ptsize += delta;
@@ -1443,6 +1486,10 @@
break;
#endif /* FT_DEBUG_AUTOFIT */
+ case grKEY( 'L' ):
+ event_lcd_filter_change();
+ break;
+
case grKEY( 'g' ):
event_gamma_change( 0.1 );
break;
@@ -1835,6 +1882,8 @@
"autofitter",
"warping", &status.warping );
+ FT_Library_SetLcdFilter( handle->library, status.lcd_filter );
+
display = FTDemo_Display_New( gr_pixel_mode_rgb24,
status.width, status.height );
if ( !display )
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 5ac49ab: [ftgrid] Enable LCD filtering.,
Alexei Podtelezhnikov <=