module Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObject (
FramebufferObject(..)
) where
import Foreign.Marshal
import Graphics.Rendering.OpenGL.GL.GLboolean
import Graphics.Rendering.OpenGL.GL.ObjectName
import Graphics.Rendering.OpenGL.Raw
data FramebufferObject = FramebufferObject { framebufferID :: GLuint }
deriving ( Eq, Ord, Show )
instance ObjectName FramebufferObject where
isObjectName = fmap unmarshalGLboolean . glIsFramebuffer . framebufferID
deleteObjectNames objs =
withArrayLen (map framebufferID objs) $
glDeleteFramebuffers . fromIntegral
instance GeneratableObjectName FramebufferObject where
genObjectNames n =
allocaArray n $ \buf -> do
glGenFramebuffers (fromIntegral n) buf
fmap (map FramebufferObject) $ peekArray n buf