[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 29d6b2b: [ftview] Keep custom LCD filters norma
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2-demos] master 29d6b2b: [ftview] Keep custom LCD filters normalized and balanced. |
Date: |
Mon, 11 May 2020 00:24:20 -0400 (EDT) |
branch: master
commit 29d6b2b42ef49f8376a668031f68460bfc6a82c2
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
[ftview] Keep custom LCD filters normalized and balanced.
Unorthodox filters are still available through the `-L' option.
* src/ftview.c (event_fw_change): New function with distributed delta.
(Process_Event): Updated.
---
ChangeLog | 9 +++++++++
src/ftview.c | 35 +++++++++++++++++++++++------------
2 files changed, 32 insertions(+), 12 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index f487a71..09b22c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2020-05-04 Alexei Podtelezhnikov <address@hidden>
+ [ftview] Keep custom LCD filters normalized and balanced.
+
+ Unorthodox filters are still available through the `-L' option.
+
+ * src/ftview.c (event_fw_change): New function with distributed delta.
+ (Process_Event): Updated.
+
+2020-05-04 Alexei Podtelezhnikov <address@hidden>
+
* src/ftcommon.c (FTDemo_Install_Font): Remove unused buffer.
2029-05-09 Werner Lemberg <address@hidden>
diff --git a/src/ftview.c b/src/ftview.c
index f6b8a83..54fa662 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -923,6 +923,27 @@
}
+ static void
+ event_fw_change( int delta )
+ {
+ int i = status.fw_idx;
+ int j = ( i ^ 1 ) & 1;
+
+
+ FTC_Manager_RemoveFaceID( handle->cache_manager,
+ handle->scaler.face_id );
+
+ /* keep it normalized and balanced */
+ status.filter_weights[ i] += delta;
+ status.filter_weights[4 - i] += delta;
+ status.filter_weights[ j] -= delta;
+ status.filter_weights[4 - j] -= delta;
+
+ FT_Library_SetLcdFilterWeights( handle->library,
+ status.filter_weights );
+ }
+
+
static int
event_bold_change( double xdelta,
double ydelta )
@@ -1448,12 +1469,7 @@
case grKEY( '-' ):
if ( status.lcd_filter < 0 )
{
- FTC_Manager_RemoveFaceID( handle->cache_manager,
- handle->scaler.face_id );
-
- status.filter_weights[status.fw_idx]--;
- FT_Library_SetLcdFilterWeights( handle->library,
- status.filter_weights );
+ event_fw_change( -1 );
status.update = 1;
}
break;
@@ -1462,12 +1478,7 @@
case grKEY( '=' ):
if ( status.lcd_filter < 0 )
{
- FTC_Manager_RemoveFaceID( handle->cache_manager,
- handle->scaler.face_id );
-
- status.filter_weights[status.fw_idx]++;
- FT_Library_SetLcdFilterWeights( handle->library,
- status.filter_weights );
+ event_fw_change( 1 );
status.update = 1;
}
break;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 29d6b2b: [ftview] Keep custom LCD filters normalized and balanced.,
Alexei Podtelezhnikov <=