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
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.
Rate slider. Updates result (integral) 60 times per second.
Integral of an input. Updates result (integral) 60 times per second.
Render output, given a rendering action. Handles all set-up. Intended as an implementation substrate for functional graphics.