{-| Brillo hides the pain of drawing simple vector graphics behind a nice data type and a few display functions. Getting something on the screen is as easy as: @ import Brillo main = `display` (InWindow \"Nice Window\" (200, 200) (10, 10)) `white` (`Circle` 80) @ Once the window is open you can use the following: @ * Quit - esc-key * Move Viewport - arrow keys - left-click drag * Zoom Viewport - page up/down-keys - control-left-click drag - right-click drag - mouse wheel * Rotate Viewport - home/end-keys - alt-left-click drag * Reset Viewport 'r'-key @ Animations can be constructed similarly using the `animate`. If you want to run a simulation based around finite time steps then try `simulate`. If you want to manage your own key\/mouse events then use `play`. Brillo uses OpenGL under the hood, but you don't have to worry about any of that. Brillo programs should be compiled with @-threaded@, otherwise the GHC runtime will limit the frame-rate to around 20Hz. For more information, check out <https://github.com/ad-si/Brillo>. -} module Brillo ( module Brillo.Data.Picture, module Brillo.Data.Color, module Brillo.Data.Bitmap, Display (..), display, animate, simulate, play, ) where import Brillo.Data.Bitmap import Brillo.Data.Color import Brillo.Data.Display import Brillo.Data.Picture import Brillo.Interface.Pure.Animate import Brillo.Interface.Pure.Display import Brillo.Interface.Pure.Game import Brillo.Interface.Pure.Simulate