{-# 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