[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master b8a931d: [ftview] Consolidate emboldening and s
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2-demos] master b8a931d: [ftview] Consolidate emboldening and slanting modes. |
Date: |
Fri, 24 Mar 2017 22:24:49 -0400 (EDT) |
branch: master
commit b8a931da56cd1bc8d85f508001644fe7facd23f5
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
[ftview] Consolidate emboldening and slanting modes.
* src/ftview.c (Render_Slanted, Render_Embolden): Merged into...
(Render_Fancy): ... this new function.
(event_help, Process_Event, write_header, main): Updated.
* src/ftview.1: Updated.
---
ChangeLog | 9 ++++
src/ftview.1 | 2 +-
src/ftview.c | 146 +++++++++++++----------------------------------------------
3 files changed, 42 insertions(+), 115 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index cd0e37d..25f58dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-03-24 Alexei Podtelezhnikov <address@hidden>
+
+ [ftview] Consolidate emboldening and slanting modes.
+
+ * src/ftview.c (Render_Slanted, Render_Embolden): Merged into...
+ (Render_Fancy): ... this new function.
+ (event_help, Process_Event, write_header, main): Updated.
+ * src/ftview.1: Updated.
+
2017-03-23 Alexei Podtelezhnikov <address@hidden>
* src/ftmulti.c (Process_Event, main): Use `FT_RoundFix'.
diff --git a/src/ftview.1 b/src/ftview.1
index 151d1c6..ae3f08b 100644
--- a/src/ftview.1
+++ b/src/ftview.1
@@ -81,7 +81,7 @@ for rendering.
.BI \-l \ mode
Set start-up rendering mode (0 <=
.I mode
-<= 6).
+<= 5).
.
.TP
.B \-p
diff --git a/src/ftview.c b/src/ftview.c
index cb3e3fc..3d2f85d 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -73,8 +73,7 @@
enum
{
RENDER_MODE_ALL = 0,
- RENDER_MODE_EMBOLDEN,
- RENDER_MODE_SLANTED,
+ RENDER_MODE_FANCY,
RENDER_MODE_STROKE,
RENDER_MODE_TEXT,
RENDER_MODE_WATERFALL,
@@ -260,8 +259,8 @@
static FT_Error
- Render_Slanted( int num_indices,
- int offset )
+ Render_Fancy( int num_indices,
+ int offset )
{
int start_x, start_y, step_y, x, y;
int i, have_topleft;
@@ -270,6 +269,7 @@
FT_GlyphSlot slot;
FT_Matrix shear;
+ FT_Pos xstr, ystr;
error = FTDemo_Get_Size( handle, &size );
@@ -303,79 +303,6 @@
shear.yx = 0;
shear.yy = 1 << 16;
- have_topleft = 0;
-
- for ( i = offset; i < num_indices; i++ )
- {
- FT_UInt glyph_idx;
-
-
- if ( status.encoding == FT_ENCODING_NONE )
- glyph_idx = (FT_UInt)i;
- else
- glyph_idx = FTDemo_Get_Index( handle, (FT_UInt32)i );
-
- error = FT_Load_Glyph( face, glyph_idx, handle->load_flags );
- if ( !error )
- {
- FT_Outline_Transform( &slot->outline, &shear );
-
- error = FTDemo_Draw_Slot( handle, display, slot, &x, &y );
-
- if ( !error )
- {
- if ( !have_topleft )
- {
- have_topleft = 1;
- status.topleft = i;
- }
- }
-
- if ( error )
- goto Next;
- else if ( X_TOO_LONG( x, size, display ) )
- {
- x = start_x;
- y += step_y;
-
- if ( Y_TOO_LONG( y, size, display ) )
- break;
- }
- }
- else
- Next:
- status.num_fails++;
- }
-
- return error;
- }
-
-
- static FT_Error
- Render_Embolden( int num_indices,
- int offset )
- {
- int start_x, start_y, step_y, x, y;
- int i, have_topleft;
- FT_Size size;
- FT_Face face;
- FT_GlyphSlot slot;
-
- FT_Pos xstr, ystr;
-
-
- error = FTDemo_Get_Size( handle, &size );
-
- if ( error )
- {
- /* probably a non-existent bitmap font size */
- return error;
- }
-
- INIT_SIZE( size, start_x, start_y, step_y, x, y );
- face = size->face;
- slot = face->glyph;
-
ystr = status.ptsize * status.res / 72;
xstr = (FT_Pos)( status.xbold_factor * ystr );
ystr = (FT_Pos)( status.ybold_factor * ystr );
@@ -400,6 +327,8 @@
if ( slot->format == FT_GLYPH_FORMAT_OUTLINE )
{
+ FT_Outline_Transform( &slot->outline, &shear );
+
error = FT_Outline_EmboldenXY( &slot->outline, xstr, ystr );
/* ignore error */
}
@@ -787,11 +716,11 @@
grWriteln( "
" );
grWriteln( "render modes: anti-aliasing modes:
" );
grWriteln( " 1 all glyphs A normal
" );
- grWriteln( " 2 all glyphs emboldened B light
" );
- grWriteln( " 3 all glyphs slanted C horizontal
RGB (LCD) " );
- grWriteln( " 4 all glyphs stroked D horizontal
BGR (LCD) " );
- grWriteln( " 5 text string E vertical
RGB (LCD) " );
- grWriteln( " 6 waterfall F vertical
BGR (LCD) " );
+ 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( "
" );
@@ -800,9 +729,9 @@
grWriteln( "K toggle cache modes y, Y adjust
vertical " );
grWriteln( "
emboldening (in mode 2)" );
grWriteln( "p, n previous/next font s, S adjust
slanting " );
- grWriteln( " (in mode
3) " );
+ grWriteln( " (in mode
2) " );
grWriteln( "Up, Down adjust size by 1 unit r, R adjust
stroking radius " );
- grWriteln( "PgUp, PgDn adjust size by 10 units (in mode
4) " );
+ grWriteln( "PgUp, PgDn adjust size by 10 units (in mode
3) " );
grWriteln( "
" );
grWriteln( "Left, Right adjust index by 1 L cycle
through " );
grWriteln( "F7, F8 adjust index by 16 LCD
filtering " );
@@ -1254,12 +1183,12 @@
break;
case grKEY( 's' ):
- if ( status.render_mode == RENDER_MODE_SLANTED )
+ if ( status.render_mode == RENDER_MODE_FANCY )
status.update = event_slant_change( 0.02 );
break;
case grKEY( 'S' ):
- if ( status.render_mode == RENDER_MODE_SLANTED )
+ if ( status.render_mode == RENDER_MODE_FANCY )
status.update = event_slant_change( -0.02 );
break;
@@ -1274,22 +1203,22 @@
break;
case grKEY( 'x' ):
- if ( status.render_mode == RENDER_MODE_EMBOLDEN )
+ if ( status.render_mode == RENDER_MODE_FANCY )
status.update = event_bold_change( 0.005, 0.0 );
break;
case grKEY( 'X' ):
- if ( status.render_mode == RENDER_MODE_EMBOLDEN )
+ if ( status.render_mode == RENDER_MODE_FANCY )
status.update = event_bold_change( -0.005, 0.0 );
break;
case grKEY( 'y' ):
- if ( status.render_mode == RENDER_MODE_EMBOLDEN )
+ if ( status.render_mode == RENDER_MODE_FANCY )
status.update = event_bold_change( 0.0, 0.005 );
break;
case grKEY( 'Y' ):
- if ( status.render_mode == RENDER_MODE_EMBOLDEN )
+ if ( status.render_mode == RENDER_MODE_FANCY )
status.update = event_bold_change( 0.0, -0.005 );
break;
@@ -1603,11 +1532,8 @@
case RENDER_MODE_ALL:
render_mode = "all glyphs";
break;
- case RENDER_MODE_EMBOLDEN:
- render_mode = "emboldened";
- break;
- case RENDER_MODE_SLANTED:
- render_mode = "slanted";
+ case RENDER_MODE_FANCY:
+ render_mode = "fancy";
break;
case RENDER_MODE_STROKE:
render_mode = "stroked";
@@ -1626,19 +1552,25 @@
buf, display->fore_color );
}
- if ( status.render_mode == RENDER_MODE_EMBOLDEN )
+ if ( status.render_mode == RENDER_MODE_FANCY )
{
/* x emboldening */
- sprintf( buf, " x: %.3f",
+ sprintf( buf, " x: % .3f",
status.xbold_factor );
grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
buf, display->fore_color );
/* y emboldening */
- sprintf( buf, " y: %.3f",
+ sprintf( buf, " y: % .3f",
status.ybold_factor );
grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
buf, display->fore_color );
+
+ /* slanting */
+ sprintf( buf, " s: % .3f",
+ status.slant );
+ grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
+ buf, display->fore_color );
}
if ( status.render_mode == RENDER_MODE_STROKE )
@@ -1650,15 +1582,6 @@
buf, display->fore_color );
}
- if ( status.render_mode == RENDER_MODE_SLANTED )
- {
- /* slanting */
- sprintf( buf, " value: %.3f",
- status.slant );
- grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
- buf, display->fore_color );
- }
-
line++;
/* anti-aliasing */
@@ -2068,16 +1991,11 @@
status.offset );
break;
- case RENDER_MODE_EMBOLDEN:
- error = Render_Embolden( handle->current_font->num_indices,
+ case RENDER_MODE_FANCY:
+ error = Render_Fancy( handle->current_font->num_indices,
status.offset );
break;
- case RENDER_MODE_SLANTED:
- error = Render_Slanted( handle->current_font->num_indices,
- status.offset );
- break;
-
case RENDER_MODE_STROKE:
error = Render_Stroke( handle->current_font->num_indices,
status.offset );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master b8a931d: [ftview] Consolidate emboldening and slanting modes.,
Alexei Podtelezhnikov <=