README
This package provides a simple wrapper for the gloss
library,
or rather the function Graphics.Gloss.play
,
enabling you to write gloss
applications as signal functions.
An example “gears” program, which you can run as cabal run rhine-gloss-gears
or stack build && stack exec rhine-gloss-gears
,
now becomes as simple as:
module README where
import FRP.Rhine.Gloss
-- | Calculate a gear wheel rotated by a certain angle.
gears :: Float -> Picture
gears angle = color green $ pictures
$ circleSolid 60
: map (rotate angle) [ rotate (45 * n) $ rectangleSolid 20 150 | n <- [0..3] ]
-- | Rotate the gear with a constant angular velocity.
mainClSF :: GlossClSF
mainClSF = timeInfoOf sinceInit >>> arr (* 50) >>> arr gears
main :: IO ()
main = flowGloss defaultSettings mainClSF
Installation
Since gloss
is based on OpenGL
,
you will need to install the same dependencies as for that.
Typically, this are the GL
, GLU
and GLUT
libraries.
(On Debian-like systems, sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
should suffice.)
When building with stack
, it is assumed that you have nix-shell
installed,
which will automatically get these dependencies for you.