-- | Primitives for use in Hylide module Hylogen.WithHylide.Core where import Data.Monoid import Hylogen import Hylogen.Expr -- Writes GLSL, without sharing -- toGLSL' :: Vec4 -> String -- toGLSL' v = unlines [ "void main() {" -- , " gl_FragColor = " <> show v <> ";" -- , "}" -- ] -- | Pixel coordinates -- -- (0, 0) is the lower left corner -- -- (1, 1) is the upper right corner uv :: Vec2 uv = uniform "uv()" -- | Pixel coordinates -- -- (0, 0) is the center of the screen -- -- (1, 1) is the upper right corner uvN :: Vec2 uvN = uniform "uvN" -- | Time in milliseconds since start of Hylide instance time :: Vec1 time = uniform "time" -- | Beat phase from 0 to 1 beat :: Vec1 beat = uniform "beat" -- | Resolution of the screen resolution :: Vec2 resolution = uniform "resolution" -- | Mouse position mouse :: Vec2 mouse = uniform "mouse" -- | Intensity of audio input, split into 4 bands -- -- (low, low-mid, mid, high) audio :: Vec4 audio = uniform "audio" -- | The last rendered frame, as a texture backBuffer :: Texture backBuffer = uniform "backBuffer" channel1 :: Texture channel1 = uniform "channel1" channel2 :: Texture channel2 = uniform "channel2" osc0 :: Vec1 osc0 = uniform "osc0" osc1 :: Vec1 osc1 = uniform "osc1" osc2 :: Vec1 osc2 = uniform "osc2" osc3 :: Vec1 osc3 = uniform "osc3" osc4 :: Vec1 osc4 = uniform "osc4" osc5 :: Vec1 osc5 = uniform "osc5" osc6 :: Vec1 osc6 = uniform "osc6" osc7 :: Vec1 osc7 = uniform "osc7" osc8 :: Vec1 osc8 = uniform "osc8" osc9 :: Vec1 osc9 = uniform "osc9" osc10 :: Vec1 osc10 = uniform "osc10" osc11 :: Vec1 osc11 = uniform "osc11" osc12 :: Vec1 osc12 = uniform "osc12" osc13 :: Vec1 osc13 = uniform "osc13" osc14 :: Vec1 osc14 = uniform "osc14" osc15 :: Vec1 osc15 = uniform "osc15"