diff --git a/ghcidOutput b/ghcidOutput index 091ac7c87..ebf654864 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1 @@ -All good (607 modules, at 21:11:41) +All good (607 modules, at 21:29:51) diff --git a/src/Picture/Arc.hs b/src/Picture/Arc.hs index da52ebe37..408611b99 100644 --- a/src/Picture/Arc.hs +++ b/src/Picture/Arc.hs @@ -49,4 +49,4 @@ arcPart startA sw sc endA ew ec r centercol = (V2 xa ya) = rotateV startA (V2 r 0) (V2 xb yb) = rotateV (0.5 * (startA + endA)) (V2 (r * sqrt 2) 0) (V2 xc yc) = rotateV endA (V2 r 0) - f (pos, col, V3 a b c) = Verx pos col [a, b, c] BottomLayer arcNum + f (pos, col, V3 a b c) = Verx pos col [a, b, c] BottomLayer ArcShad diff --git a/src/Picture/Base.hs b/src/Picture/Base.hs index 56745cf31..a833688c6 100644 --- a/src/Picture/Base.hs +++ b/src/Picture/Base.hs @@ -73,13 +73,13 @@ polygon :: [Point2] -> Picture {-# INLINE polygon #-} polygon = map f . polyToTris where - f (V2 x y) = Verx (V3 x y 0) black [] BottomLayer polyNum + f (V2 x y) = Verx (V3 x y 0) black [] BottomLayer PolyShad polygonCol :: [(Point2, RGBA)] -> Picture {-# INLINE polygonCol #-} polygonCol = polyToTris . map f where - f (V2 x y, col) = Verx (V3 x y 0) col [] BottomLayer polyNum + f (V2 x y, col) = Verx (V3 x y 0) col [] BottomLayer PolyShad poly3 :: [Point3] -> Picture {-# INLINE poly3 #-} @@ -89,7 +89,7 @@ poly3Col :: [(Point3, RGBA)] -> Picture {-# INLINE poly3Col #-} poly3Col = map f . polyToTris where - f (pos, col) = Verx pos col [] BottomLayer polyNum + f (pos, col) = Verx pos col [] BottomLayer PolyShad ---- given a one and two zeros of a linear function over x and y, ---- determine the function @@ -175,7 +175,7 @@ circleSolidCol colC colE r = , (V3 r (- r) 0, black) ] where - f (pos, col) = Verx pos col [] BottomLayer ellNum + f (pos, col) = Verx pos col [] BottomLayer EllShad circle :: Float -> Picture {-# INLINE circle #-} @@ -221,7 +221,7 @@ drawText :: Float -> String -> [Verx] {-# INLINE drawText #-} drawText gap = map f . stringToList gap where - f (pos, col, V3 a b c) = Verx pos col [a, b, c, 1] BottomLayer textNum + f (pos, col, V3 a b c) = Verx pos col [a, b, c, 1] BottomLayer TextShad line :: [Point2] -> Picture {-# INLINE line #-} diff --git a/src/Picture/Data.hs b/src/Picture/Data.hs index 223c2157a..a2a71430e 100644 --- a/src/Picture/Data.hs +++ b/src/Picture/Data.hs @@ -28,9 +28,6 @@ data Layer | FixedCoordLayer deriving (Eq, Ord, Enum, Bounded, Show, Read) --Generic, Flat) -layerNum :: Layer -> Int -layerNum = fromEnum - numLayers :: Int numLayers = length [minBound :: Layer .. maxBound] @@ -44,53 +41,31 @@ data ShadNum numShads :: Int numShads = length [minBound :: ShadNum .. maxBound] -_unShadNum :: ShadNum -> Int -_unShadNum = fromEnum - -toShadNum :: Int -> ShadNum -toShadNum = toEnum - -polyNum, textNum, arcNum, ellNum :: ShadNum -{-# INLINE polyNum #-} -{-# INLINE textNum #-} -{-# INLINE arcNum #-} -{-# INLINE ellNum #-} -polyNum = toShadNum 0 -textNum = toShadNum 1 -arcNum = toShadNum 2 -ellNum = toShadNum 3 - type Picture = [Verx] -flatV2 :: V2 a -> [a] -flatV2 (V2 x y) = [x, y] - -flatV3 :: V3 a -> [a] -flatV3 (V3 x y z) = [x, y, z] - -flatV4 :: V4 a -> [a] -flatV4 (V4 x y z w) = [x, y, z, w] - -{-# INLINE flatV2 #-} - -{-# INLINE flatV3 #-} - -{-# INLINE flatV4 #-} +--flatV2 :: V2 a -> [a] +--{-# INLINE flatV2 #-} +--flatV2 (V2 x y) = [x, y] +-- +--flatV3 :: V3 a -> [a] +--{-# INLINE flatV3 #-} +--flatV3 (V3 x y z) = [x, y, z] +-- +--flatV4 :: V4 a -> [a] +--{-# INLINE flatV4 #-} +--flatV4 (V4 x y z w) = [x, y, z, w] tflat2 :: (a, a) -> [a] +{-# INLINE tflat2 #-} tflat2 (x, y) = [x, y] tflat3 :: (a, a, a) -> [a] +{-# INLINE tflat3 #-} tflat3 (x, y, z) = [x, y, z] tflat4 :: (a, a, a, a) -> [a] -tflat4 (x, y, z, w) = [x, y, z, w] - -{-# INLINE tflat2 #-} - -{-# INLINE tflat3 #-} - {-# INLINE tflat4 #-} +tflat4 (x, y, z, w) = [x, y, z, w] makeLenses ''Verx deriveJSON defaultOptions ''Layer diff --git a/src/Picture/Test.hs b/src/Picture/Test.hs index a8ced258c..a90da3a37 100644 --- a/src/Picture/Test.hs +++ b/src/Picture/Test.hs @@ -46,4 +46,4 @@ arcTest' startA sw sc endA ew ec r centercol = (V2 xa ya) = rotateV startA (V2 r 0) (V2 xb yb) = rotateV (0.5 * (startA + endA)) (V2 (r * sqrt 2) 0) (V2 xc yc) = rotateV endA (V2 r 0) - f (pos, col, V3 a b c) = Verx pos col [a, b, c] BottomLayer arcNum + f (pos, col, V3 a b c) = Verx pos col [a, b, c] BottomLayer ArcShad diff --git a/src/Picture/Text.hs b/src/Picture/Text.hs index 266de3868..dc9f54e2d 100644 --- a/src/Picture/Text.hs +++ b/src/Picture/Text.hs @@ -6,7 +6,7 @@ textGrad :: Color -> Color -> String -> Picture {-# INLINE textGrad #-} textGrad topc botc = map f . stringToListGrad topc botc where - f (pos, col, V2 a b) = Verx pos col [a, b] BottomLayer textNum + f (pos, col, V2 a b) = Verx pos col [a, b] BottomLayer TextShad -- no premature optimisation, consider changing to use texture arrays stringToListGrad :: Color -> Color -> String -> [(Point3, Point4, Point2)] diff --git a/src/Polyhedra.hs b/src/Polyhedra.hs index 8a8ec4f0e..52d954fd4 100644 --- a/src/Polyhedra.hs +++ b/src/Polyhedra.hs @@ -124,7 +124,7 @@ polyToPics = map helpPoly3D . _pyFaces helpPoly3D :: [(Point3, Point4)] -> Picture helpPoly3D = picFormat . map f . polyToTris where - f (pos,col) = Verx pos col [] BottomLayer polyNum + f (pos,col) = Verx pos col [] BottomLayer PolyShad polysToPic :: [Polyhedra] -> Picture polysToPic = fold . concatMap polyToPics diff --git a/src/Render.hs b/src/Render.hs index d26380d75..292d804e5 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -239,7 +239,7 @@ renderLayer layer shads counts = do let layerCounts = UMV.slice (ln * numLayers) 6 counts MV.imapM_ (drawShaderLay ln layerCounts) shads where - ln = layerNum layer + ln = fromEnum layer bindFBO :: FBO -> IO () bindFBO fb = diff --git a/src/Shader/Poke.hs b/src/Shader/Poke.hs index 7c8870883..f99b80937 100644 --- a/src/Shader/Poke.hs +++ b/src/Shader/Poke.hs @@ -45,7 +45,7 @@ pokeVerx vbos offsets Verx{_vxPos = thePos, _vxCol = theCol, _vxExt = ext, _vxSh pokeArrayOff thePtr 7 ext UMV.unsafeModify offsets (+ 1) sn where - sn = _unShadNum shadnum + sn = fromEnum shadnum pokeWallsWindows :: Ptr Float -> @@ -497,10 +497,10 @@ pokeLayVerx vbos counts vx = do pokeArrayOff thePtr 7 (_vxExt vx) UMV.unsafeModify counts (+ 1) vecPos where - sn = _unShadNum shadnum + sn = fromEnum shadnum shadnum = _vxShadNum vx vecPos = theLayer * numLayers + sn - theLayer = layerNum $ _vxLayer vx + theLayer = fromEnum $ _vxLayer vx thePos = _vxPos vx theCol = _vxCol vx layOff = theLayer * numSubElements