--
-- A Mandelbrot set generator.
-- Originally submitted by Simon Marlow as part of Issue #49.
--
import World
import Config
import Data.Label
import Prelude as P
import Data.Array.Accelerate.IO.Codec.BMP as A
import Data.Array.Accelerate.Examples.Internal as A
import qualified Graphics.Gloss.Interface.IO.Game as G
-- Main ------------------------------------------------------------------------
main :: IO ()
main = do
beginMonitoring
(conf, opts, rest) <- parseArgs options defaults header footer
let world = initialWorld conf opts
bmp = get configFilePath conf
width = get configWidth conf
height = get configHeight conf
runBenchmarks opts rest
[ bench "mandelbrot" $ whnf renderWorld world ]
case bmp of
Just path -> writeImageToBMP path (renderWorld world)
Nothing ->
runInteractive opts rest $
G.playIO (G.InWindow "Mandelbrot" (width,height) (10,10))
G.black
60
(updateWorld world)
draw
(react conf opts)
advance