[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 08f5b85: [ttdebug] Add support for third TrueTy
From: |
Werner LEMBERG |
Subject: |
[freetype2-demos] master 08f5b85: [ttdebug] Add support for third TrueType interpreter version. |
Date: |
Thu, 26 May 2016 05:21:40 +0000 (UTC) |
branch: master
commit 08f5b859ec794a15e9633d92c043869a6211972c
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>
[ttdebug] Add support for third TrueType interpreter version.
Option `-H' now takes an argument.
* src/ttdebug.c (default_version, alternative_version): Replaced
with...
(tt_interpreter_versions, num_tt_interpreter_versions,
dflt_tt_interpreter_version): ... these new global variables.
(main): Expand check for alternative TrueType interpreter versions.
Add argument to option `-H'.
(Usage): Updated.
* src/ttdebug.1: Updated.
---
ChangeLog | 16 +++++++++++
src/ttdebug.1 | 9 ++++---
src/ttdebug.c | 84 +++++++++++++++++++++++++++++++++++++++++++--------------
3 files changed, 86 insertions(+), 23 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index be0cdca..79fedb1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2016-05-26 Werner Lemberg <address@hidden>
+
+ [ttdebug] Add support for third TrueType interpreter version.
+
+ Option `-H' now takes an argument.
+
+ * src/ttdebug.c (default_version, alternative_version): Replaced
+ with...
+ (tt_interpreter_versions, num_tt_interpreter_versions,
+ dflt_tt_interpreter_version): ... these new global variables.
+ (main): Expand check for alternative TrueType interpreter versions.
+ Add argument to option `-H'.
+ (Usage): Updated.
+
+ * src/ttdebug.1: Updated.
+
2016-05-21 Werner Lemberg <address@hidden>
[ftgrid] Add support for third TrueType interpreter version.
diff --git a/src/ttdebug.1 b/src/ttdebug.1
index 62a8e47..7d19eb1 100644
--- a/src/ttdebug.1
+++ b/src/ttdebug.1
@@ -36,9 +36,12 @@ This program is part of the FreeType demos package.
.SH OPTIONS
.
.TP
-.BI \-H
-Using hinting engine version 35 (default is version 38).
-It essentially means to deactivate subpixel hinting similar to ClearType.
+.BI "\-H " ver
+Using hinting engine version VER.
+Available versions are depending on compilation options of FreeType;
+call
+.B ttdebug
+without an argument to get the actual list.
.
.TP
.B \-v
diff --git a/src/ttdebug.c b/src/ttdebug.c
index ac78514..cf52aeb 100644
--- a/src/ttdebug.c
+++ b/src/ttdebug.c
@@ -73,8 +73,9 @@
static TT_Size size; /* truetype size */
static TT_GlyphSlot glyph; /* truetype glyph slot */
- static int default_version; /* default TrueType engine version */
- static int alternative_version; /* alternative TrueType engine version */
+ static unsigned int tt_interpreter_versions[3];
+ static int num_tt_interpreter_versions;
+ static unsigned int dflt_tt_interpreter_version;
static FT_Bool use_float = 0; /* number format */
@@ -1851,6 +1852,20 @@
static void
Usage( char* execname )
{
+ char versions[32];
+
+
+ /* we expect that at least one interpreter version is available */
+ if ( num_tt_interpreter_versions == 2 )
+ sprintf(versions, "%d and %d",
+ tt_interpreter_versions[0],
+ tt_interpreter_versions[1] );
+ else
+ sprintf(versions, "%d, %d, and %d",
+ tt_interpreter_versions[0],
+ tt_interpreter_versions[1],
+ tt_interpreter_versions[2] );
+
fprintf( stderr,
"\n"
"ttdebug: simple TTF debugger -- part of the FreeType project\n"
@@ -1864,12 +1879,14 @@
" size The size of the glyph in pixels (ppem).\n"
" font The TrueType font file to debug.\n"
"\n"
- " -H Use hinting engine version %d (default is version %d).\n"
+ " -H ver Use hinting engine version VER.\n"
+ " Available versions are %s; default is version %d.\n"
" -v Show version.\n"
"\n"
"While running, press the `?' key for help.\n"
"\n",
- alternative_version, default_version );
+ versions,
+ dflt_tt_interpreter_version );
exit( 1 );
}
@@ -1888,7 +1905,11 @@
int option;
char version_string[64];
- int change_interpreter_version = 0;
+ int i;
+ unsigned int versions[3] = { TT_INTERPRETER_VERSION_35,
+ TT_INTERPRETER_VERSION_38,
+ TT_INTERPRETER_VERSION_40 };
+ int version;
int tmp;
@@ -1919,18 +1940,27 @@
patch );
}
+ /* collect all available versions, then set again the default */
FT_Property_Get( library,
"truetype",
- "interpreter-version", &default_version );
- alternative_version = default_version == TT_INTERPRETER_VERSION_35
- ? TT_INTERPRETER_VERSION_38
- : TT_INTERPRETER_VERSION_35;
+ "interpreter-version", &dflt_tt_interpreter_version );
+ for ( i = 0; i < 3; i++ )
+ {
+ error = FT_Property_Set( library,
+ "truetype",
+ "interpreter-version", &versions[i] );
+ if ( !error )
+ tt_interpreter_versions[num_tt_interpreter_versions++] = versions[i];
+ }
+ FT_Property_Set( library,
+ "truetype",
+ "interpreter-version", &dflt_tt_interpreter_version );
execname = ft_basename( argv[0] );
while ( 1 )
{
- option = getopt( argc, argv, "Hv" );
+ option = getopt( argc, argv, "H:v" );
if ( option == -1 )
break;
@@ -1938,7 +1968,30 @@
switch ( option )
{
case 'H':
- change_interpreter_version = 1;
+ version = atoi( optarg );
+
+ if ( version < 0 )
+ {
+ printf( "invalid TrueType version = %d\n", version );
+ Usage( execname );
+ }
+
+ for ( i = 0; i < num_tt_interpreter_versions; i++ )
+ {
+ if ( (unsigned int)version == tt_interpreter_versions[i] )
+ {
+ FT_Property_Set( library,
+ "truetype",
+ "interpreter-version", &version );
+ break;
+ }
+ }
+
+ if ( i == num_tt_interpreter_versions )
+ {
+ printf( "invalid TrueType version = %d\n", version );
+ Usage( execname );
+ }
break;
case 'v':
@@ -1978,15 +2031,6 @@
Init_Keyboard();
- if ( change_interpreter_version )
- {
- error = FT_Property_Set( library,
- "truetype",
- "interpreter-version", &alternative_version );
- if ( error )
- Abort( "could not select alternative TrueType engine version" );
- }
-
FT_Set_Debug_Hook( library,
FT_DEBUG_HOOK_TRUETYPE,
(FT_DebugHook_Func)RunIns );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 08f5b85: [ttdebug] Add support for third TrueType interpreter version.,
Werner LEMBERG <=