-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Simple gloss renderer for apecs
--   
--   Simple 2D gloss-based rendering for apecs. Intended for prototyping.
@package apecs-gloss
@version 0.2.0

module Apecs.Gloss
data Camera
Camera :: V2 Float -> Float -> Camera
[camOffset] :: Camera -> V2 Float
[camScale] :: Camera -> Float

-- | Apply a camera transformation to a picture
cameraTransform :: Camera -> Picture -> Picture
windowToWorld :: Camera -> (Float, Float) -> V2 Float
play :: Has w IO Camera => Display -> Color -> Int -> System w Picture -> (Event -> System w ()) -> (Float -> System w ()) -> System w ()

-- | Renders a picture given a component rendering function.
foldDraw :: (Get w IO c, Members w IO c) => (c -> Picture) -> System w Picture

-- | Monadically renders a picture given a component rendering function.
foldDrawM :: (Get w IO c, Members w IO c) => (c -> System w Picture) -> System w Picture
instance GHC.Read.Read Apecs.Gloss.Camera
instance GHC.Show.Show Apecs.Gloss.Camera
instance GHC.Classes.Eq Apecs.Gloss.Camera
instance GHC.Base.Semigroup Apecs.Gloss.Camera
instance GHC.Base.Monoid Apecs.Gloss.Camera
instance Apecs.Core.Component Apecs.Gloss.Camera

module Apecs.Physics.Gloss
convexToPicture :: Convex -> Picture
type Transform = (Position, Angle)
worldTransform :: Transform -> Picture -> Picture
drawBody :: Has w IO Shape => (Body, Transform, ShapeList) -> System w Picture
simulate :: (Has w IO Camera, Has w IO Physics) => Display -> System w ()
