diff options
Diffstat (limited to 'GLDriver.hs')
-rw-r--r-- | GLDriver.hs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/GLDriver.hs b/GLDriver.hs new file mode 100644 index 0000000..e527d09 --- /dev/null +++ b/GLDriver.hs @@ -0,0 +1,25 @@ +{-# LANGUAGE ExistentialQuantification #-} + +module GLDriver ( GLDriver(..) + , Event + , SomeEvent(..) + ) where + +import Data.Typeable + + +class GLDriver a where + initialized :: a -> Bool + + initGL :: a -> IO a + deinitGL :: a -> IO () + + nextEvent :: a -> IO (Maybe SomeEvent) + + +class Typeable a => Event a + +data SomeEvent = forall a. Event a => SomeEvent a + +fromEvent :: Event a => SomeEvent -> Maybe a +fromEvent (SomeEvent a) = cast a |