{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.ANGLEInstancedArrays
       (drawArraysInstancedANGLE, drawElementsInstancedANGLE,
        vertexAttribDivisorANGLE,
        pattern VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE,
        ANGLEInstancedArrays(..), gTypeANGLEInstancedArrays)
       where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/ANGLEInstancedArrays.drawArraysInstancedANGLE Mozilla ANGLEInstancedArrays.drawArraysInstancedANGLE documentation> 
drawArraysInstancedANGLE ::
                         (MonadDOM m) =>
                           ANGLEInstancedArrays -> Word -> Int -> Int -> Int -> m ()
drawArraysInstancedANGLE :: ANGLEInstancedArrays -> Word -> Int -> Int -> Int -> m ()
drawArraysInstancedANGLE ANGLEInstancedArrays
self Word
mode Int
first Int
count Int
primcount
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (ANGLEInstancedArrays
self ANGLEInstancedArrays
-> Getting (JSM JSVal) ANGLEInstancedArrays (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"drawArraysInstancedANGLE"
            [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
mode, Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Int
first, Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Int
count, Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Int
primcount]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/ANGLEInstancedArrays.drawElementsInstancedANGLE Mozilla ANGLEInstancedArrays.drawElementsInstancedANGLE documentation> 
drawElementsInstancedANGLE ::
                           (MonadDOM m) =>
                             ANGLEInstancedArrays -> Word -> Int -> Word -> Int64 -> Int -> m ()
drawElementsInstancedANGLE :: ANGLEInstancedArrays -> Word -> Int -> Word -> Int64 -> Int -> m ()
drawElementsInstancedANGLE ANGLEInstancedArrays
self Word
mode Int
count Word
type' Int64
offset Int
primcount
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (ANGLEInstancedArrays
self ANGLEInstancedArrays
-> Getting (JSM JSVal) ANGLEInstancedArrays (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"drawElementsInstancedANGLE"
            [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
mode, Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Int
count, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
type',
             Int64 -> JSM JSVal
forall a. Integral a => a -> JSM JSVal
integralToDoubleToJSVal Int64
offset, Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Int
primcount]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/ANGLEInstancedArrays.vertexAttribDivisorANGLE Mozilla ANGLEInstancedArrays.vertexAttribDivisorANGLE documentation> 
vertexAttribDivisorANGLE ::
                         (MonadDOM m) => ANGLEInstancedArrays -> Word -> Word -> m ()
vertexAttribDivisorANGLE :: ANGLEInstancedArrays -> Word -> Word -> m ()
vertexAttribDivisorANGLE ANGLEInstancedArrays
self Word
index Word
divisor
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (ANGLEInstancedArrays
self ANGLEInstancedArrays
-> Getting (JSM JSVal) ANGLEInstancedArrays (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"vertexAttribDivisorANGLE"
            [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
divisor]))
pattern $bVERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE :: a
$mVERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 35070