summaryrefslogtreecommitdiff
path: root/src/LambdaCube/GL/Mesh.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/LambdaCube/GL/Mesh.hs')
-rw-r--r--src/LambdaCube/GL/Mesh.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/LambdaCube/GL/Mesh.hs b/src/LambdaCube/GL/Mesh.hs
index 0c56f26..5c16e42 100644
--- a/src/LambdaCube/GL/Mesh.hs
+++ b/src/LambdaCube/GL/Mesh.hs
@@ -50,7 +50,7 @@ data GPUMesh
50addMeshToObjectArray :: GLStorage -> String -> [String] -> GPUMesh -> IO Object 50addMeshToObjectArray :: GLStorage -> String -> [String] -> GPUMesh -> IO Object
51addMeshToObjectArray input slotName objUniNames (GPUMesh _ (GPUData prim streams indices _)) = do 51addMeshToObjectArray input slotName objUniNames (GPUMesh _ (GPUData prim streams indices _)) = do
52 -- select proper attributes 52 -- select proper attributes
53 let Just (ObjectArraySchema slotPrim slotStreams) = Map.lookup slotName $! objectArrays $! schema input 53 let (ObjectArraySchema slotPrim slotStreams) = fromMaybe (error $ "missing object array: " ++ slotName) $ Map.lookup slotName $! objectArrays $! schema input
54 filterStream n _ = Map.member n slotStreams 54 filterStream n _ = Map.member n slotStreams
55 addObject input slotName prim indices (Map.filterWithKey filterStream streams) objUniNames 55 addObject input slotName prim indices (Map.filterWithKey filterStream streams) objUniNames
56 56
@@ -82,7 +82,7 @@ updateMesh :: GPUMesh -> [(String,MeshAttribute)] -> Maybe MeshPrimitive -> IO (
82updateMesh (GPUMesh (Mesh dMA dMP) (GPUData _ dS dI _)) al mp = do 82updateMesh (GPUMesh (Mesh dMA dMP) (GPUData _ dS dI _)) al mp = do
83 -- check type match 83 -- check type match
84 let arrayChk (Array t1 s1 _) (Array t2 s2 _) = t1 == t2 && s1 == s2 84 let arrayChk (Array t1 s1 _) (Array t2 s2 _) = t1 == t2 && s1 == s2
85 ok = and [Map.member n dMA && arrayChk (meshAttrToArray a1) (meshAttrToArray a2) | (n,a1) <- al, let Just a2 = Map.lookup n dMA] 85 ok = and [Map.member n dMA && arrayChk (meshAttrToArray a1) (meshAttrToArray a2) | (n,a1) <- al, let a2 = fromMaybe (error $ "missing mesh attribute: " ++ n) $ Map.lookup n dMA]
86 if not ok then putStrLn "updateMesh: attribute mismatch!" 86 if not ok then putStrLn "updateMesh: attribute mismatch!"
87 else do 87 else do
88 forM_ al $ \(n,a) -> do 88 forM_ al $ \(n,a) -> do