{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.NV.TransformFeedback2 (
gl_NV_transform_feedback2
, glBindTransformFeedbackNV
, glDeleteTransformFeedbacksNV
, glDrawTransformFeedbackNV
, glGenTransformFeedbacksNV
, glIsTransformFeedbackNV
, glPauseTransformFeedbackNV
, glResumeTransformFeedbackNV
, pattern GL_TRANSFORM_FEEDBACK_BINDING_NV
, pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV
, pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV
, pattern GL_TRANSFORM_FEEDBACK_NV
) where
import Control.Monad.IO.Class
import Data.Set
import Foreign.Ptr
import Graphics.GL.Internal.FFI
import Graphics.GL.Internal.Proc
import Graphics.GL.Types
import System.IO.Unsafe
gl_NV_transform_feedback2 :: Bool
gl_NV_transform_feedback2 = member "GL_NV_transform_feedback2" extensions
{-# NOINLINE gl_NV_transform_feedback2 #-}
glBindTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()
glBindTransformFeedbackNV = ffienumuintIOV glBindTransformFeedbackNVFunPtr
glBindTransformFeedbackNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
glBindTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedbackNV")
{-# NOINLINE glBindTransformFeedbackNVFunPtr #-}
glDeleteTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeleteTransformFeedbacksNV = ffisizeiPtruintIOV glDeleteTransformFeedbacksNVFunPtr
glDeleteTransformFeedbacksNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeleteTransformFeedbacksNVFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacksNV")
{-# NOINLINE glDeleteTransformFeedbacksNVFunPtr #-}
glDrawTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()
glDrawTransformFeedbackNV = ffienumuintIOV glDrawTransformFeedbackNVFunPtr
glDrawTransformFeedbackNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
glDrawTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackNV")
{-# NOINLINE glDrawTransformFeedbackNVFunPtr #-}
glGenTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenTransformFeedbacksNV = ffisizeiPtruintIOV glGenTransformFeedbacksNVFunPtr
glGenTransformFeedbacksNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenTransformFeedbacksNVFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacksNV")
{-# NOINLINE glGenTransformFeedbacksNVFunPtr #-}
glIsTransformFeedbackNV :: MonadIO m => GLuint -> m GLboolean
glIsTransformFeedbackNV = ffiuintIOboolean glIsTransformFeedbackNVFunPtr
glIsTransformFeedbackNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
glIsTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedbackNV")
{-# NOINLINE glIsTransformFeedbackNVFunPtr #-}
glPauseTransformFeedbackNV :: MonadIO m => m ()
glPauseTransformFeedbackNV = ffiIOV glPauseTransformFeedbackNVFunPtr
glPauseTransformFeedbackNVFunPtr :: FunPtr (IO ())
glPauseTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedbackNV")
{-# NOINLINE glPauseTransformFeedbackNVFunPtr #-}
glResumeTransformFeedbackNV :: MonadIO m => m ()
glResumeTransformFeedbackNV = ffiIOV glResumeTransformFeedbackNVFunPtr
glResumeTransformFeedbackNVFunPtr :: FunPtr (IO ())
glResumeTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedbackNV")
{-# NOINLINE glResumeTransformFeedbackNVFunPtr #-}
pattern GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25
pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24
pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23
pattern GL_TRANSFORM_FEEDBACK_NV = 0x8E22