Files
loop/src/GLHelp.hs
T

20 lines
530 B
Haskell

module GLHelp (mglCreate,mglDelete,checkGLError) where
import Foreign.Marshal
import Foreign.Ptr
import Foreign.Storable
import Graphics.GL.Core45
mglCreate :: (GLsizei -> Ptr GLuint -> IO ()) -> IO GLuint
mglCreate f = alloca $ \ptr -> f 1 ptr >> peek ptr
mglDelete :: (GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> IO ()
mglDelete f i = with i $ f 1
checkGLError :: String -> IO ()
checkGLError s = do
err <- glGetError
case err of
0 -> return ()
i -> error $ "OpenGL error: " ++ show i ++ " - " ++ s