-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.NV.VideoCapture (
  -- * Extension Support
    gl_NV_video_capture

  -- * GL_NV_video_capture
  , glBeginVideoCaptureNV
  , glBindVideoCaptureStreamBufferNV
  , glBindVideoCaptureStreamTextureNV
  , glEndVideoCaptureNV
  , glGetVideoCaptureStreamdvNV
  , glGetVideoCaptureStreamfvNV
  , glGetVideoCaptureStreamivNV
  , glGetVideoCaptureivNV
  , glVideoCaptureNV
  , glVideoCaptureStreamParameterdvNV
  , glVideoCaptureStreamParameterfvNV
  , glVideoCaptureStreamParameterivNV
  , pattern GL_FAILURE_NV
  , pattern GL_FIELD_LOWER_NV
  , pattern GL_FIELD_UPPER_NV
  , pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV
  , pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV
  , pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV
  , pattern GL_PARTIAL_SUCCESS_NV
  , pattern GL_SUCCESS_NV
  , pattern GL_VIDEO_BUFFER_BINDING_NV
  , pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV
  , pattern GL_VIDEO_BUFFER_NV
  , pattern GL_VIDEO_BUFFER_PITCH_NV
  , pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV
  , pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV
  , pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV
  , pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV
  , pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV
  , pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV
  , pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV
  , pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV
  , pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV
  , pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV
  , pattern GL_YCBAYCR8A_4224_NV
  , pattern GL_YCBYCR8_422_NV
  , pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV
  , pattern GL_Z4Y12Z4CB12Z4CR12_444_NV
  , pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV
  , pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV
  , pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV
) where

import Control.Monad.IO.Class
import Data.Set
import Foreign.Ptr
import Graphics.GL.Raw.Internal.FFI
import Graphics.GL.Raw.Internal.Proc
import Graphics.GL.Raw.Types
import System.IO.Unsafe

gl_NV_video_capture :: Bool
gl_NV_video_capture = member "GL_NV_video_capture" extensions

glBeginVideoCaptureNV :: MonadIO m => GLuint -> m ()
glBeginVideoCaptureNV = ffiuintIOV glBeginVideoCaptureNVFunPtr

glBeginVideoCaptureNVFunPtr :: FunPtr (GLuint -> IO ())
glBeginVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glBeginVideoCaptureNV")

{-# NOINLINE glBeginVideoCaptureNVFunPtr #-}

glBindVideoCaptureStreamBufferNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
glBindVideoCaptureStreamBufferNV = ffiuintuintenumintptrARBIOV glBindVideoCaptureStreamBufferNVFunPtr

glBindVideoCaptureStreamBufferNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ())
glBindVideoCaptureStreamBufferNVFunPtr = unsafePerformIO (getProcAddress "glBindVideoCaptureStreamBufferNV")

{-# NOINLINE glBindVideoCaptureStreamBufferNVFunPtr #-}

glBindVideoCaptureStreamTextureNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
glBindVideoCaptureStreamTextureNV = ffiuintuintenumenumuintIOV glBindVideoCaptureStreamTextureNVFunPtr

glBindVideoCaptureStreamTextureNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ())
glBindVideoCaptureStreamTextureNVFunPtr = unsafePerformIO (getProcAddress "glBindVideoCaptureStreamTextureNV")

{-# NOINLINE glBindVideoCaptureStreamTextureNVFunPtr #-}

glEndVideoCaptureNV :: MonadIO m => GLuint -> m ()
glEndVideoCaptureNV = ffiuintIOV glEndVideoCaptureNVFunPtr

glEndVideoCaptureNVFunPtr :: FunPtr (GLuint -> IO ())
glEndVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glEndVideoCaptureNV")

{-# NOINLINE glEndVideoCaptureNVFunPtr #-}

glGetVideoCaptureStreamdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glGetVideoCaptureStreamdvNV = ffiuintuintenumPtrdoubleIOV glGetVideoCaptureStreamdvNVFunPtr

glGetVideoCaptureStreamdvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
glGetVideoCaptureStreamdvNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamdvNV")

{-# NOINLINE glGetVideoCaptureStreamdvNVFunPtr #-}

glGetVideoCaptureStreamfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetVideoCaptureStreamfvNV = ffiuintuintenumPtrfloatIOV glGetVideoCaptureStreamfvNVFunPtr

glGetVideoCaptureStreamfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetVideoCaptureStreamfvNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamfvNV")

{-# NOINLINE glGetVideoCaptureStreamfvNVFunPtr #-}

glGetVideoCaptureStreamivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetVideoCaptureStreamivNV = ffiuintuintenumPtrintIOV glGetVideoCaptureStreamivNVFunPtr

glGetVideoCaptureStreamivNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
glGetVideoCaptureStreamivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamivNV")

{-# NOINLINE glGetVideoCaptureStreamivNVFunPtr #-}

glGetVideoCaptureivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
glGetVideoCaptureivNV = ffiuintenumPtrintIOV glGetVideoCaptureivNVFunPtr

glGetVideoCaptureivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
glGetVideoCaptureivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureivNV")

{-# NOINLINE glGetVideoCaptureivNVFunPtr #-}

glVideoCaptureNV :: MonadIO m => GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
glVideoCaptureNV = ffiuintPtruintPtruint64EXTIOenum glVideoCaptureNVFunPtr

glVideoCaptureNVFunPtr :: FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum)
glVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureNV")

{-# NOINLINE glVideoCaptureNVFunPtr #-}

glVideoCaptureStreamParameterdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
glVideoCaptureStreamParameterdvNV = ffiuintuintenumPtrdoubleIOV glVideoCaptureStreamParameterdvNVFunPtr

glVideoCaptureStreamParameterdvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
glVideoCaptureStreamParameterdvNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterdvNV")

{-# NOINLINE glVideoCaptureStreamParameterdvNVFunPtr #-}

glVideoCaptureStreamParameterfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glVideoCaptureStreamParameterfvNV = ffiuintuintenumPtrfloatIOV glVideoCaptureStreamParameterfvNVFunPtr

glVideoCaptureStreamParameterfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
glVideoCaptureStreamParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterfvNV")

{-# NOINLINE glVideoCaptureStreamParameterfvNVFunPtr #-}

glVideoCaptureStreamParameterivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
glVideoCaptureStreamParameterivNV = ffiuintuintenumPtrintIOV glVideoCaptureStreamParameterivNVFunPtr

glVideoCaptureStreamParameterivNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
glVideoCaptureStreamParameterivNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterivNV")

{-# NOINLINE glVideoCaptureStreamParameterivNVFunPtr #-}

pattern GL_FAILURE_NV = 0x9030 :: GLenum

pattern GL_FIELD_LOWER_NV = 0x9023 :: GLenum

pattern GL_FIELD_UPPER_NV = 0x9022 :: GLenum

pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027 :: GLenum

pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025 :: GLenum

pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024 :: GLenum

pattern GL_PARTIAL_SUCCESS_NV = 0x902E :: GLenum

pattern GL_SUCCESS_NV = 0x902F :: GLenum

pattern GL_VIDEO_BUFFER_BINDING_NV = 0x9021 :: GLenum

pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D :: GLenum

pattern GL_VIDEO_BUFFER_NV = 0x9020 :: GLenum

pattern GL_VIDEO_BUFFER_PITCH_NV = 0x9028 :: GLenum

pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B :: GLenum

pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A :: GLenum

pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039 :: GLenum

pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038 :: GLenum

pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C :: GLenum

pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026 :: GLenum

pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029 :: GLenum

pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A :: GLenum

pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B :: GLenum

pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C :: GLenum

pattern GL_YCBAYCR8A_4224_NV = 0x9032 :: GLenum

pattern GL_YCBYCR8_422_NV = 0x9031 :: GLenum

pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036 :: GLenum

pattern GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037 :: GLenum

pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035 :: GLenum

pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034 :: GLenum

pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033 :: GLenum