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.