README

March 23, 2012 ยท View on GitHub

This project adds a new backend to gloss that can be used to embed gloss images/animations/simulations in GTK+ applications. It uses the gtkglext package available in Hackage.

Current status is: not finished, still under development. Do not use (I'm not joking here) in production just yet.

How this works: in the arguments to 'display', use the InWidget constructor, and pass a Gtk container as first argument. The canvas will be added to the container using Graphics.UI.Gtk.containerAdd.

QUICK STATUS OVERVIEW

| Feature | Status | |----------------------+------------------------| | Animations | Working | | Simulations | Working | | Games | Working | | Mouse interaction | Working | | Fonts | Working | | Keyboard interaction | Not tested, might work | | Background colours | Not working |

The contents of the original README file follows.

-- 8 Coats of GLOSS -----------------------------------------------------------

Gloss hides the pain of drawing simple vector graphics behind a nice data type and a few display functions.

EXAMPLE Getting something on the screen is as easy as:

  import Graphics.Gloss
  main = display (InWindow "Nice Window" (200, 200) (10, 10)) white (Circle 80)

USAGE Once the window is open you can use the following: * Quit - esc-key. * Move Viewport - left-click drag, arrow keys. * Rotate Viewport - right-click drag, control-left-click drag, or home/end-keys. * Zoom Viewport - mouse wheel, or page up/down-keys.

OTHER THINGS Animations and simulations can be constructed similarly using the 'animate' and 'simulate' functions. Games with user input can be constructed with the 'play' function.

See the gloss-examples package for more.

Release Notes:

For 1.7.0:

  • Tweaked circle level-of-detail reduction code.
  • Increased frame rate cap to 100hz. Thanks to Doug Burke
  • Primitives for drawing arcs and sectors. Thanks to Thomas DuBuisson
  • IO versions of animate, simplate and play.

For 1.6.0: Thanks to Anthony Cowley

  • Full screen mode display mode.

For 1.5.0:

  • O(1) Conversion of ForeignPtrs to bitmaps.
  • An extra flag on the Bitmap constructor allows bitmaps to be cached in texture memory between frames.

For 1.4.0:

  • Added texture caching. Thanks to Christiaan Baaij:
  • Refactoring of Gloss internals to support multiple window manager backends.
  • Support for using GLFW as the window library instead of GLUT. GLUT is still the default, but to use GLFW install gloss with: cabal install gloss --flags="GLFW -GLUT"

For 1.3.0:

  • Various wibbles for GHC 7.1
    Thanks to Ben Lambert-Smith:
  • New support for displaying bitmap files.

For 1.2.0:

  • Cleaned up module hierarchy.
  • Added line-line intersection utils.
  • Enabled -Wall and fixed all warnings.
  • Various wibbles for GHC 7.0 Thanks to Thomas DuBuisson:
  • Fixed a bug causing motion events to give the wrong position. Thanks to Stephan Maka:
  • Fixed a space leak in simulate mode when the window was hidden.

For 1.1.0:

  • Added game mode.
  • Added QuadTree and Extent structures.
  • Added simple ray casting.