From c469761bd863e12ac92362a6c1061e86d533391e Mon Sep 17 00:00:00 2001 From: nek0 Date: Thu, 1 Mar 2018 23:33:08 +0100 Subject: [PATCH] show fps --- src/Init.hs | 5 +++++ src/Test.hs | 10 ++++++++++ src/Types/UserData.hs | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/src/Init.hs b/src/Init.hs index 730f4e6..2068b0e 100644 --- a/src/Init.hs +++ b/src/Init.hs @@ -55,6 +55,8 @@ load = do mwalltsw <- createImage nvg (FileName "assets/walls/wall_t_sw.png") 0 mwalltnw <- createImage nvg (FileName "assets/walls/wall_t_nw.png") 0 mwallcross <- createImage nvg (FileName "assets/walls/wall_cross.png") 0 + _ <- createFont nvg "bedstead" + (FileName "assets/font/Bedstead-Semicondensed.ttf") let mwalls = [ mwallasc, mwalldesc, mwallcornern, mwallcornere, mwallcorners, mwallcornerw, mwalltne, mwalltse, mwalltsw, mwalltnw, @@ -68,6 +70,9 @@ load = do , subsystems = subs , assetImages = M.fromList walls + , assetFonts = M.fromList + [ (FontBedstead, "bedstead") + ] , nano = nvg , uuid = [] , worldState = ws diff --git a/src/Test.hs b/src/Test.hs index 9f954a2..ebdae3c 100644 --- a/src/Test.hs +++ b/src/Test.hs @@ -10,6 +10,8 @@ import Control.Monad (when, void) import Control.Monad.IO.Class (liftIO) import Data.Map.Strict as Map +import qualified Data.Set as S +import qualified Data.Text as T import Data.Matrix as M (toLists, (!), Matrix, safeGet) import Data.Ecstasy as E @@ -95,9 +97,17 @@ movePlayer _ = return () drawMap :: Affection UserData () drawMap = do ud <- getAffection + dt <- getDelta let matrix = mapMat (stateData ud) mapM_ (\(i, ls) -> mapM_ (uncurry $ drawTile i) (reverse $ zip [1..] ls)) (zip [1..] (toLists matrix)) + liftIO $ do + let ctx = nano ud + fontSize ctx 20 + fontFace ctx (assetFonts ud Map.! FontBedstead) + textAlign ctx (S.fromList [AlignCenter,AlignTop]) + fillColor ctx (rgb 255 128 0) + textBox ctx 0 0 200 ("FPS: " `T.append` (T.pack $ Prelude.take 5 $ show (1/dt))) updateMap :: Double -> Affection UserData () updateMap dt = do diff --git a/src/Types/UserData.hs b/src/Types/UserData.hs index 767bcc5..8a53156 100644 --- a/src/Types/UserData.hs +++ b/src/Types/UserData.hs @@ -10,6 +10,7 @@ import Control.Concurrent.STM import NanoVG hiding (V2(..), V3(..)) import qualified Data.Map.Strict as M +import qualified Data.Text as T import Data.Matrix import Data.Ecstasy @@ -19,6 +20,7 @@ data UserData = UserData { state :: State , subsystems :: Subsystems , assetImages :: M.Map ImgId Image + , assetFonts :: M.Map FontId T.Text , nano :: Context , uuid :: [UUID] , worldState :: SystemState Entity @@ -50,6 +52,10 @@ data ImgId | ImgWallCross deriving (Show, Eq, Ord, Enum) +data FontId + = FontBedstead + deriving (Show, Eq, Ord, Enum) + data Direction = N | W