vinyl-gl-0.2: tests/BasicTest.hs
{-# LANGUAGE DataKinds, KindSignatures, TypeOperators #-}
import Data.Proxy
import Data.Vinyl
import Data.Vinyl.Universe
import Data.Word
import Foreign.Ptr (nullPtr, plusPtr)
import Graphics.Rendering.OpenGL (DataType(..), GLfloat,
VertexArrayDescriptor(..))
import Graphics.VinylGL
import Linear (V1(..), V3(..))
import Test.Framework (defaultMain)
import Test.Framework.Providers.HUnit (hUnitTestToTests)
import Test.HUnit (Test(..), (~=?))
type Pos = "vpos" ::: V3 GLfloat
type Tag = "tagByte" ::: V1 Word8
tag :: SField Tag
tag = SField
type Vertex = PlainFieldRec [Pos, Tag]
--testVad :: VertexArrayDescriptor Word8
testVad :: Test
testVad = TestLabel "Sample VAD Creation" $
vad ~=? fieldToVAD tag (Proxy::Proxy Vertex)
where vad = VertexArrayDescriptor 1 UnsignedByte 13 (nullPtr `plusPtr` 12)
main :: IO ()
main = defaultMain . hUnitTestToTests $ testVad