1 | 1 patch for repository http://code.ouroborus.net/gloss/gloss-stable: |
---|
2 | |
---|
3 | Sun Jan 22 12:55:36 PST 2012 Thomas.DuBuisson@gmail.com |
---|
4 | * Exit cleanly when uncaught exceptions hit the main loop. |
---|
5 | |
---|
6 | New patches: |
---|
7 | |
---|
8 | [Exit cleanly when uncaught exceptions hit the main loop. |
---|
9 | Thomas.DuBuisson@gmail.com**20120122205536 |
---|
10 | Ignore-this: 6b8451e03a360e0890cc9647a4f44285 |
---|
11 | ] hunk ./gloss/Graphics/Gloss/Internals/Interface/Backend/GLFW.hs 15 |
---|
12 | import Graphics.UI.GLFW (WindowValue(..)) |
---|
13 | import qualified Graphics.UI.GLFW as GLFW |
---|
14 | import qualified Graphics.Rendering.OpenGL as GL |
---|
15 | - |
---|
16 | +import qualified Control.Excpetion as X |
---|
17 | |
---|
18 | -- [Note: FreeGlut] |
---|
19 | -- ~~~~~~~~~~~~~~~~ |
---|
20 | hunk ./gloss/Graphics/Gloss/Internals/Interface/Backend/GLFW.hs 437 |
---|
21 | -> IO () |
---|
22 | |
---|
23 | runMainLoopGLFW stateRef |
---|
24 | - = do windowIsOpen <- GLFW.windowIsOpen |
---|
25 | - when windowIsOpen |
---|
26 | - $ do dirty <- fmap dirtyScreen $ readIORef stateRef |
---|
27 | + = X.catch go recover |
---|
28 | + where |
---|
29 | + recover :: SomeException -> IO ()x |
---|
30 | + recover = do |
---|
31 | +#ifdef linux_HOST_OS |
---|
32 | +-- See [Note: FreeGlut] for why we need this. |
---|
33 | + GLUT.exit |
---|
34 | +#endif |
---|
35 | + return True |
---|
36 | + go :: IO () |
---|
37 | + go = do windowIsOpen <- GLFW.windowIsOpen |
---|
38 | + when windowIsOpen |
---|
39 | + $ do dirty <- fmap dirtyScreen $ readIORef stateRef |
---|
40 | |
---|
41 | when dirty |
---|
42 | $ do s <- readIORef stateRef |
---|
43 | |
---|
44 | Context: |
---|
45 | |
---|
46 | [TAG Release 1.6.0.1 |
---|
47 | Ben Lippmeier <benl@ouroborus.net>**20111228020857 |
---|
48 | Ignore-this: 8b11cdc5e55cbaf6ecd6dddc346eed61 |
---|
49 | ] |
---|
50 | Patch bundle hash: |
---|
51 | 510c91f7f1b8f8c610dc2a75c497ecd5cc19bc47 |
---|