freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master 5b7cf5e: * src/ftgrid.c (event_grid_zoom): Pret


From: Alexei Podtelezhnikov
Subject: [freetype2-demos] master 5b7cf5e: * src/ftgrid.c (event_grid_zoom): Pretty scale formatting.
Date: Tue, 29 Sep 2020 13:43:02 -0400 (EDT)

branch: master
commit 5b7cf5e7016fbeffe2f1c94941fb836b91b04e56
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    * src/ftgrid.c (event_grid_zoom): Pretty scale formatting.
---
 ChangeLog    |  4 ++++
 src/ftgrid.c | 15 +++++++++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b4cb035..4ae25e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2020-09-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
+       * src/ftgrid.c (event_grid_zoom): Pretty scale formatting.
+
+2020-09-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
        [ftgrid] Implement reversible floating zoom.
 
        The floating zoom is neccessary to display extremely large sizes
diff --git a/src/ftgrid.c b/src/ftgrid.c
index 0af226d..360d455 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -1139,8 +1139,19 @@
 
     status.scale = ldexpf( frc / 8.0f, exp );
 
-    snprintf( status.header_buffer, sizeof ( status.header_buffer ),
-              "zoom scale %g", status.scale );
+    exp -= 3;
+    while ( ~frc & 1 )
+    {
+      frc >>= 1;
+      exp ++;
+    }
+
+    if ( exp >= 0 )
+      snprintf( status.header_buffer, sizeof ( status.header_buffer ),
+                "zoom scale %d:1", frc << exp );
+    else
+      snprintf( status.header_buffer, sizeof ( status.header_buffer ),
+                "zoom scale %d:%d", frc, 1 << -exp );
 
     status.header = (const char *)status.header_buffer;
   }



reply via email to

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