rhine-gloss

Gloss backend for Rhine

Version on this page:0.6.0.1
LTS Haskell 19.12:0.7.1
Stackage Nightly 2022-03-17:0.7.1
Latest on Hackage:1.2

See all snapshots rhine-gloss appears in

BSD-3-Clause licensed by Manuel Bärenz
Maintained by [email protected]
This version can be pinned in stack with:rhine-gloss-0.6.0.1@sha256:98ec1a740993577ddd4a7ae4821a34867ada76252cab7ebe0348a810139e75a0,1472

Module documentation for 0.6.0.1

Used by 1 package in lts-16.25(full list with versions):

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:

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 a
mainClSF = timeInfoOf sinceInit >>> arr (* 50) >>> arr gears

main :: IO ()
main = flowGloss (InWindow "rhine-gloss-gears" (400, 400) (10, 10)) (greyN 0.3) 30
     $ buildGlossRhine Just 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.

Changes

Revision history for rhine-gloss

0.4.0.0 – 2017.12.04

  • Version bump

0.3.0.0 – 2017-11-30

  • Added simple example.

0.2.0.0 – 2017-11-29

  • First version. Version numbers follow rhine.