jsaddle-dom-0.10.0.0: src/JSDOM/Generated/GPUColorTargetState.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webgpu (webref). Do not edit.
module JSDOM.Generated.GPUColorTargetState
(newGPUColorTargetState, setFormat, getFormat, setBlend, getBlend, getBlendUnsafe, getBlendUnchecked, setWriteMask, getWriteMask, getWriteMaskUnsafe, getWriteMaskUnchecked, GPUColorTargetState(..), gTypeGPUColorTargetState)
where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums
-- | <https://gpuweb.github.io/gpuweb/#dictdef-gpucolortargetstate GPUColorTargetState specification>
newGPUColorTargetState :: (MonadDOM m) => GPUTextureFormat -> m GPUColorTargetState
newGPUColorTargetState format = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "format" (toJSVal format)) P.>> P.return o)) >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-format GPUColorTargetState.format specification>
setFormat :: (MonadDOM m) => GPUColorTargetState -> GPUTextureFormat -> m ()
setFormat self val = liftDOM (void (self ^. jss "format" (toJSVal val)))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-format GPUColorTargetState.format specification>
getFormat :: (MonadDOM m) => GPUColorTargetState -> m GPUTextureFormat
getFormat self = liftDOM (((self ^. js "format") >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-blend GPUColorTargetState.blend specification>
setBlend :: (MonadDOM m) => GPUColorTargetState -> GPUBlendState -> m ()
setBlend self val = liftDOM (void (self ^. jss "blend" (toJSVal val)))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-blend GPUColorTargetState.blend specification>
getBlend :: (MonadDOM m) => GPUColorTargetState -> m (Maybe GPUBlendState)
getBlend self = liftDOM (((self ^. js "blend") >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-blend GPUColorTargetState.blend specification>
getBlendUnsafe :: (MonadDOM m, HasCallStack) => GPUColorTargetState -> m GPUBlendState
getBlendUnsafe self = liftDOM ((((self ^. js "blend") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-blend GPUColorTargetState.blend specification>
getBlendUnchecked :: (MonadDOM m) => GPUColorTargetState -> m GPUBlendState
getBlendUnchecked self = liftDOM (((self ^. js "blend") >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-writemask GPUColorTargetState.writeMask specification>
setWriteMask :: (MonadDOM m) => GPUColorTargetState -> Word -> m ()
setWriteMask self val = liftDOM (void (self ^. jss "writeMask" (toJSVal val)))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-writemask GPUColorTargetState.writeMask specification>
getWriteMask :: (MonadDOM m) => GPUColorTargetState -> m (Maybe Word)
getWriteMask self = liftDOM (((self ^. js "writeMask") >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-writemask GPUColorTargetState.writeMask specification>
getWriteMaskUnsafe :: (MonadDOM m, HasCallStack) => GPUColorTargetState -> m Word
getWriteMaskUnsafe self = liftDOM ((((self ^. js "writeMask") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpucolortargetstate-writemask GPUColorTargetState.writeMask specification>
getWriteMaskUnchecked :: (MonadDOM m) => GPUColorTargetState -> m Word
getWriteMaskUnchecked self = liftDOM ((P.round <$> ((self ^. js "writeMask") >>= valToNumber)))