packages feed

hylogen-0.1.1.2: src/Hylogen/WithHylide.hs

module Hylogen.WithHylide ( module Hylogen.WithHylide
                          , module Hylogen
                          ) where

import           Data.Monoid
import           Hylogen
import           Hylogen.Expr
import           Hylogen.Program (toProgram)

-- TODO: flip these definitions! Normalized means ??
uv :: Vec2
uv = uniform "uv()"

uvN :: Vec2
uvN = uniform "uvN"

time :: Vec1
time = uniform "time"


resolution :: Vec2
resolution = uniform "resolution"

mouse :: Vec2
mouse = uniform "mouse"


audio :: Vec4
audio = uniform "audio"

backBuffer :: Texture
backBuffer = uniform "backBuffer"

channel1 :: Texture
channel1 = uniform "channel1"


-- | No sharing
toGLSL' :: Vec4 -> String
toGLSL' v = unlines [ "void main() {"
                    , "    gl_FragColor = " <> show v <> ";"
                    , "}"
                    ]


-- | sharing via Data.reify
toGLSL :: Vec4 -> String
toGLSL = show . toProgram . toMono