vty/test/BenchNoDiffOpt.hs
2014-04-11 17:51:13 -07:00

40 lines
1.0 KiB
Haskell

{-# LANGUAGE BangPatterns #-}
module BenchNoDiffOpt where
{-# LANGUAGE BangPatterns #-}
import Graphics.Vty
import Verify
import Control.Concurrent( threadDelay )
import Control.Monad( liftM2 )
import qualified Data.ByteString.Char8 as B
import Data.Default (def)
import Data.List
import System.Environment( getArgs )
import System.IO
import System.Random
bench0 = do
let fixedGen = mkStdGen 0
setStdGen fixedGen
vty <- mkVty def
(w,h) <- displayBounds $ outputIface vty
let images = return $ (image0, image1)
image0 = charFill defAttr 'X' w h
image1 = charFill defAttr '0' w h
bench d = do
flipOut vty 300 image0 image1
shutdown vty
return $ Bench images bench
flipOut vty n image0 image1 =
let !pLeft = picForImage image0
!pRight = picForImage image1
wLeft 0 = return ()
wLeft n = update vty pLeft >> wRight (n-1)
wRight 0 = return ()
wRight n = update vty pRight >> wLeft (n-1)
in wLeft n