-----------------------------------------------------------------------------
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
module THREE.DepthTexture
  ( -- * Types
    DepthTexture (..)
    -- * Constructors
  , THREE.DepthTexture.new
    -- * Properties
  , compareFunction
  ) where
-----------------------------------------------------------------------------
import           Miso
-----------------------------------------------------------------------------
import           THREE.Constants.Textures
import           THREE.Constants.Textures.MagnificationFilters
import           THREE.Constants.Textures.MinificationFilters
import           THREE.EventDispatcher
import           THREE.Internal as THREE
import           THREE.Texture
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/textures/DepthTexture
newtype DepthTexture
  = DepthTexture
  { DepthTexture -> JSVal
unDepthTexture :: JSVal
  } deriving newtype (DepthTexture -> IO [JSVal]
(DepthTexture -> IO [JSVal]) -> ToArgs DepthTexture
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: DepthTexture -> IO [JSVal]
toArgs :: DepthTexture -> IO [JSVal]
ToArgs, DepthTexture -> IO Object
(DepthTexture -> IO Object) -> ToObject DepthTexture
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: DepthTexture -> IO Object
toObject :: DepthTexture -> IO Object
ToObject, DepthTexture -> IO JSVal
(DepthTexture -> IO JSVal) -> ToJSVal DepthTexture
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: DepthTexture -> IO JSVal
toJSVal :: DepthTexture -> IO JSVal
ToJSVal)
    deriving anyclass (ToObject DepthTexture
ToJSVal DepthTexture
Method DepthTexture (MisoString, Function) ()
Method DepthTexture Object ()
(ToObject DepthTexture, ToJSVal DepthTexture) =>
Method DepthTexture (MisoString, Function) ()
-> Method DepthTexture (MisoString, Function) ()
-> Method DepthTexture (MisoString, Function) ()
-> Method DepthTexture Object ()
-> EventDispatcher DepthTexture
forall object.
(ToObject object, ToJSVal object) =>
Method object (MisoString, Function) ()
-> Method object (MisoString, Function) ()
-> Method object (MisoString, Function) ()
-> Method object Object ()
-> EventDispatcher object
$caddEventListener :: Method DepthTexture (MisoString, Function) ()
addEventListener :: Method DepthTexture (MisoString, Function) ()
$chasEventListener :: Method DepthTexture (MisoString, Function) ()
hasEventListener :: Method DepthTexture (MisoString, Function) ()
$cremoveEventListener :: Method DepthTexture (MisoString, Function) ()
removeEventListener :: Method DepthTexture (MisoString, Function) ()
$cdispatchEvent :: Method DepthTexture Object ()
dispatchEvent :: Method DepthTexture Object ()
EventDispatcher, Property DepthTexture Bool
Property DepthTexture Double
Property DepthTexture Int
Property DepthTexture [Object]
Property DepthTexture (Maybe Function)
Property DepthTexture MisoString
Property DepthTexture Object
Property DepthTexture ColorSpace
Property DepthTexture Formats
Property DepthTexture InternalFormats
Property DepthTexture MappingModes
Property DepthTexture Types
Property DepthTexture UvChannel
Property DepthTexture WrappingModes
Property DepthTexture MagnificationFilters
Property DepthTexture MinificationFilters
Property DepthTexture Matrix3
Property DepthTexture Source
Property DepthTexture Vector2
ReadOnly DepthTexture Int
ReadOnly DepthTexture MisoString
EventDispatcher DepthTexture
Method DepthTexture () ()
Method DepthTexture Object Object
FromJSVal DepthTexture => Method DepthTexture () DepthTexture
EventDispatcher DepthTexture =>
ReadOnly DepthTexture Int
-> ReadOnly DepthTexture MisoString
-> Property DepthTexture MisoString
-> Property DepthTexture Object
-> Property DepthTexture [Object]
-> Property DepthTexture MappingModes
-> Property DepthTexture UvChannel
-> Property DepthTexture WrappingModes
-> Property DepthTexture WrappingModes
-> Property DepthTexture MagnificationFilters
-> Property DepthTexture MinificationFilters
-> Property DepthTexture Double
-> Property DepthTexture Formats
-> Property DepthTexture InternalFormats
-> Property DepthTexture Types
-> Property DepthTexture Vector2
-> Property DepthTexture Vector2
-> Property DepthTexture Double
-> Property DepthTexture Vector2
-> Property DepthTexture Bool
-> Property DepthTexture Matrix3
-> Property DepthTexture Bool
-> Property DepthTexture Bool
-> Property DepthTexture Bool
-> Property DepthTexture Int
-> Property DepthTexture ColorSpace
-> Property DepthTexture Int
-> Property DepthTexture (Maybe Function)
-> Property DepthTexture Bool
-> Property DepthTexture Object
-> Property DepthTexture Source
-> Method DepthTexture () ()
-> (FromJSVal DepthTexture => Method DepthTexture () DepthTexture)
-> Method DepthTexture Object Object
-> Method DepthTexture () ()
-> Method DepthTexture Vector2 Vector2
-> TextureClass DepthTexture
Method DepthTexture Vector2 Vector2
forall texture.
EventDispatcher texture =>
ReadOnly texture Int
-> ReadOnly texture MisoString
-> Property texture MisoString
-> Property texture Object
-> Property texture [Object]
-> Property texture MappingModes
-> Property texture UvChannel
-> Property texture WrappingModes
-> Property texture WrappingModes
-> Property texture MagnificationFilters
-> Property texture MinificationFilters
-> Property texture Double
-> Property texture Formats
-> Property texture InternalFormats
-> Property texture Types
-> Property texture Vector2
-> Property texture Vector2
-> Property texture Double
-> Property texture Vector2
-> Property texture Bool
-> Property texture Matrix3
-> Property texture Bool
-> Property texture Bool
-> Property texture Bool
-> Property texture Int
-> Property texture ColorSpace
-> Property texture Int
-> Property texture (Maybe Function)
-> Property texture Bool
-> Property texture Object
-> Property texture Source
-> Method texture () ()
-> (FromJSVal texture => Method texture () texture)
-> Method texture Object Object
-> Method texture () ()
-> Method texture Vector2 Vector2
-> TextureClass texture
$cid :: ReadOnly DepthTexture Int
id :: ReadOnly DepthTexture Int
$cuuid :: ReadOnly DepthTexture MisoString
uuid :: ReadOnly DepthTexture MisoString
$cname :: Property DepthTexture MisoString
name :: Property DepthTexture MisoString
$cimage :: Property DepthTexture Object
image :: Property DepthTexture Object
$cmipmaps :: Property DepthTexture [Object]
mipmaps :: Property DepthTexture [Object]
$cmapping :: Property DepthTexture MappingModes
mapping :: Property DepthTexture MappingModes
$cchannel :: Property DepthTexture UvChannel
channel :: Property DepthTexture UvChannel
$cwrapS :: Property DepthTexture WrappingModes
wrapS :: Property DepthTexture WrappingModes
$cwrapT :: Property DepthTexture WrappingModes
wrapT :: Property DepthTexture WrappingModes
$cmagFilter :: Property DepthTexture MagnificationFilters
magFilter :: Property DepthTexture MagnificationFilters
$cminFilter :: Property DepthTexture MinificationFilters
minFilter :: Property DepthTexture MinificationFilters
$canisotropy :: Property DepthTexture Double
anisotropy :: Property DepthTexture Double
$cformat :: Property DepthTexture Formats
format :: Property DepthTexture Formats
$cinternalFormat :: Property DepthTexture InternalFormats
internalFormat :: Property DepthTexture InternalFormats
$ctype_ :: Property DepthTexture Types
type_ :: Property DepthTexture Types
$coffset :: Property DepthTexture Vector2
offset :: Property DepthTexture Vector2
$crepeat :: Property DepthTexture Vector2
repeat :: Property DepthTexture Vector2
$crotation :: Property DepthTexture Double
rotation :: Property DepthTexture Double
$ccenter :: Property DepthTexture Vector2
center :: Property DepthTexture Vector2
$cmatrixAutoUpdate :: Property DepthTexture Bool
matrixAutoUpdate :: Property DepthTexture Bool
$cmatrix :: Property DepthTexture Matrix3
matrix :: Property DepthTexture Matrix3
$cgenerateMipmaps :: Property DepthTexture Bool
generateMipmaps :: Property DepthTexture Bool
$cpremultiplyAlpha :: Property DepthTexture Bool
premultiplyAlpha :: Property DepthTexture Bool
$cflipY :: Property DepthTexture Bool
flipY :: Property DepthTexture Bool
$cunpackAlignment :: Property DepthTexture Int
unpackAlignment :: Property DepthTexture Int
$ccolorSpace :: Property DepthTexture ColorSpace
colorSpace :: Property DepthTexture ColorSpace
$cversion :: Property DepthTexture Int
version :: Property DepthTexture Int
$conUpdate :: Property DepthTexture (Maybe Function)
onUpdate :: Property DepthTexture (Maybe Function)
$cneedsUpdate :: Property DepthTexture Bool
needsUpdate :: Property DepthTexture Bool
$cuserData :: Property DepthTexture Object
userData :: Property DepthTexture Object
$csource :: Property DepthTexture Source
source :: Property DepthTexture Source
$cupdateMatrix :: Method DepthTexture () ()
updateMatrix :: Method DepthTexture () ()
$cclone :: FromJSVal DepthTexture => Method DepthTexture () DepthTexture
clone :: FromJSVal DepthTexture => Method DepthTexture () DepthTexture
$ctoJSON :: Method DepthTexture Object Object
toJSON :: Method DepthTexture Object Object
$cdispose :: Method DepthTexture () ()
dispose :: Method DepthTexture () ()
$ctransformUv :: Method DepthTexture Vector2 Vector2
transformUv :: Method DepthTexture Vector2 Vector2
TextureClass)

instance FromJSVal DepthTexture where
  fromJSVal :: JSVal -> IO (Maybe DepthTexture)
fromJSVal = Maybe DepthTexture -> IO (Maybe DepthTexture)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe DepthTexture -> IO (Maybe DepthTexture))
-> (JSVal -> Maybe DepthTexture)
-> JSVal
-> IO (Maybe DepthTexture)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DepthTexture -> Maybe DepthTexture
forall a. a -> Maybe a
Just (DepthTexture -> Maybe DepthTexture)
-> (JSVal -> DepthTexture) -> JSVal -> Maybe DepthTexture
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> DepthTexture
DepthTexture

-- Constructor

new :: (DepthTextureNewParams t, ToArgs t) => t -> THREE.Three DepthTexture
new :: forall t.
(DepthTextureNewParams t, ToArgs t) =>
t -> IO DepthTexture
new = (JSVal -> DepthTexture) -> MisoString -> t -> IO DepthTexture
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> DepthTexture
DepthTexture MisoString
"DepthTexture"

class DepthTextureNewParams t
instance DepthTextureNewParams ()
instance DepthTextureNewParams Int
instance DepthTextureNewParams (Int, Int)
instance DepthTextureNewParams (Int, Int, Types)
instance DepthTextureNewParams (Int, Int, Types, MappingModes)
instance DepthTextureNewParams (Int, Int, Types, MappingModes, WrappingModes)
instance DepthTextureNewParams (Int, Int, Types, MappingModes, WrappingModes, WrappingModes)
instance DepthTextureNewParams (Int, Int, Types, MappingModes, WrappingModes, WrappingModes, MagnificationFilters)
instance DepthTextureNewParams (Int, Int, Types, MappingModes, WrappingModes, WrappingModes, MagnificationFilters, MinificationFilters)
instance DepthTextureNewParams (Int, Int, Types, MappingModes, WrappingModes, WrappingModes, MagnificationFilters, MinificationFilters, Double)
instance DepthTextureNewParams (Int, Int, Types, MappingModes, WrappingModes, WrappingModes, MagnificationFilters, MinificationFilters, Double, Formats)

-- Property

compareFunction :: Property DepthTexture (Maybe TextureComparisonFunctions)
compareFunction :: Property DepthTexture (Maybe TextureComparisonFunctions)
compareFunction = MisoString
-> Property DepthTexture (Maybe TextureComparisonFunctions)
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object (Maybe field)
optional MisoString
"compareFunction"