diff options
Diffstat (limited to 'Triangle.hs')
-rw-r--r-- | Triangle.hs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Triangle.hs b/Triangle.hs index 175446c..1a7a58e 100644 --- a/Triangle.hs +++ b/Triangle.hs | |||
@@ -1,6 +1,7 @@ | |||
1 | {-# LANGUAGE QuasiQuotes #-} | 1 | {-# LANGUAGE QuasiQuotes, LambdaCase #-} |
2 | module Triangle where | 2 | module Triangle where |
3 | 3 | ||
4 | import Data.GI.Base.ManagedPtr (newManagedPtr) | ||
4 | import Graphics.Rendering.OpenGL as GL | 5 | import Graphics.Rendering.OpenGL as GL |
5 | import GI.Gtk as Gtk | 6 | import GI.Gtk as Gtk |
6 | import GI.Gdk.Objects | 7 | import GI.Gdk.Objects |
@@ -115,3 +116,13 @@ realize svar w = do | |||
115 | unrealize :: MVar State -> GLArea -> IO () | 116 | unrealize :: MVar State -> GLArea -> IO () |
116 | unrealize _ _ = do | 117 | unrealize _ _ = do |
117 | putStrLn "unrealize!" | 118 | putStrLn "unrealize!" |
119 | |||
120 | createContext :: MVar State -> GLArea -> IO GLContext | ||
121 | createContext st glarea = do | ||
122 | st <- readMVar st | ||
123 | widgetGetWindow glarea >>= \case | ||
124 | Just win -> windowCreateGlContext win | ||
125 | Nothing -> do | ||
126 | putStrLn "createContext: GLArea has no window." | ||
127 | mptr <- newManagedPtr nullPtr (return ()) | ||
128 | return $ GLContext mptr | ||