packages feed

ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/GPUPipelineLayoutDescriptor.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.GPUPipelineLayoutDescriptor
       (js_newGPUPipelineLayoutDescriptor, js_setBindGroupLayouts, js_getBindGroupLayouts, js_setImmediateSize, js_getImmediateSize, newGPUPipelineLayoutDescriptor, setBindGroupLayouts, getBindGroupLayouts, setImmediateSize, getImmediateSize, getImmediateSizeUnsafe, getImmediateSizeUnchecked, GPUPipelineLayoutDescriptor(..), gTypeGPUPipelineLayoutDescriptor)
       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) => { return ({\"bindGroupLayouts\": $1}); })"
        js_newGPUPipelineLayoutDescriptor :: JSVal -> IO GPUPipelineLayoutDescriptor
-- | <https://gpuweb.github.io/gpuweb/#dictdef-gpupipelinelayoutdescriptor GPUPipelineLayoutDescriptor specification>
newGPUPipelineLayoutDescriptor :: (MonadDOM m) => [Maybe GPUBindGroupLayout] -> m GPUPipelineLayoutDescriptor
newGPUPipelineLayoutDescriptor bindGroupLayouts = liftDOM (((toJSVal bindGroupLayouts) >>= \a1' -> js_newGPUPipelineLayoutDescriptor a1'))

foreign import javascript safe "(($1, $2) => { $1[\"bindGroupLayouts\"] = $2; })"
        js_setBindGroupLayouts :: GPUPipelineLayoutDescriptor -> JSVal -> IO ()
-- | <https://gpuweb.github.io/gpuweb/#dom-gpupipelinelayoutdescriptor-bindgrouplayouts GPUPipelineLayoutDescriptor.bindGroupLayouts specification>
setBindGroupLayouts :: (MonadDOM m) => GPUPipelineLayoutDescriptor -> [Maybe GPUBindGroupLayout] -> m ()
setBindGroupLayouts self val = liftDOM (void (((toJSVal val) >>= \a2' -> js_setBindGroupLayouts (self) a2')))

foreign import javascript unsafe "(($1) => { return $1[\"bindGroupLayouts\"]; })"
        js_getBindGroupLayouts :: GPUPipelineLayoutDescriptor -> IO JSVal
-- | <https://gpuweb.github.io/gpuweb/#dom-gpupipelinelayoutdescriptor-bindgrouplayouts GPUPipelineLayoutDescriptor.bindGroupLayouts specification>
getBindGroupLayouts :: (MonadDOM m) => GPUPipelineLayoutDescriptor -> m [Maybe GPUBindGroupLayout]
getBindGroupLayouts self = liftDOM (((js_getBindGroupLayouts (self)) >>= fromJSValUnchecked))

foreign import javascript safe "(($1, $2) => { $1[\"immediateSize\"] = $2; })"
        js_setImmediateSize :: GPUPipelineLayoutDescriptor -> Word -> IO ()
-- | <https://gpuweb.github.io/gpuweb/#dom-gpupipelinelayoutdescriptor-immediatesize GPUPipelineLayoutDescriptor.immediateSize specification>
setImmediateSize :: (MonadDOM m) => GPUPipelineLayoutDescriptor -> Word -> m ()
setImmediateSize self val = liftDOM (void ((js_setImmediateSize (self) (val))))

foreign import javascript unsafe "(($1) => { return $1[\"immediateSize\"]; })"
        js_getImmediateSize :: GPUPipelineLayoutDescriptor -> IO JSVal
-- | <https://gpuweb.github.io/gpuweb/#dom-gpupipelinelayoutdescriptor-immediatesize GPUPipelineLayoutDescriptor.immediateSize specification>
getImmediateSize :: (MonadDOM m) => GPUPipelineLayoutDescriptor -> m (Maybe Word)
getImmediateSize self = liftDOM (((js_getImmediateSize (self)) >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpupipelinelayoutdescriptor-immediatesize GPUPipelineLayoutDescriptor.immediateSize specification>
getImmediateSizeUnsafe :: (MonadDOM m, HasCallStack) => GPUPipelineLayoutDescriptor -> m Word
getImmediateSizeUnsafe self = liftDOM ((((js_getImmediateSize (self)) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpupipelinelayoutdescriptor-immediatesize GPUPipelineLayoutDescriptor.immediateSize specification>
getImmediateSizeUnchecked :: (MonadDOM m) => GPUPipelineLayoutDescriptor -> m Word
getImmediateSizeUnchecked self = liftDOM ((pFromJSVal <$> (js_getImmediateSize (self))))