[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 88183f9 1/2: [ftview] Add support for third Tru
From: |
Werner LEMBERG |
Subject: |
[freetype2-demos] master 88183f9 1/2: [ftview] Add support for third TrueType interpreter version. |
Date: |
Sat, 21 May 2016 14:12:39 +0000 (UTC) |
branch: master
commit 88183f98e1cbb99ae95c9cbf26d51d463446ab74
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>
[ftview] Add support for third TrueType interpreter version.
* src/ftview.c (status): Replace `tt_interpreter_version' with
`tt_interpreter_versions' array.
Add `num_tt_interpreter_versions' and `tt_interpreter_version_idx'.
(event_tt_interpreter_version_change, write_header): Updated.
(main): Expand check for alternative TrueType interpreter versions.
---
ChangeLog | 10 ++++++++++
src/ftview.c | 49 ++++++++++++++++++++++++++++++++++++-------------
2 files changed, 46 insertions(+), 13 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 937c1c1..b06de63 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2016-05-21 Werner Lemberg <address@hidden>
+ [ftview] Add support for third TrueType interpreter version.
+
+ * src/ftview.c (status): Replace `tt_interpreter_version' with
+ `tt_interpreter_versions' array.
+ Add `num_tt_interpreter_versions' and `tt_interpreter_version_idx'.
+ (event_tt_interpreter_version_change, write_header): Updated.
+ (main): Expand check for alternative TrueType interpreter versions.
+
+2016-05-21 Werner Lemberg <address@hidden>
+
Make compilation work with clang++.
Also fix some warning messages.
diff --git a/src/ftview.c b/src/ftview.c
index b90366d..4affcf8 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -99,7 +99,9 @@
double slant;
unsigned int cff_hinting_engine;
- unsigned int tt_interpreter_version;
+ unsigned int tt_interpreter_versions[3];
+ int num_tt_interpreter_versions;
+ int tt_interpreter_version_idx;
FT_Bool warping;
int font_idx;
@@ -115,7 +117,7 @@
} status = { 1,
DIM_X, DIM_Y, RENDER_MODE_ALL, FT_ENCODING_NONE,
72, 48, -1, GAMMA, 0.04, 0.04, 0.02, 0.22,
- 0, 0, 0, /* default values are set at runtime */
+ 0, { 0 }, 0, 0, 0, /* default values are set at runtime */
0, 0, 0, 0, 0,
FT_LCD_FILTER_DEFAULT, { 0x08, 0x4D, 0x56, 0x4D, 0x08 }, 2 };
@@ -862,18 +864,14 @@
static int
event_tt_interpreter_version_change( void )
{
- FT_UInt new_interpreter_version;
-
-
- if ( status.tt_interpreter_version == TT_INTERPRETER_VERSION_35 )
- new_interpreter_version = TT_INTERPRETER_VERSION_38;
- else
- new_interpreter_version = TT_INTERPRETER_VERSION_35;
+ status.tt_interpreter_version_idx += 1;
+ status.tt_interpreter_version_idx %= status.num_tt_interpreter_versions;
error = FT_Property_Set( handle->library,
"truetype",
"interpreter-version",
- &new_interpreter_version );
+ &status.tt_interpreter_versions[
+ status.tt_interpreter_version_idx] );
if ( !error )
{
@@ -881,7 +879,6 @@
/* lazy to walk over all loaded fonts to check whether they */
/* are of type TTF, then unloading them explicitly. */
FTC_Manager_Reset( handle->cache_manager );
- status.tt_interpreter_version = new_interpreter_version;
return 1;
}
@@ -1680,7 +1677,8 @@
else if ( !strcmp( module->clazz->module_name, "truetype" ) )
{
- switch ( status.tt_interpreter_version )
+ switch ( status.tt_interpreter_versions[
+ status.tt_interpreter_version_idx] )
{
case TT_INTERPRETER_VERSION_35:
hinting_engine = "v35";
@@ -1688,6 +1686,9 @@
case TT_INTERPRETER_VERSION_38:
hinting_engine = "v38";
break;
+ case TT_INTERPRETER_VERSION_40:
+ hinting_engine = "v40";
+ break;
}
}
@@ -1923,6 +1924,11 @@
char* argv[] )
{
grEvent event;
+ unsigned int dflt_tt_interpreter_version;
+ int i;
+ unsigned int versions[3] = { TT_INTERPRETER_VERSION_35,
+ TT_INTERPRETER_VERSION_38,
+ TT_INTERPRETER_VERSION_40 };
/* Initialize engine */
@@ -1936,9 +1942,26 @@
FT_Property_Get( handle->library,
"cff",
"hinting-engine", &status.cff_hinting_engine );
+
+ /* collect all available versions, then set again the default */
FT_Property_Get( handle->library,
"truetype",
- "interpreter-version", &status.tt_interpreter_version );
+ "interpreter-version", &dflt_tt_interpreter_version );
+ for ( i = 0; i < 3; i++ )
+ {
+ error = FT_Property_Set( handle->library,
+ "truetype",
+ "interpreter-version", &versions[i] );
+ if ( !error )
+ status.tt_interpreter_versions[
+ status.num_tt_interpreter_versions++] = versions[i];
+ if ( versions[i] == dflt_tt_interpreter_version )
+ status.tt_interpreter_version_idx = i;
+ }
+ FT_Property_Set( handle->library,
+ "truetype",
+ "interpreter-version", &dflt_tt_interpreter_version );
+
FT_Property_Get( handle->library,
"autofitter",
"warping", &status.warping );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 88183f9 1/2: [ftview] Add support for third TrueType interpreter version.,
Werner LEMBERG <=