ansparency :: Transparency -> IO ()
setTransparency trans =
    case trans of TRNone -> GL.blend GL.$= GL.Disabled
                  TRBlend weight -> do
                      GL.blend      GL.$= GL.Enabled
                      GL.blendFunc  GL.$= (GL.ConstantAlpha, GL.OneMinusConstantAlpha)
                      GL.blendColor GL.$= GL.Color4 0 0 0 (realToFrac weight :: GL.GLfloat)
                  TRSrcAlpha -> do
                      GL.blend     GL.$= GL.Enabled
                      GL.blendFunc GL.$= (GL.SrcAlpha, GL.OneMinusSrcAlpha)

-- Disable vertex attribute arrays and shaders
disa
setTransparency :: Transparency -> IO ()
setTransparency trans =
    case trans of TRNone -> GL.blend GL.$= GL.Disabled
                  TRBlend weight -> do
                      GL.blend      GL.$= GL.Enabled
                      GL.blendFunc  GL.$= (GL.ConstantAlpha, GL.OneMinusConstantAlpha)
                      GL.blendColor GL.$= GL.Color4 0 0 0 (realToFrac weight :: GL.GLfloat)
                  TRSrcAlpha -> do
                      GL.blend     GL.$= GL.Enabled
                      GL.blendFunc GL.$= (GL.SrcAlpha, GL.OneMinusSrcAlpha)

-- Disable vertex attribute arrays and shaders
setTransparency trans =
    case trans of TRNone -> GL.blend GL.$= GL.Disabled
                  TRBlend weight -> do
                      GL.blend      GL.$= GL.Enabled
                      GL.blendFunc  GL.$= (GL.ConstantAlpha, GL.OneMinusConstantAlpha)
                      GL.blendColor GL.$= GL.Color4 0 0 0 (realToFrac weight :: GL.GLfloat)
                  TRSrcAlpha -> do
                      GL.blend     GL.$= GL.Enabled
                      GL.blendFunc GL.$= (GL.SrcAlpha, GL.OneMinusSrcAlpha)

-- Disable vertex attribute arrays and shaders