lambdacube-gl 0.5.1.2 → 0.5.2.0
raw patch · 4 files changed
+11/−10 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ LambdaCube.GL: sortSlotObjects :: GLStorage -> IO ()
Files
- lambdacube-gl.cabal +1/−1
- src/LambdaCube/GL.hs +1/−0
- src/LambdaCube/GL/Backend.hs +7/−5
- src/LambdaCube/GL/Input.hs +2/−4
lambdacube-gl.cabal view
@@ -1,5 +1,5 @@ name: lambdacube-gl-version: 0.5.1.2+version: 0.5.2.0 synopsis: OpenGL 3.3 Core Profile backend for LambdaCube 3D description: OpenGL 3.3 Core Profile backend for LambdaCube 3D homepage: http://lambdacube3d.com
src/LambdaCube/GL.hs view
@@ -50,6 +50,7 @@ setObjectOrder, objectUniformSetter, setScreenSize,+ sortSlotObjects, uniformBool, uniformV2B,
src/LambdaCube/GL/Backend.hs view
@@ -750,14 +750,16 @@ case input of Nothing -> putStrLn "Warning: No pipeline input!" >> return () Just ic -> do- GLSlot _ objs _ <- readIORef (slotVector (icInput ic) ! (icSlotMapPipelineToInput ic ! slotIdx))- --putStrLn $ "Rendering " ++ show (V.length objs) ++ " objects"- V.forM_ objs $ \(_,obj) -> do- enabled <- readIORef $ objEnabled obj- when enabled $ do+ let draw obj = do+ enabled <- readIORef $ objEnabled obj+ when enabled $ do cmd <- readIORef $ objCommands obj --putStrLn "Render object" renderSlot ((cmd ! icId ic) ! progIdx)+ --putStrLn $ "Rendering " ++ show (V.length objs) ++ " objects"+ readIORef (slotVector (icInput ic) ! (icSlotMapPipelineToInput ic ! slotIdx)) >>= \case+ GLSlot _ objs Ordered -> forM_ objs $ draw . snd+ GLSlot objMap _ _ -> forM_ objMap draw {- GLSetSampler GLSaveImage
src/LambdaCube/GL/Input.hs view
@@ -133,15 +133,14 @@ Just ic <- readIORef $ glInput p case icSlotMapInputToPipeline ic ! slotIdx of Nothing -> do- putStrLn $ " ** slot is not used!"+ --putStrLn $ " ** slot is not used!" return V.empty -- this slot is not used in that pipeline Just pSlotIdx -> do- putStrLn "slot is used!" + --putStrLn "slot is used!" --where let emptyV = V.replicate (V.length $ glPrograms p) [] return $ emptyV // [(prgIdx,createObjectCommands (glTexUnitMapping p) topUnis obj (glPrograms p ! prgIdx))| prgIdx <- glSlotPrograms p ! pSlotIdx] writeIORef cmdsRef cmds- sortSlotObjects input return obj removeObject :: GLStorage -> Object -> IO ()@@ -154,7 +153,6 @@ setObjectOrder p obj i = do writeIORef (objOrder obj) i modifyIORef (slotVector p ! objSlot obj) $ \(GLSlot objs sorted _) -> GLSlot objs sorted Reorder- sortSlotObjects p objectUniformSetter :: Object -> Map GLUniformName InputSetter objectUniformSetter = objUniSetter