freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master b6c40a6 3/3: [ftinspect] Mark pixel centers in


From: Werner LEMBERG
Subject: [freetype2-demos] master b6c40a6 3/3: [ftinspect] Mark pixel centers in the grid with a cross.
Date: Sun, 29 May 2016 09:02:52 +0000 (UTC)

branch: master
commit b6c40a6b748a687fd8887d6ee4dbdd23b9a09779
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    [ftinspect] Mark pixel centers in the grid with a cross.
    
    * src/ftinspect.c (Grid::paint): Implement it.
---
 ChangeLog         |    6 ++++++
 src/ftinspect.cpp |   31 +++++++++++++++++++++++++++++--
 2 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f109371..58a3042 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2016-05-29  Werner Lemberg  <address@hidden>
 
+       [ftinspect] Mark pixel centers in the grid with a cross.
+
+       * src/ftinspect.c (Grid::paint): Implement it.
+
+2016-05-29  Werner Lemberg  <address@hidden>
+
        [ftinspect] Prepare zoom for drawing pixel center.
 
        This change makes the zoom use only even values larger than a given
diff --git a/src/ftinspect.cpp b/src/ftinspect.cpp
index edec05c..795b421 100644
--- a/src/ftinspect.cpp
+++ b/src/ftinspect.cpp
@@ -661,14 +661,41 @@ Grid::paint(QPainter* painter,
 
   painter->setPen(gridPen);
 
+  // don't mark pixel center with a cross if magnification is too small
+  if (lod > 20)
+  {
+    int halfLength = 1;
+
+    // cf. QSpinBoxx
+    if (lod > 640)
+      halfLength = 6;
+    else if (lod > 320)
+      halfLength = 5;
+    else if (lod > 160)
+      halfLength = 4;
+    else if (lod > 80)
+      halfLength = 3;
+    else if (lod > 40)
+      halfLength = 2;
+
+    for (qreal x = -100; x < 100; x++)
+      for (qreal y = -100; y < 100; y++)
+      {
+        painter->drawLine(QLineF(x + 0.5, y + 0.5 - halfLength / lod,
+                                 x + 0.5, y + 0.5 + halfLength / lod));
+        painter->drawLine(QLineF(x + 0.5 - halfLength / lod, y + 0.5,
+                                 x + 0.5 + halfLength / lod, y + 0.5));
+      }
+  }
+
   // don't draw grid if magnification is too small
   if (lod >= 5)
   {
     // XXX fix size
-    for (qreal x = -100; x <= 100; x++)
+    for (int x = -100; x <= 100; x++)
       painter->drawLine(x, -100,
                         x, 100);
-    for (qreal y = -100; y <= 100; y++)
+    for (int y = -100; y <= 100; y++)
       painter->drawLine(-100, y,
                         100, y);
   }



reply via email to

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