-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.OES.PointSizeArray (
  -- * Extension Support
    gl_OES_point_size_array

  -- * GL_OES_point_size_array
  , glPointSizePointerOES
  , pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES
  , pattern GL_POINT_SIZE_ARRAY_OES
  , pattern GL_POINT_SIZE_ARRAY_POINTER_OES
  , pattern GL_POINT_SIZE_ARRAY_STRIDE_OES
  , pattern GL_POINT_SIZE_ARRAY_TYPE_OES
) 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

-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_point_size_array.txt GL_OES_point_size_array> extension is available.

gl_OES_point_size_array :: Bool
gl_OES_point_size_array :: Bool
gl_OES_point_size_array = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_OES_point_size_array" Set String
extensions
{-# NOINLINE gl_OES_point_size_array #-}

-- | Usage: @'glPointSizePointerOES' type stride pointer@
--
-- The length of @pointer@ should be @COMPSIZE(type,stride)@.


glPointSizePointerOES :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
glPointSizePointerOES :: forall (m :: * -> *).
MonadIO m =>
GLenum -> GLsizei -> Ptr () -> m ()
glPointSizePointerOES = FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLsizei -> Ptr () -> m ()
ffienumsizeiPtrVIOV FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glPointSizePointerOESFunPtr

glPointSizePointerOESFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glPointSizePointerOESFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
glPointSizePointerOESFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glPointSizePointerOES")

{-# NOINLINE glPointSizePointerOESFunPtr #-}

pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES  :: (Eq a, Num a) => a

pattern $mGL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES :: forall a. (Eq a, Num a) => a
GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F

pattern GL_POINT_SIZE_ARRAY_OES  :: (Eq a, Num a) => a

pattern $mGL_POINT_SIZE_ARRAY_OES :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_POINT_SIZE_ARRAY_OES :: forall a. (Eq a, Num a) => a
GL_POINT_SIZE_ARRAY_OES = 0x8B9C

pattern GL_POINT_SIZE_ARRAY_POINTER_OES  :: (Eq a, Num a) => a

pattern $mGL_POINT_SIZE_ARRAY_POINTER_OES :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_POINT_SIZE_ARRAY_POINTER_OES :: forall a. (Eq a, Num a) => a
GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C

pattern GL_POINT_SIZE_ARRAY_STRIDE_OES  :: (Eq a, Num a) => a

pattern $mGL_POINT_SIZE_ARRAY_STRIDE_OES :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_POINT_SIZE_ARRAY_STRIDE_OES :: forall a. (Eq a, Num a) => a
GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B

pattern GL_POINT_SIZE_ARRAY_TYPE_OES  :: (Eq a, Num a) => a

pattern $mGL_POINT_SIZE_ARRAY_TYPE_OES :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_POINT_SIZE_ARRAY_TYPE_OES :: forall a. (Eq a, Num a) => a
GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A