Graphics.UI.GLUT.Begin

GLUT-2.5.1.1: A binding for the OpenGL Utility Toolkit

Copyright | (c) Sven Panne 2002-2013
License | BSD3
Maintainer | Sven Panne <svenpanne@gmail.com>
Stability | stable
Portability | portable
Safe Haskell | None
Language | Haskell98

Graphics.UI.GLUT.Begin

Contents

- Handling events
- Controlling the behaviour when windows are closed

Description

After a GLUT program has done initial setup such as creating windows and menus, GLUT programs enter the GLUT event processing loop by calling `mainLoop` or handle events iteratively with `mainLoopEvent`.

Synopsis

- mainLoop :: IO ()
- mainLoopEvent :: IO ()
- leaveMainLoop :: IO ()
- data ActionOnWindowClose
  - = Exit
  - | MainLoopReturns
  - | ContinueExecution
  - | ContinueExectuion
- actionOnWindowClose :: StateVar ActionOnWindowClose

# Handling events

mainLoop :: IO ()

Enter the GLUT event processing loop; it will call as necessary any callbacks that have been registered. This routine should be called at most once in a GLUT program.

mainLoopEvent :: IO ()

(freeglut only) Process one iteration's worth of events in its event loop. This allows the application to control its own event loop and still use the GLUT package.

leaveMainLoop :: IO ()

(freeglut only) Stop the event loop. If `actionOnWindowClose` contains `Exit`, the application will exit; otherwise control will return to the function which called `mainLoop`.

If the application has two nested calls to `mainLoop` and calls `leaveMainLoop`, the behaviour is undefined. It may leave only the inner nested loop or it may leave both loops. If the reader has a strong preference for one behaviour over the other he should contact the freeglut Programming Consortium and ask for the code to be fixed.

# Controlling the behaviour when windows are closed

data ActionOnWindowClose

The behaviour when the user closes a window.

Constructors

Exit | Exit the whole program when any window is closed or `leaveMainLoop` is called (default).
MainLoopReturns | Return from mainLoop when any window is closed.
ContinueExecution | Return from mainLoop after the last window is closed.
ContinueExectuion | Deprecated: Use `ContinueExecution` instead.

Instances

Eq ActionOnWindowClose |
Ord ActionOnWindowClose |
Show ActionOnWindowClose |

actionOnWindowClose :: StateVar ActionOnWindowClose

(freeglut only) Controls the behaviour when the user closes a window.