20 lines
530 B
Haskell
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
|