Stability | experimental |
---|---|
Maintainer | conal@conal.net |
Gtk-based GUIs in the TV (tangible value) framework
This variation eliminates mdo by having MkI' produce a consumer of refresh actions rather than taking a refresh action as argument.
- type In = Input MkI
- type Out = Output MkI MkO
- type GTV = TV MkI MkO
- gtv :: Out a -> a -> GTV a
- runGTV :: GTV a -> IO ()
- runOut :: String -> Out a -> a -> Action
- runOutIO :: String -> Out a -> IO a -> Action
- type R = Float
- sliderRIn :: (R, R) -> R -> In R
- sliderIIn :: (Int, Int) -> Int -> In Int
- clockIn :: In R
- rateSliderIn :: (R, R) -> R -> In R
- integralIn :: (VectorSpace v, Eq v, Scalar v ~ Float) => In v -> In v
- fileNameIn :: FilePath -> In FilePath
- renderOut :: Out Action
- emptyTexture :: TextureObject
- textureIsEmpty :: TextureObject -> Bool
- textureIn :: In TextureObject
- module Interface.TV
TV type specializations
runOutIO :: String -> Out a -> IO a -> ActionSource
Run a visualization on a constructed (IO
-extracted) value. The
action is executed just once, after the visualization is all set up,
which allows for things like OpenGL shader compilation.
UI primitives
rateSliderIn :: (R, R) -> R -> In RSource
Rate slider. Updates result (integral) 60 times per second.
Specialization of rateSliderDtIn
.
integralIn :: (VectorSpace v, Eq v, Scalar v ~ Float) => In v -> In vSource
Integral of an input. Updates result (integral) 60 times per second.
fileNameIn :: FilePath -> In FilePathSource
Render output, given a rendering action. Handles all set-up. Intended as an implementation substrate for functional graphics.
emptyTexture :: TextureObjectSource
An empty texture. Test with textureIsEmpty
textureIsEmpty :: TextureObject -> BoolSource
Is a texture empty?
module Interface.TV