[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 23d2e84: [ftstring] Enable sub-pixel rendering,
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2-demos] master 23d2e84: [ftstring] Enable sub-pixel rendering, |
Date: |
Wed, 25 Nov 2015 04:17:44 +0000 |
branch: master
commit 23d2e8415badeefd349348303a4f8507dfb0afd1
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
[ftstring] Enable sub-pixel rendering,
* src/ftstring.c (event_lcdmode_change): New function.
(Process_Event): New event to change LCD mode.
(event_help): Offer it.
(main): Select light LCD filter.
---
ChangeLog | 11 +++++++++-
src/ftstring.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
2 files changed, 64 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 0e2a445..60efd4e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
+2015-11-24 Alexei Podtelezhnikov <address@hidden>
+
+ [ftstring] Enable sub-pixel rendering,
+
+ * src/ftstring.c (event_lcdmode_change): New function.
+ (Process_Event): New event to change LCD mode.
+ (event_help): Offer it.
+ (main): Select light LCD filter.
+
2015-11-22 Alexei Podtelezhnikov <address@hidden>
- * src/ftstring.c (main); Move gamma curve in the background.
+ * src/ftstring.c (main): Move gamma curve in the background.
2015-11-22 Alexei Podtelezhnikov <address@hidden>
diff --git a/src/ftstring.c b/src/ftstring.c
index 5f2bd6b..91e8e3d 100644
--- a/src/ftstring.c
+++ b/src/ftstring.c
@@ -2,7 +2,7 @@
/* */
/* The FreeType project -- a free and portable quality TrueType renderer. */
/* */
-/* Copyright 1996-2007, 2009-2014 by */
+/* Copyright 1996-2007, 2009-2015 by */
/* D. Turner, R.Wilhelm, and W. Lemberg */
/* */
/* */
@@ -20,6 +20,8 @@
#include <stdarg.h>
#include <math.h>
+#include FT_LCD_FILTER_H
+
#define CELLSTRING_HEIGHT 8
#define MAXPTSIZE 500 /* dtp */
@@ -112,10 +114,11 @@
grWriteln( " h : toggle outline hinting" );
grLn();
grWriteln( " 1-2 : select rendering mode" );
+ grWriteln( " l : cycle through LCD modes" );
grWriteln( " k : cycle through kerning modes" );
grWriteln( " t : cycle through kerning degrees" );
- grWriteln( " V : toggle vertical rendering" );
grWriteln( " space : cycle through color" );
+ grWriteln( " V : toggle vertical rendering" );
grLn();
grWriteln( " g : increase gamma by 0.1" );
grWriteln( " v : decrease gamma by 0.1" );
@@ -191,6 +194,43 @@
static void
+ event_lcdmode_change()
+ {
+ const char *lcd_mode = NULL;
+
+
+ handle->lcd_mode++;
+
+ switch ( handle->lcd_mode )
+ {
+ case N_LCD_MODES:
+ handle->lcd_mode = 0;
+ 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, "mode changed to %s", lcd_mode );
+ status.header = status.header_buffer;
+ }
+
+
+ static void
event_color_change()
{
static int i = 0;
@@ -334,6 +374,12 @@
FTDemo_Update_Current_Flags( handle );
break;
+ case grKEY( 'l' ):
+ event_lcdmode_change();
+
+ FTDemo_Update_Current_Flags( handle );
+ break;
+
case grKEY( 'k' ):
sc->kerning_mode = ( sc->kerning_mode + 1 ) % N_KERNING_MODES;
status.header =
@@ -356,6 +402,10 @@
: (char *)"tight track kerning active";
break;
+ case grKeySpace:
+ event_color_change();
+ break;
+
case grKEY( 'V' ):
sc->vertical = !sc->vertical;
status.header = sc->vertical
@@ -363,10 +413,6 @@
: (char *)"using horizontal layout";
break;
- case grKeySpace:
- event_color_change();
- break;
-
case grKEY( 'g' ):
event_gamma_change( 0.1 );
break;
@@ -612,6 +658,8 @@
parse_cmdline( &argc, &argv );
+ FT_Library_SetLcdFilter( handle->library, FT_LCD_FILTER_LIGHT );
+
handle->encoding = status.encoding;
handle->use_sbits = 0;
FTDemo_Update_Current_Flags( handle );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 23d2e84: [ftstring] Enable sub-pixel rendering,,
Alexei Podtelezhnikov <=