summaryrefslogtreecommitdiff
path: root/MeshSketch.hs
diff options
context:
space:
mode:
Diffstat (limited to 'MeshSketch.hs')
-rw-r--r--MeshSketch.hs22
1 files changed, 0 insertions, 22 deletions
diff --git a/MeshSketch.hs b/MeshSketch.hs
index 87d9763..d9290fd 100644
--- a/MeshSketch.hs
+++ b/MeshSketch.hs
@@ -141,28 +141,6 @@ realToFracVector :: ( Real a
141 ) => Vector a -> Vector b 141 ) => Vector a -> Vector b
142realToFracVector v = Math.fromList $ map realToFrac $ Math.toList v 142realToFracVector v = Math.fromList $ map realToFrac $ Math.toList v
143 143
144data MaskableObject = MaskableObject
145 { maskableObject :: LC.Object
146 , groupMasks :: Map Text Mask
147 }
148
149objSpan :: LC.Object -> Mask
150objSpan obj = case Map.elems (objAttributes obj) of
151 Stream { streamLength = x }:_ -> Mask [(0,fromIntegral x)]
152 _ -> Mask [(0,1)]
153
154addOBJToObjectArray :: GLStorage -> String -> [(GPUMesh, Maybe Text)] -> Map Text (ObjMaterial,TextureData)
155 -> IO [MaskableObject]
156addOBJToObjectArray storage slotName objMesh mtlLib = forM objMesh $ \(mesh,mat) -> do
157 obj <- LC.addMeshToObjectArray storage slotName ["diffuseTexture","diffuseColor"] mesh
158 -- diffuseTexture and diffuseColor values can change on each model
159 case mat >>= flip Map.lookup mtlLib of
160 Nothing -> return ()
161 Just (ObjMaterial{..},t) -> LC.updateObjectUniforms obj $ do
162 "diffuseTexture" @= return t -- set model's diffuse texture
163 "diffuseColor" @= let (r,g,b) = mtl_Kd in return (V4 r g b mtl_Tr)
164 return $ MaskableObject obj $ maybe Map.empty (`Map.singleton` objSpan obj) mat
165
166mkFullscreenToggle :: IsWindow a => a -> IO (IO ()) 144mkFullscreenToggle :: IsWindow a => a -> IO (IO ())
167mkFullscreenToggle w = do 145mkFullscreenToggle w = do
168 full <- newIORef False 146 full <- newIORef False