module Graphics.UI.GLUT.Debugging (
reportErrors
) where
import Control.Monad.IO.Class ( MonadIO(..) )
import Data.StateVar ( get )
import Graphics.Rendering.OpenGL ( Error(..), errors )
import System.Environment ( getProgName )
import System.IO ( hPutStrLn, stderr )
reportErrors :: MonadIO m => m ()
reportErrors :: forall (m :: * -> *). MonadIO m => m ()
reportErrors = forall t a (m :: * -> *). (HasGetter t a, MonadIO m) => t -> m a
get GettableStateVar [Error]
errors forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ forall (m :: * -> *). MonadIO m => Error -> m ()
reportError
reportError :: MonadIO m => Error -> m ()
reportError :: forall (m :: * -> *). MonadIO m => Error -> m ()
reportError (Error ErrorCategory
_ String
msg) = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
String
pn <- IO String
getProgName
Handle -> String -> IO ()
hPutStrLn Handle
stderr (String
"GLUT: Warning in " forall a. [a] -> [a] -> [a]
++ String
pn forall a. [a] -> [a] -> [a]
++ String
": GL error: " forall a. [a] -> [a] -> [a]
++ String
msg)