packages feed

ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/GPUVertexBufferLayout.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webgpu (webref). Do not edit.
module GHCJS.DOM.JSFFI.Generated.GPUVertexBufferLayout
       (js_newGPUVertexBufferLayout, js_setArrayStride, js_getArrayStride, js_setStepMode, js_getStepMode, js_setAttributes, js_getAttributes, newGPUVertexBufferLayout, setArrayStride, getArrayStride, setStepMode, getStepMode, getStepModeUnsafe, getStepModeUnchecked, setAttributes, getAttributes, GPUVertexBufferLayout(..), gTypeGPUVertexBufferLayout)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import GHCJS.Types (JSVal, JSString)
import GHCJS.Foreign (jsUndefined, jsNull)
import GHCJS.DOM.Types
import qualified GHCJS.DOM.Types as Types
import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import GHCJS.DOM.JSFFI.Generated.Enums

foreign import javascript safe "(($1, $2) => { return ({\"arrayStride\": $1, \"attributes\": $2}); })"
        js_newGPUVertexBufferLayout :: JSVal -> JSVal -> IO GPUVertexBufferLayout
-- | <https://gpuweb.github.io/gpuweb/#dictdef-gpuvertexbufferlayout GPUVertexBufferLayout specification>
newGPUVertexBufferLayout :: (MonadDOM m) => Word53 -> [GPUVertexAttribute] -> m GPUVertexBufferLayout
newGPUVertexBufferLayout arrayStride attributes = liftDOM (((toJSVal arrayStride) >>= \a1' -> (toJSVal attributes) >>= \a2' -> js_newGPUVertexBufferLayout a1' a2'))

foreign import javascript safe "(($1, $2) => { $1[\"arrayStride\"] = $2; })"
        js_setArrayStride :: GPUVertexBufferLayout -> JSVal -> IO ()
-- | <https://gpuweb.github.io/gpuweb/#dom-gpuvertexbufferlayout-arraystride GPUVertexBufferLayout.arrayStride specification>
setArrayStride :: (MonadDOM m) => GPUVertexBufferLayout -> Word53 -> m ()
setArrayStride self val = liftDOM (void (((toJSVal val) >>= \a2' -> js_setArrayStride (self) a2')))

foreign import javascript unsafe "(($1) => { return $1[\"arrayStride\"]; })"
        js_getArrayStride :: GPUVertexBufferLayout -> IO JSVal
-- | <https://gpuweb.github.io/gpuweb/#dom-gpuvertexbufferlayout-arraystride GPUVertexBufferLayout.arrayStride specification>
getArrayStride :: (MonadDOM m) => GPUVertexBufferLayout -> m Word53
getArrayStride self = liftDOM (((js_getArrayStride (self)) >>= fromJSValUnchecked))

foreign import javascript safe "(($1, $2) => { $1[\"stepMode\"] = $2; })"
        js_setStepMode :: GPUVertexBufferLayout -> JSVal -> IO ()
-- | <https://gpuweb.github.io/gpuweb/#dom-gpuvertexbufferlayout-stepmode GPUVertexBufferLayout.stepMode specification>
setStepMode :: (MonadDOM m) => GPUVertexBufferLayout -> GPUVertexStepMode -> m ()
setStepMode self val = liftDOM (void (((toJSVal val) >>= \a2' -> js_setStepMode (self) a2')))

foreign import javascript unsafe "(($1) => { return $1[\"stepMode\"]; })"
        js_getStepMode :: GPUVertexBufferLayout -> IO JSVal
-- | <https://gpuweb.github.io/gpuweb/#dom-gpuvertexbufferlayout-stepmode GPUVertexBufferLayout.stepMode specification>
getStepMode :: (MonadDOM m) => GPUVertexBufferLayout -> m (Maybe GPUVertexStepMode)
getStepMode self = liftDOM (((js_getStepMode (self)) >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpuvertexbufferlayout-stepmode GPUVertexBufferLayout.stepMode specification>
getStepModeUnsafe :: (MonadDOM m, HasCallStack) => GPUVertexBufferLayout -> m GPUVertexStepMode
getStepModeUnsafe self = liftDOM ((((js_getStepMode (self)) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpuvertexbufferlayout-stepmode GPUVertexBufferLayout.stepMode specification>
getStepModeUnchecked :: (MonadDOM m) => GPUVertexBufferLayout -> m GPUVertexStepMode
getStepModeUnchecked self = liftDOM ((pFromJSVal <$> (js_getStepMode (self))))

foreign import javascript safe "(($1, $2) => { $1[\"attributes\"] = $2; })"
        js_setAttributes :: GPUVertexBufferLayout -> JSVal -> IO ()
-- | <https://gpuweb.github.io/gpuweb/#dom-gpuvertexbufferlayout-attributes GPUVertexBufferLayout.attributes specification>
setAttributes :: (MonadDOM m) => GPUVertexBufferLayout -> [GPUVertexAttribute] -> m ()
setAttributes self val = liftDOM (void (((toJSVal val) >>= \a2' -> js_setAttributes (self) a2')))

foreign import javascript unsafe "(($1) => { return $1[\"attributes\"]; })"
        js_getAttributes :: GPUVertexBufferLayout -> IO JSVal
-- | <https://gpuweb.github.io/gpuweb/#dom-gpuvertexbufferlayout-attributes GPUVertexBufferLayout.attributes specification>
getAttributes :: (MonadDOM m) => GPUVertexBufferLayout -> m [GPUVertexAttribute]
getAttributes self = liftDOM (((js_getAttributes (self)) >>= fromJSValUnchecked))