freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2-demos] master 1612259: [ftview, ftstring, ftgrid] Unify gamma


From: Alexei Podtelezhnikov
Subject: [freetype2-demos] master 1612259: [ftview, ftstring, ftgrid] Unify gamma adjustments.
Date: Wed, 13 May 2020 22:52:34 -0400 (EDT)

branch: master
commit 1612259aebbdb0f69588c4c0689e0a536c3948a0
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>

    [ftview,ftstring,ftgrid] Unify gamma adjustments.
    
    * src/ftcommon.[ch] (FTDemo_Display_Gamma_Change): New function to
    adjust gamma with sRGB between 2.2 and 2.3.
    * src/ftview.c, src/ftstring.c, src/ftgrid.c (Process_Event): Use it.
---
 ChangeLog      | 12 ++++++++++--
 src/ftcommon.c | 27 +++++++++++++++++++++++++++
 src/ftcommon.h |  5 +++++
 src/ftgrid.c   | 18 ++----------------
 src/ftstring.c | 18 ++----------------
 src/ftview.c   | 18 ++----------------
 6 files changed, 48 insertions(+), 50 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 09b22c3..204f556 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,12 @@
-2020-05-04  Alexei Podtelezhnikov  <address@hidden>
+2020-05-13  Alexei Podtelezhnikov  <address@hidden>
+
+       [ftview,ftstring,ftgrid] Unify gamma adjustments.
+
+       * src/ftcommon.[ch] (FTDemo_Display_Gamma_Change): New function to
+       adjust gamma with sRGB between 2.2 and 2.3.
+       * src/ftview.c, src/ftstring.c, src/ftgrid.c (Process_Event): Use it.
+
+2020-05-11  Alexei Podtelezhnikov  <address@hidden>
 
        [ftview] Keep custom LCD filters normalized and balanced.
 
@@ -7,7 +15,7 @@
        * src/ftview.c (event_fw_change): New function with distributed delta.
        (Process_Event): Updated.
 
-2020-05-04  Alexei Podtelezhnikov  <address@hidden>
+2020-05-09  Alexei Podtelezhnikov  <address@hidden>
 
        * src/ftcommon.c (FTDemo_Install_Font): Remove unused buffer.
 
diff --git a/src/ftcommon.c b/src/ftcommon.c
index 1470479..4964688 100644
--- a/src/ftcommon.c
+++ b/src/ftcommon.c
@@ -169,6 +169,33 @@
 
 
   void
+  FTDemo_Display_Gamma_Change( FTDemo_Display*  display,
+                               int              dir )
+  {
+    if ( dir > 0 )
+    {
+      if ( display->gamma == 0.0 )
+        display->gamma  = 2.3;
+      else if ( 2.25 - 0.1 < display->gamma && display->gamma < 2.25 )
+        display->gamma  = 0.0;  /* sRGB */
+      else if ( display->gamma < 2.95 )
+        display->gamma += 0.1;
+    }
+    else if ( dir < 0 )
+    {
+      if ( display->gamma == 0.0 )
+        display->gamma  = 2.2;
+      else if ( 2.25 + 0.1 > display->gamma && display->gamma > 2.25 )
+        display->gamma  = 0.0;  /* sRGB */
+      else if ( display->gamma > 0.35 )
+        display->gamma -= 0.1;
+    }
+
+    grSetTargetGamma( display->bitmap, display->gamma );
+  }
+
+
+  void
   FTDemo_Display_Done( FTDemo_Display*  display )
   {
     if ( !display )
diff --git a/src/ftcommon.h b/src/ftcommon.h
index 398a38c..3645a95 100644
--- a/src/ftcommon.h
+++ b/src/ftcommon.h
@@ -92,6 +92,11 @@
 
 
   void
+  FTDemo_Display_Gamma_Change( FTDemo_Display*  display,
+                               int              dir );
+
+
+  void
   FTDemo_Display_Done( FTDemo_Display*  display );
 
 
diff --git a/src/ftgrid.c b/src/ftgrid.c
index b2c322f..6718c54 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -1155,20 +1155,6 @@
 
 
   static void
-  event_gamma_change( double  delta )
-  {
-    display->gamma += delta;
-
-    if ( display->gamma > 3.0 )
-      display->gamma = 3.0;
-    else if ( display->gamma < 0.0 )
-      display->gamma = 0.0;
-
-    grSetTargetGamma( display->bitmap, display->gamma );
-  }
-
-
-  static void
   event_grid_reset( GridStatus  st )
   {
     st->x_origin = st->x_origin_0;
@@ -1477,11 +1463,11 @@
       break;
 
     case grKEY( 'g' ):
-      event_gamma_change( 0.1 );
+      FTDemo_Display_Gamma_Change( display,  1 );
       break;
 
     case grKEY( 'v' ):
-      event_gamma_change( -0.1 );
+      FTDemo_Display_Gamma_Change( display, -1 );
       break;
 
     case grKEY( 'n' ):
diff --git a/src/ftstring.c b/src/ftstring.c
index ebe1bfb..3cf9364 100644
--- a/src/ftstring.c
+++ b/src/ftstring.c
@@ -436,19 +436,6 @@
       i = 0;
   }
 
-  static void
-  event_gamma_change( double  delta )
-  {
-    display->gamma += delta;
-
-    if ( display->gamma > 3.0 )
-      display->gamma = 3.0;
-    else if ( display->gamma < 0.1 )
-      display->gamma = 0.1;
-
-    grSetTargetGamma( display->bitmap, display->gamma );
-  }
-
 
   static void
   event_size_change( int  delta )
@@ -595,11 +582,11 @@
       goto Exit;
 
     case grKEY( 'g' ):
-      event_gamma_change( 0.1 );
+      FTDemo_Display_Gamma_Change( display,  1 );
       goto Exit;
 
     case grKEY( 'v' ):
-      event_gamma_change( -0.1 );
+      FTDemo_Display_Gamma_Change( display, -1 );
       goto Exit;
 
     case grKEY( 'n' ):
@@ -985,7 +972,6 @@
       event_text_change();
 
     event_color_change();
-    event_gamma_change( 0 );
 
     event_font_change( 0 );
     FTDemo_String_Set( handle, status.text );
diff --git a/src/ftview.c b/src/ftview.c
index 54fa662..8724973 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -910,20 +910,6 @@
 
 
   static void
-  event_gamma_change( double  delta )
-  {
-    display->gamma += delta;
-
-    if ( display->gamma > 3.0 )
-      display->gamma = 3.0;
-    else if ( display->gamma < 0.0 )
-      display->gamma = 0.0;
-
-    grSetTargetGamma( display->bitmap, display->gamma );
-  }
-
-
-  static void
   event_fw_change( int  delta )
   {
     int  i = status.fw_idx;
@@ -1357,12 +1343,12 @@
       break;
 
     case grKEY( 'g' ):
-      event_gamma_change( 0.1 );
+      FTDemo_Display_Gamma_Change( display,  1 );
       status.update = 1;
       break;
 
     case grKEY( 'v' ):
-      event_gamma_change( -0.1 );
+      FTDemo_Display_Gamma_Change( display, -1 );
       status.update = 1;
       break;
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]