diff --git a/src/Main.hs b/src/Main.hs index 8b34b8f..b7b2eab 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -243,8 +243,8 @@ run = do (mt,tc,sleepAmount,frameTime) <- liftIO $ do let double = fromRational.toRational :: (Real a) => a -> Double - targetFramerate = 60.0 - targetFrametime = 1.0/targetFramerate + targetFramerate = 60.0 + targetFrametime = 1.0/targetFramerate --targetFrametimeμs = targetFrametime * 1000000.0 now <- getCurrentTime let diff = diffUTCTime now (state ^. io.clock) -- get time-diffs @@ -253,14 +253,14 @@ run = do SDL.setWindowTitle (env ^. windowObject) title let sleepAmount = floor ((targetFrametime - double diff)*1000000) :: Int -- get time until next frame in microseconds clockFactor = (state ^. io.tessClockFactor) - tessChange - | (clockFactor < (75*targetFrametime)) && (state ^. gl.glMap.stateTessellationFactor < 5) = ((+)1 :: Int -> Int) - -- > last 100 frames had > 25% leftover (on avg.) - | (clockFactor > (110*targetFrametime)) && (state ^. gl.glMap.stateTessellationFactor > 1) = (flip (-) 1 :: Int -> Int) - -- > last 100 frames had < 90% of target-fps - | otherwise = ((+)0 :: Int -> Int) -- 0ms > x > 10% -> keep settings + tessChange + | (clockFactor < (75*targetFrametime)) && (state ^. gl.glMap.stateTessellationFactor < 5) = ((+)1 :: Int -> Int) + -- > last 100 frames had > 25% leftover (on avg.) + | (clockFactor > (110*targetFrametime)) && (state ^. gl.glMap.stateTessellationFactor > 1) = (flip (-) 1 :: Int -> Int) + -- > last 100 frames had < 90% of target-fps + | otherwise = ((+)0 :: Int -> Int) -- 0ms > x > 10% -> keep settings when (sleepAmount > 0) $ threadDelay sleepAmount - now' <- getCurrentTime + now' <- getCurrentTime return (now',tessChange,sleepAmount,ddiff) -- set state with new clock-time --liftIO $ putStrLn $ unwords ["clockFactor:",show (state ^. io.tessClockFactor),"\ttc:", show (tc (state ^. gl.glMap.stateTessellationFactor)),"\tsleep ",show frameTime,"ms"] diff --git a/src/Render/Render.hs b/src/Render/Render.hs index 669bc95..0fb03ec 100644 --- a/src/Render/Render.hs +++ b/src/Render/Render.hs @@ -128,7 +128,7 @@ initMapShader tessFac (buf, vertDes) = do smap <- genObjectName - testobj <- parseIQM "sample.iqm" + testobj <- parseIQM "models/box.iqm" let objs = [MapObject testobj (L.V3 0 10 0) (MapObjectState ())]