diff options
Diffstat (limited to 'src/LambdaCube/GL/Mesh.hs')
-rw-r--r-- | src/LambdaCube/GL/Mesh.hs | 4 |
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 | |||
50 | addMeshToObjectArray :: GLStorage -> String -> [String] -> GPUMesh -> IO Object | 50 | addMeshToObjectArray :: GLStorage -> String -> [String] -> GPUMesh -> IO Object |
51 | addMeshToObjectArray input slotName objUniNames (GPUMesh _ (GPUData prim streams indices _)) = do | 51 | addMeshToObjectArray 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 ( | |||
82 | updateMesh (GPUMesh (Mesh dMA dMP) (GPUData _ dS dI _)) al mp = do | 82 | updateMesh (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 |