Commit with working graphics but slow, will attempt to change text

This commit is contained in:
2021-02-15 12:50:38 +01:00
parent 8447844bcd
commit 9747b5b876
4 changed files with 99 additions and 78 deletions
+30 -9
View File
@@ -1,9 +1,10 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE Strict #-}
--{-# LANGUAGE Strict #-}
module Picture.Data
where
import Data.Monoid
import qualified Data.DList as DL
import qualified Data.Vector as V
import Geometry.Data
import Control.Lens
@@ -11,21 +12,41 @@ import Control.Lens
type RGBA = (Float,Float,Float,Float)
type Color = (Float,Float,Float,Float)
--type VerticesContainer a = DL.DList a
--toVC = DL.fromList
--fromVC = DL.toList
type VerticesContainer a = [a]
toVC = id
fromVC = id
mapVC :: (a -> b) -> VerticesContainer a -> VerticesContainer b
mapVC = fmap
data Shape = Shape
{ _shPos :: VerticesContainer Point3
, _shCol :: VerticesContainer RGBA
}
combineShapes :: Shape -> Shape -> Shape
combineShapes sa sb = Shape
{ _shPos = _shPos sa <> _shPos sb
, _shCol = _shCol sa <> _shCol sb
}
data Picture = Scene
{ _scPosTri :: DL.DList Point3
, _scColTri :: DL.DList RGBA
, _scPosChar :: DL.DList Point3
, _scColChar :: DL.DList RGBA
, _scTexChar :: DL.DList Point2
{ _scPosTri :: VerticesContainer Point3
, _scColTri :: VerticesContainer RGBA
, _scPosChar :: VerticesContainer Point3
, _scColChar :: VerticesContainer RGBA
, _scTexChar :: VerticesContainer Point2
}
blank :: Picture
{-# INLINE blank #-}
blank = Scene DL.empty DL.empty DL.empty DL.empty DL.empty
blank = Scene mempty mempty mempty mempty mempty
combineScenes :: Picture -> Picture -> Picture
{-# SCC combineScenes #-}
--{-# INLINE combineScenes #-}
{-# INLINE combineScenes #-}
combineScenes sa sb = Scene
{ _scPosTri = _scPosTri sa <> _scPosTri sb
, _scColTri = _scColTri sa <> _scColTri sb