import qualified Graphics.DrawingCombinators as Draw
import qualified Graphics.UI.SDL as SDL
initScreen :: IO ()
initScreen = do
SDL.init [SDL.InitTimer, SDL.InitVideo]
-- resolution & color depth
SDL.setVideoMode 640 480 32 [SDL.OpenGL]
return ()
drawing :: Draw.Drawing
drawing = Draw.translate (0.0,0.2) $ Draw.scale 0.3 0.3 $ Draw.color (1,0,0,0) Draw.circle
main :: IO ()
main = do
initScreen
Draw.draw drawing
SDL.glSwapBuffers
untilM (== SDL.Quit) SDL.waitEvent
SDL.quit
return ()
untilM :: (Monad m) => (a -> Bool) -> m a -> m a
untilM f m = do
x <- m
if f x then return x else untilM f m