gloss-raster-1.13.1.2: Parallel rendering of raster images.

Safe HaskellNone
LanguageHaskell2010

Graphics.Gloss.Raster.Field

Contents

Description

Rendering of continuous 2D functions as raster fields.

Gloss programs should be compiled with -threaded, otherwise the GHC runtime will limit the frame-rate to around 20Hz.

The performance of programs using this interface is sensitive to how much boxing and unboxing the GHC simplifier manages to eliminate. For the best result add INLINE pragmas to all of your numeric functions and use the following compile options.

-threaded -Odph -fno-liberate-case -funfolding-use-threshold1000 -funfolding-keeness-factor1000 -fllvm -optlo-O3

See the examples the raster directory of the gloss-examples package for more details.

Synopsis

Color

rgb :: Float -> Float -> Float -> Color Source #

Construct a color from red, green, blue components.

Each component is clamped to the range [0..1]

rgbI :: Int -> Int -> Int -> Color Source #

Construct a color from red, green, blue components.

Each component is clamped to the range [0..255]

rgb8w :: Word8 -> Word8 -> Word8 -> Color Source #

Construct a color from red, green, blue components.

rgb' :: Float -> Float -> Float -> Color Source #

Like rgb, but take pre-clamped components for speed.

If you're building a new color for every pixel then use this version, however if your components are out of range then the picture you get will be implementation dependent.

rgbI' :: Int -> Int -> Int -> Color Source #

Like rgbI, but take pre-clamped components for speed.

If you're building a new color for every pixel then use this version, however if your components are out of range then the picture you get will be implementation dependent.

Display functions

data Display #

Describes how Gloss should display its output.

Constructors

InWindow String (Int, Int) (Int, Int)

Display in a window with the given name, size and position.

FullScreen

Display full screen.

Instances
Eq Display 
Instance details

Defined in Graphics.Gloss.Data.Display

Methods

(==) :: Display -> Display -> Bool #

(/=) :: Display -> Display -> Bool #

Read Display 
Instance details

Defined in Graphics.Gloss.Data.Display

Show Display 
Instance details

Defined in Graphics.Gloss.Data.Display

type Point = (Float, Float) #

A point on the x-y plane.

animateField Source #

Arguments

:: Display

Display mode.

-> (Int, Int)

Number of pixels to draw per point.

-> (Float -> Point -> Color)

Function to compute the color at a particular point.

It is passed the time in seconds since the program started, and a point between (-1, -1) and (+1, +1).

-> IO () 

Animate a continuous 2D function.

animateFieldIO Source #

Arguments

:: Display

Display mode.

-> (Int, Int)

Number of pixels to draw per point.

-> (Float -> IO (Point -> Color))

Function to compute the color at a particular point.

It is passed the time in seconds since the program started, and a point between (-1, -1) and (+1, +1).

-> IO () 

Animate a continuous 2D function, via the IO monad.

playField Source #

Arguments

:: Display

Display mode.

-> (Int, Int)

Number of pixels to draw per point.

-> Int

Number of simulation steps to take for each second of real time

-> world

The initial world.

-> (world -> Point -> Color)

Function to compute the color of the world at the given point.

-> (Event -> world -> world)

Function to handle input events.

-> (Float -> world -> world)

Function to step the world one iteration. It is passed the time in seconds since the program started.

-> IO () 

Play a game with a continous 2D function.

playFieldIO Source #

Arguments

:: Display

Display mode.

-> (Int, Int)

Number of pixels to draw per point.

-> Int

Number of simulation steps to take for each second of real time

-> world

The initial world.

-> (world -> IO (Point -> Color))

Function to compute the color of the world at the given point.

-> (Event -> world -> IO world)

Function to handle input events.

-> (Float -> world -> IO world)

Function to step the world one iteration. It is passed the time in seconds since the program started.

-> IO () 

Play a game with a continous 2D function, via the IO monad.

Frame creation

makePicture :: Int -> Int -> Int -> Int -> (Point -> Color) -> Picture Source #