{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.WebGPURenderPassDepthAttachmentDescriptor
       (setClearDepth, getClearDepth,
        WebGPURenderPassDepthAttachmentDescriptor(..),
        gTypeWebGPURenderPassDepthAttachmentDescriptor)
       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/WebGPURenderPassDepthAttachmentDescriptor.clearDepth Mozilla WebGPURenderPassDepthAttachmentDescriptor.clearDepth documentation> 
setClearDepth ::
              (MonadDOM m) =>
                WebGPURenderPassDepthAttachmentDescriptor -> Double -> m ()
setClearDepth :: forall (m :: * -> *).
MonadDOM m =>
WebGPURenderPassDepthAttachmentDescriptor -> Double -> m ()
setClearDepth WebGPURenderPassDepthAttachmentDescriptor
self Double
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (WebGPURenderPassDepthAttachmentDescriptor
self WebGPURenderPassDepthAttachmentDescriptor
-> Getting
     (DOM ()) WebGPURenderPassDepthAttachmentDescriptor (DOM ())
-> DOM ()
forall s a. s -> Getting a s a -> a
^. String
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss String
"clearDepth" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/WebGPURenderPassDepthAttachmentDescriptor.clearDepth Mozilla WebGPURenderPassDepthAttachmentDescriptor.clearDepth documentation> 
getClearDepth ::
              (MonadDOM m) =>
                WebGPURenderPassDepthAttachmentDescriptor -> m Double
getClearDepth :: forall (m :: * -> *).
MonadDOM m =>
WebGPURenderPassDepthAttachmentDescriptor -> m Double
getClearDepth WebGPURenderPassDepthAttachmentDescriptor
self
  = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((WebGPURenderPassDepthAttachmentDescriptor
self WebGPURenderPassDepthAttachmentDescriptor
-> Getting
     (JSM JSVal) WebGPURenderPassDepthAttachmentDescriptor (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String
-> IndexPreservingGetter
     WebGPURenderPassDepthAttachmentDescriptor (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"clearDepth") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)