freetype-commit
[Top][All Lists]
Advanced

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

[Git][freetype/freetype-demos][gsoc-2022-chariri-final] [ftinspect] Add


From: Charlie Jiang (@cqjjjzr)
Subject: [Git][freetype/freetype-demos][gsoc-2022-chariri-final] [ftinspect] Add auxiliary lines for the grid view.
Date: Sun, 04 Sep 2022 05:26:12 +0000

Charlie Jiang pushed to branch gsoc-2022-chariri-final at FreeType / FreeType Demo Programs

Commits:

  • d5693115
    by Charlie Jiang at 2022-09-04T13:25:59+08:00
    [ftinspect] Add auxiliary lines for the grid view.
    
    The aux lines will show advance and asc/descender.
    
    * src/ftinspect/glyphcomponents/grid.cpp,
      src/ftinspect/glyphcomponents/grid.hpp: Implement aux lines.
    
    * src/ftinspect/engine/engine.cpp, src/ftinspect/engine/engine.hpp:
      Add `currentSizeAscDescPx`.
    
    * src/ftinspect/panels/singular.cpp, src/ftinspect/panels/singular.hpp:
      Pass parameters to the `Grid` graphics item.
    

5 changed files:

Changes:

  • src/ftinspect/engine/engine.cpp
    ... ... @@ -458,6 +458,14 @@ Engine::currentFontFixedSizes()
    458 458
     }
    
    459 459
     
    
    460 460
     
    
    461
    +std::pair<int, int>
    
    462
    +Engine::currentSizeAscDescPx()
    
    463
    +{
    
    464
    +  return { ftSize_->metrics.ascender >> 6,
    
    465
    +           ftSize_->metrics.descender >> 6 };
    
    466
    +}
    
    467
    +
    
    468
    +
    
    461 469
     QString
    
    462 470
     Engine::glyphName(int index)
    
    463 471
     {
    

  • src/ftinspect/engine/engine.hpp
    ... ... @@ -132,6 +132,8 @@ public:
    132 132
       bool currentFontHasColorLayers();
    
    133 133
       std::vector<int> currentFontFixedSizes();
    
    134 134
     
    
    135
    +  std::pair<int, int> currentSizeAscDescPx();
    
    136
    +
    
    135 137
       // (settings)
    
    136 138
       int dpi() { return dpi_; }
    
    137 139
       FTC_ImageType imageType() { return &imageType_; }
    

  • src/ftinspect/glyphcomponents/grid.cpp
    ... ... @@ -119,7 +119,15 @@ Grid::paint(QPainter* painter,
    119 119
     
    
    120 120
       if (showAuxLines_)
    
    121 121
       {
    
    122
    -    // TODO: impl
    
    122
    +    painter->setPen(gb->ascDescAuxPen);
    
    123
    +    painter->drawLine(minX, ascender_,
    
    124
    +                      maxX, ascender_);
    
    125
    +    painter->drawLine(minX, descender_,
    
    126
    +                      maxX, descender_);
    
    127
    +
    
    128
    +    painter->setPen(gb->advanceAuxPen);
    
    129
    +    painter->drawLine(advance_, minY,
    
    130
    +                      advance_, maxY);
    
    123 131
       }
    
    124 132
     }
    
    125 133
     
    
    ... ... @@ -133,4 +141,19 @@ Grid::setShowGrid(bool showGrid, bool showAuxLines)
    133 141
     }
    
    134 142
     
    
    135 143
     
    
    144
    +void
    
    145
    +Grid::updateParameters(int ascenderPx,
    
    146
    +                       int descenderPx,
    
    147
    +                       int advancePx)
    
    148
    +{
    
    149
    +  // Need to flip the Y coord (originally Cartesian)
    
    150
    +  ascender_ = -ascenderPx;
    
    151
    +  descender_ = -descenderPx;
    
    152
    +  advance_ = advancePx;
    
    153
    +
    
    154
    +  if (showAuxLines_)
    
    155
    +    update();
    
    156
    +}
    
    157
    +
    
    158
    +
    
    136 159
     // end of grid.cpp

  • src/ftinspect/glyphcomponents/grid.hpp
    ... ... @@ -20,6 +20,7 @@ public:
    20 20
                  QWidget* widget) override;
    
    21 21
     
    
    22 22
       void setShowGrid(bool showGrid, bool showAuxLines);
    
    23
    +  void updateParameters(int ascenderPx, int descenderPx, int advancePx);
    
    23 24
     
    
    24 25
       void updateRect(); // there's no signal/slots for QGraphicsItem.
    
    25 26
     
    
    ... ... @@ -30,6 +31,9 @@ private:
    30 31
     
    
    31 32
       bool showGrid_ = true;
    
    32 33
       bool showAuxLines_ = false;
    
    34
    +
    
    35
    +  int ascender_ = 0, descender_ = 0;
    
    36
    +  int advance_ = 0;
    
    33 37
     };
    
    34 38
     
    
    35 39
     
    

  • src/ftinspect/panels/singular.cpp
    ... ... @@ -131,7 +131,14 @@ SingularTab::drawGlyph()
    131 131
             glyphScene_->addItem(currentGlyphPointNumbersItem_);
    
    132 132
           }
    
    133 133
         }
    
    134
    +
    
    135
    +    engine_->reloadFont();
    
    136
    +    auto ascDesc = engine_->currentSizeAscDescPx();
    
    137
    +    gridItem_->updateParameters(ascDesc.first, ascDesc.second,
    
    138
    +                                glyph->advance.x >> 16);
    
    134 139
       }
    
    140
    +  else
    
    141
    +    gridItem_->updateParameters(0, 0, 0);
    
    135 142
     
    
    136 143
       glyphScene_->update();
    
    137 144
     }
    


  • reply via email to

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