packages feed

ktx-font 0.1.0.0 → 0.1.0.1

raw patch · 3 files changed

+22/−12 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -6,6 +6,11 @@ and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## 0.1.0.1 - 2026-03-18++- Make plane rescaling depend on `layout.atlas.sizeUnit`.+  * 1.0 if already caps-sized, unitsPerEm/capHeight otherwise.+ ## 0.1.0.0 - 2025-12-30  Initial release.
ktx-font.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           ktx-font-version:        0.1.0.0+version:        0.1.0.1 synopsis:       GPU-ready rasterized fonts category:       Graphics author:         IC Rainbow@@ -22,10 +22,6 @@ source-repository head   type: git   location: https://gitlab.com/dpwiz/ktx--flag executables-  manual: True-  default: False  library   exposed-modules:
src/Codec/Ktx2/Font.hs view
@@ -46,6 +46,7 @@ import GHC.Generics (Generic, Generic1) import Graphics.MSDF.Atlas.Compact (Compact, compact) import Graphics.MSDF.Atlas.Compact qualified as Compact+import Graphics.MSDF.Atlas.Layout qualified as Layout import KB.Text.Shape qualified as TextShape import KB.Text.Shape.FFI.Enums qualified as KBTS import KB.Text.Shape.FFI.Handles (Font(..), intHandle)@@ -77,25 +78,33 @@   kbtsData <- Font.extractBlob ttfData 0    font <- createFont kbtsData 0-  capsScale <- withFontData font $ pure . Font.emToCaps+  rescale <-+    case layout.atlas.sizeUnit of+      Just Layout.CapsHeight -> pure id+      Nothing -> do+        factor <- withFontData font $ pure . Font.emToCaps+        pure $ scalePlanes factor   destroyFont font    sourceKtx <- Ktx2.fromFile pathKtx2   let-    atlas = capScalePlanes capsScale $ compact layout+    atlas = rescale $ compact layout     atlasData = ByteString.toStrict $ encode atlas     kvd =       KVD.insertBytes KTX_KEY_atlas (Zstd.compress 19 atlasData) $       KVD.insertBytes KTX_KEY_kbts (Zstd.compress 19 kbtsData) $       KVD.insertText KTX_KEY_kbts_version kbtsVersion $-      KVD.setWriterWith ("ktx-font 0.1.0.0 / " <>) sourceKtx.kvd+      KVD.setWriterWith ("ktx-font 0.1.0.1 / " <>) sourceKtx.kvd   Ktx2.toFile pathKtxf sourceKtx{Ktx2.kvd}  -- | Rescale planes to caps height instead of ems.-capScalePlanes :: Float -> Compact -> Compact-capScalePlanes capsScale a = a-  { Compact._size = a._size-  , Compact.planes = Vector.map (Compact.scaleBox capsScale) a.planes+--+-- With 1.4 factor, 1em targeting 10px would become 14px.+-- That means you need smaller font sizes in caps that in ems.+scalePlanes :: Float -> Compact -> Compact+scalePlanes s a = a+  { Compact._size = a._size * s+  , Compact.planes = Vector.map (Compact.scaleBox s) a.planes   }  {- | Put already-loaded font to context.