content: -- | 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"
  