packages feed

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 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