From 34d3ece99e438e5e81f4df6ca7a36de307e41b3e Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 2 Feb 2024 01:44:49 +0100 Subject: Dump compound glyph info --- src/Graphics/Fountainhead/Type.hs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/Graphics/Fountainhead/Type.hs') diff --git a/src/Graphics/Fountainhead/Type.hs b/src/Graphics/Fountainhead/Type.hs index 07031e4..e809d9c 100644 --- a/src/Graphics/Fountainhead/Type.hs +++ b/src/Graphics/Fountainhead/Type.hs @@ -8,10 +8,12 @@ module Graphics.Fountainhead.Type , Fixed32(..) , FWord , UFWord + , fixed2Double , succIntegral , ttfEpoch ) where +import Data.Bits ((.>>.), (.&.)) import Data.Int (Int16) import Data.Word (Word16, Word32) import Data.Time (Day(..)) @@ -31,3 +33,9 @@ ttfEpoch = fromOrdinalDate 1904 1 succIntegral :: Integral a => a -> Int succIntegral = succ . fromIntegral + +fixed2Double :: F2Dot14 -> Double +fixed2Double (F2Dot14 fixed) = + let mantissa = realToFrac (fixed .>>. 14) + fraction = realToFrac (fixed .&. 0x3fff) / 16384.0 + in mantissa + fraction -- cgit v1.2.3