{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.WebGPURenderCommandEncoder
       (setRenderPipelineState, setDepthStencilState, setVertexBuffer,
        setFragmentBuffer, drawPrimitives, endEncoding,
        WebGPURenderCommandEncoder(..), gTypeWebGPURenderCommandEncoder)
       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/WebGPURenderCommandEncoder.setRenderPipelineState Mozilla WebGPURenderCommandEncoder.setRenderPipelineState documentation> 
setRenderPipelineState ::
                       (MonadDOM m) =>
                         WebGPURenderCommandEncoder -> WebGPURenderPipelineState -> m ()
setRenderPipelineState :: WebGPURenderCommandEncoder -> WebGPURenderPipelineState -> m ()
setRenderPipelineState WebGPURenderCommandEncoder
self WebGPURenderPipelineState
pipelineState
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (WebGPURenderCommandEncoder
self WebGPURenderCommandEncoder
-> Getting (JSM JSVal) WebGPURenderCommandEncoder (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]
"setRenderPipelineState" [WebGPURenderPipelineState -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal WebGPURenderPipelineState
pipelineState]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGPURenderCommandEncoder.setDepthStencilState Mozilla WebGPURenderCommandEncoder.setDepthStencilState documentation> 
setDepthStencilState ::
                     (MonadDOM m) =>
                       WebGPURenderCommandEncoder -> WebGPUDepthStencilState -> m ()
setDepthStencilState :: WebGPURenderCommandEncoder -> WebGPUDepthStencilState -> m ()
setDepthStencilState WebGPURenderCommandEncoder
self WebGPUDepthStencilState
depthStencilState
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (WebGPURenderCommandEncoder
self WebGPURenderCommandEncoder
-> Getting (JSM JSVal) WebGPURenderCommandEncoder (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]
"setDepthStencilState" [WebGPUDepthStencilState -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal WebGPUDepthStencilState
depthStencilState]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGPURenderCommandEncoder.setVertexBuffer Mozilla WebGPURenderCommandEncoder.setVertexBuffer documentation> 
setVertexBuffer ::
                (MonadDOM m) =>
                  WebGPURenderCommandEncoder -> WebGPUBuffer -> Word -> Word -> m ()
setVertexBuffer :: WebGPURenderCommandEncoder -> WebGPUBuffer -> Word -> Word -> m ()
setVertexBuffer WebGPURenderCommandEncoder
self WebGPUBuffer
buffer Word
offset Word
index
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (WebGPURenderCommandEncoder
self WebGPURenderCommandEncoder
-> Getting (JSM JSVal) WebGPURenderCommandEncoder (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]
"setVertexBuffer"
            [WebGPUBuffer -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal WebGPUBuffer
buffer, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
offset, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGPURenderCommandEncoder.setFragmentBuffer Mozilla WebGPURenderCommandEncoder.setFragmentBuffer documentation> 
setFragmentBuffer ::
                  (MonadDOM m) =>
                    WebGPURenderCommandEncoder -> WebGPUBuffer -> Word -> Word -> m ()
setFragmentBuffer :: WebGPURenderCommandEncoder -> WebGPUBuffer -> Word -> Word -> m ()
setFragmentBuffer WebGPURenderCommandEncoder
self WebGPUBuffer
buffer Word
offset Word
index
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (WebGPURenderCommandEncoder
self WebGPURenderCommandEncoder
-> Getting (JSM JSVal) WebGPURenderCommandEncoder (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]
"setFragmentBuffer"
            [WebGPUBuffer -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal WebGPUBuffer
buffer, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
offset, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
index]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGPURenderCommandEncoder.drawPrimitives Mozilla WebGPURenderCommandEncoder.drawPrimitives documentation> 
drawPrimitives ::
               (MonadDOM m) =>
                 WebGPURenderCommandEncoder -> Word -> Word -> Word -> m ()
drawPrimitives :: WebGPURenderCommandEncoder -> Word -> Word -> Word -> m ()
drawPrimitives WebGPURenderCommandEncoder
self Word
type' Word
start Word
count
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (WebGPURenderCommandEncoder
self WebGPURenderCommandEncoder
-> Getting (JSM JSVal) WebGPURenderCommandEncoder (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]
"drawPrimitives"
            [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
type', Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
start, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
count]))

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