-----------------------------------------------------------------------------
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
module THREE.RawShaderMaterial
  ( -- * Types
    RawShaderMaterial (..)
    -- * Constructors
  , THREE.RawShaderMaterial.new
  ) where
-----------------------------------------------------------------------------
import           Miso
-----------------------------------------------------------------------------
import           THREE.EventDispatcher
import           THREE.Internal as THREE
import           THREE.Material
import           THREE.ShaderMaterial
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/materials/RawShaderMaterial
newtype RawShaderMaterial
  = RawShaderMaterial
  { RawShaderMaterial -> JSVal
unRawShaderMaterial :: JSVal
  } deriving newtype (RawShaderMaterial -> IO [JSVal]
(RawShaderMaterial -> IO [JSVal]) -> ToArgs RawShaderMaterial
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: RawShaderMaterial -> IO [JSVal]
toArgs :: RawShaderMaterial -> IO [JSVal]
ToArgs, RawShaderMaterial -> IO Object
(RawShaderMaterial -> IO Object) -> ToObject RawShaderMaterial
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: RawShaderMaterial -> IO Object
toObject :: RawShaderMaterial -> IO Object
ToObject, RawShaderMaterial -> IO JSVal
(RawShaderMaterial -> IO JSVal) -> ToJSVal RawShaderMaterial
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: RawShaderMaterial -> IO JSVal
toJSVal :: RawShaderMaterial -> IO JSVal
ToJSVal)
    deriving anyclass (ToObject RawShaderMaterial
ToJSVal RawShaderMaterial
Property RawShaderMaterial Bool
Property RawShaderMaterial Double
Property RawShaderMaterial Int
Property RawShaderMaterial (Maybe [Plane])
Property RawShaderMaterial (Maybe MisoString)
Property RawShaderMaterial (Maybe Object)
Property RawShaderMaterial (Maybe BlendingEquations)
Property RawShaderMaterial (Maybe DestinationFactors)
Property RawShaderMaterial (Maybe SourceFactors)
Property RawShaderMaterial (Maybe BlendingMode)
Property RawShaderMaterial MisoString
Property RawShaderMaterial Object
Property RawShaderMaterial BlendingEquations
Property RawShaderMaterial SourceFactors
Property RawShaderMaterial DepthMode
Property RawShaderMaterial Side
Property RawShaderMaterial StencilFunctions
Property RawShaderMaterial StencilOperations
Property RawShaderMaterial Color
ReadOnly RawShaderMaterial Bool
ReadOnly RawShaderMaterial MisoString
EventDispatcher RawShaderMaterial
Method RawShaderMaterial () ()
Method RawShaderMaterial () MisoString
Method RawShaderMaterial Object ()
Method RawShaderMaterial Object Object
FromJSVal RawShaderMaterial =>
Method RawShaderMaterial () RawShaderMaterial
(FromJSVal RawShaderMaterial, ToArgs RawShaderMaterial) =>
Method RawShaderMaterial RawShaderMaterial RawShaderMaterial
(EventDispatcher RawShaderMaterial, ToJSVal RawShaderMaterial,
 ToObject RawShaderMaterial) =>
ReadOnly RawShaderMaterial MisoString
-> ReadOnly RawShaderMaterial MisoString
-> ReadOnly RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Double
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Double
-> Property RawShaderMaterial Color
-> Property RawShaderMaterial (Maybe DestinationFactors)
-> Property RawShaderMaterial (Maybe DestinationFactors)
-> Property RawShaderMaterial BlendingEquations
-> Property RawShaderMaterial (Maybe BlendingEquations)
-> Property RawShaderMaterial (Maybe BlendingMode)
-> Property RawShaderMaterial SourceFactors
-> Property RawShaderMaterial (Maybe SourceFactors)
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial (Maybe [Plane])
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial (Maybe Object)
-> Property RawShaderMaterial DepthMode
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Int
-> Property RawShaderMaterial StencilFunctions
-> Property RawShaderMaterial Int
-> Property RawShaderMaterial Int
-> Property RawShaderMaterial StencilOperations
-> Property RawShaderMaterial StencilOperations
-> Property RawShaderMaterial StencilOperations
-> Property RawShaderMaterial Int
-> Property RawShaderMaterial MisoString
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Double
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Int
-> Property RawShaderMaterial Int
-> Property RawShaderMaterial (Maybe MisoString)
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Side
-> Property RawShaderMaterial Side
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Int
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Object
-> (FromJSVal RawShaderMaterial =>
    Method RawShaderMaterial () RawShaderMaterial)
-> ((FromJSVal RawShaderMaterial, ToArgs RawShaderMaterial) =>
    Method RawShaderMaterial RawShaderMaterial RawShaderMaterial)
-> Method RawShaderMaterial () ()
-> Method RawShaderMaterial () MisoString
-> Method RawShaderMaterial Object ()
-> Method RawShaderMaterial Object Object
-> Material RawShaderMaterial
forall material.
(EventDispatcher material, ToJSVal material, ToObject material) =>
ReadOnly material MisoString
-> ReadOnly material MisoString
-> ReadOnly material Bool
-> Property material Bool
-> Property material Double
-> Property material Bool
-> Property material Double
-> Property material Color
-> Property material (Maybe DestinationFactors)
-> Property material (Maybe DestinationFactors)
-> Property material BlendingEquations
-> Property material (Maybe BlendingEquations)
-> Property material (Maybe BlendingMode)
-> Property material SourceFactors
-> Property material (Maybe SourceFactors)
-> Property material Bool
-> Property material (Maybe [Plane])
-> Property material Bool
-> Property material Bool
-> Property material (Maybe Object)
-> Property material DepthMode
-> Property material Bool
-> Property material Bool
-> Property material Bool
-> Property material Bool
-> Property material Int
-> Property material StencilFunctions
-> Property material Int
-> Property material Int
-> Property material StencilOperations
-> Property material StencilOperations
-> Property material StencilOperations
-> Property material Int
-> Property material MisoString
-> Property material Bool
-> Property material Double
-> Property material Bool
-> Property material Int
-> Property material Int
-> Property material (Maybe MisoString)
-> Property material Bool
-> Property material Bool
-> Property material Side
-> Property material Side
-> Property material Bool
-> Property material Bool
-> Property material Int
-> Property material Bool
-> Property material Bool
-> Property material Object
-> (FromJSVal material => Method material () material)
-> ((FromJSVal material, ToArgs material) =>
    Method material material material)
-> Method material () ()
-> Method material () MisoString
-> Method material Object ()
-> Method material Object Object
-> Material material
$ctype_ :: ReadOnly RawShaderMaterial MisoString
type_ :: ReadOnly RawShaderMaterial MisoString
$cuuid :: ReadOnly RawShaderMaterial MisoString
uuid :: ReadOnly RawShaderMaterial MisoString
$cisMaterial :: ReadOnly RawShaderMaterial Bool
isMaterial :: ReadOnly RawShaderMaterial Bool
$calphaHash :: Property RawShaderMaterial Bool
alphaHash :: Property RawShaderMaterial Bool
$calphaTest :: Property RawShaderMaterial Double
alphaTest :: Property RawShaderMaterial Double
$calphaToCoverage :: Property RawShaderMaterial Bool
alphaToCoverage :: Property RawShaderMaterial Bool
$cblendAlpha :: Property RawShaderMaterial Double
blendAlpha :: Property RawShaderMaterial Double
$cblendColor :: Property RawShaderMaterial Color
blendColor :: Property RawShaderMaterial Color
$cblendDst :: Property RawShaderMaterial (Maybe DestinationFactors)
blendDst :: Property RawShaderMaterial (Maybe DestinationFactors)
$cblendDstAlpha :: Property RawShaderMaterial (Maybe DestinationFactors)
blendDstAlpha :: Property RawShaderMaterial (Maybe DestinationFactors)
$cblendEquation :: Property RawShaderMaterial BlendingEquations
blendEquation :: Property RawShaderMaterial BlendingEquations
$cblendEquationAlpha :: Property RawShaderMaterial (Maybe BlendingEquations)
blendEquationAlpha :: Property RawShaderMaterial (Maybe BlendingEquations)
$cblending :: Property RawShaderMaterial (Maybe BlendingMode)
blending :: Property RawShaderMaterial (Maybe BlendingMode)
$cblendSrc :: Property RawShaderMaterial SourceFactors
blendSrc :: Property RawShaderMaterial SourceFactors
$cblendSrcAlpha :: Property RawShaderMaterial (Maybe SourceFactors)
blendSrcAlpha :: Property RawShaderMaterial (Maybe SourceFactors)
$cclipIntersection :: Property RawShaderMaterial Bool
clipIntersection :: Property RawShaderMaterial Bool
$cclippingPlanes :: Property RawShaderMaterial (Maybe [Plane])
clippingPlanes :: Property RawShaderMaterial (Maybe [Plane])
$cclipShadows :: Property RawShaderMaterial Bool
clipShadows :: Property RawShaderMaterial Bool
$ccolorWrite :: Property RawShaderMaterial Bool
colorWrite :: Property RawShaderMaterial Bool
$cdefines :: Property RawShaderMaterial (Maybe Object)
defines :: Property RawShaderMaterial (Maybe Object)
$cdepthFunc :: Property RawShaderMaterial DepthMode
depthFunc :: Property RawShaderMaterial DepthMode
$cdepthTest :: Property RawShaderMaterial Bool
depthTest :: Property RawShaderMaterial Bool
$cdepthWrite :: Property RawShaderMaterial Bool
depthWrite :: Property RawShaderMaterial Bool
$cforceSinglePass :: Property RawShaderMaterial Bool
forceSinglePass :: Property RawShaderMaterial Bool
$cstencilWrite :: Property RawShaderMaterial Bool
stencilWrite :: Property RawShaderMaterial Bool
$cstencilWriteMask :: Property RawShaderMaterial Int
stencilWriteMask :: Property RawShaderMaterial Int
$cstencilFunc :: Property RawShaderMaterial StencilFunctions
stencilFunc :: Property RawShaderMaterial StencilFunctions
$cstencilRef :: Property RawShaderMaterial Int
stencilRef :: Property RawShaderMaterial Int
$cstencilFuncMask :: Property RawShaderMaterial Int
stencilFuncMask :: Property RawShaderMaterial Int
$cstencilFail :: Property RawShaderMaterial StencilOperations
stencilFail :: Property RawShaderMaterial StencilOperations
$cstencilZFail :: Property RawShaderMaterial StencilOperations
stencilZFail :: Property RawShaderMaterial StencilOperations
$cstencilZPass :: Property RawShaderMaterial StencilOperations
stencilZPass :: Property RawShaderMaterial StencilOperations
$cid :: Property RawShaderMaterial Int
id :: Property RawShaderMaterial Int
$cname :: Property RawShaderMaterial MisoString
name :: Property RawShaderMaterial MisoString
$cneedsUpdate :: Property RawShaderMaterial Bool
needsUpdate :: Property RawShaderMaterial Bool
$copacity :: Property RawShaderMaterial Double
opacity :: Property RawShaderMaterial Double
$cpolygonOffset :: Property RawShaderMaterial Bool
polygonOffset :: Property RawShaderMaterial Bool
$cpolygonOffsetFactor :: Property RawShaderMaterial Int
polygonOffsetFactor :: Property RawShaderMaterial Int
$cpolygonOffsetUnits :: Property RawShaderMaterial Int
polygonOffsetUnits :: Property RawShaderMaterial Int
$cprecision :: Property RawShaderMaterial (Maybe MisoString)
precision :: Property RawShaderMaterial (Maybe MisoString)
$cpremultipliedAlpha :: Property RawShaderMaterial Bool
premultipliedAlpha :: Property RawShaderMaterial Bool
$cdithering :: Property RawShaderMaterial Bool
dithering :: Property RawShaderMaterial Bool
$cshadowSide :: Property RawShaderMaterial Side
shadowSide :: Property RawShaderMaterial Side
$cside :: Property RawShaderMaterial Side
side :: Property RawShaderMaterial Side
$ctoneMapped :: Property RawShaderMaterial Bool
toneMapped :: Property RawShaderMaterial Bool
$ctransparent :: Property RawShaderMaterial Bool
transparent :: Property RawShaderMaterial Bool
$cversion :: Property RawShaderMaterial Int
version :: Property RawShaderMaterial Int
$cvertexColors :: Property RawShaderMaterial Bool
vertexColors :: Property RawShaderMaterial Bool
$cvisible :: Property RawShaderMaterial Bool
visible :: Property RawShaderMaterial Bool
$cuserData :: Property RawShaderMaterial Object
userData :: Property RawShaderMaterial Object
$cclone :: FromJSVal RawShaderMaterial =>
Method RawShaderMaterial () RawShaderMaterial
clone :: FromJSVal RawShaderMaterial =>
Method RawShaderMaterial () RawShaderMaterial
$ccopy :: (FromJSVal RawShaderMaterial, ToArgs RawShaderMaterial) =>
Method RawShaderMaterial RawShaderMaterial RawShaderMaterial
copy :: (FromJSVal RawShaderMaterial, ToArgs RawShaderMaterial) =>
Method RawShaderMaterial RawShaderMaterial RawShaderMaterial
$cdispose :: Method RawShaderMaterial () ()
dispose :: Method RawShaderMaterial () ()
$ccustomProgramCacheKey :: Method RawShaderMaterial () MisoString
customProgramCacheKey :: Method RawShaderMaterial () MisoString
$csetValues :: Method RawShaderMaterial Object ()
setValues :: Method RawShaderMaterial Object ()
$ctoJSON :: Method RawShaderMaterial Object Object
toJSON :: Method RawShaderMaterial Object Object
Material, ToObject RawShaderMaterial
ToJSVal RawShaderMaterial
Method RawShaderMaterial (MisoString, Function) ()
Method RawShaderMaterial Object ()
(ToObject RawShaderMaterial, ToJSVal RawShaderMaterial) =>
Method RawShaderMaterial (MisoString, Function) ()
-> Method RawShaderMaterial (MisoString, Function) ()
-> Method RawShaderMaterial (MisoString, Function) ()
-> Method RawShaderMaterial Object ()
-> EventDispatcher RawShaderMaterial
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 RawShaderMaterial (MisoString, Function) ()
addEventListener :: Method RawShaderMaterial (MisoString, Function) ()
$chasEventListener :: Method RawShaderMaterial (MisoString, Function) ()
hasEventListener :: Method RawShaderMaterial (MisoString, Function) ()
$cremoveEventListener :: Method RawShaderMaterial (MisoString, Function) ()
removeEventListener :: Method RawShaderMaterial (MisoString, Function) ()
$cdispatchEvent :: Method RawShaderMaterial Object ()
dispatchEvent :: Method RawShaderMaterial Object ()
EventDispatcher, Property RawShaderMaterial Bool
Property RawShaderMaterial Double
Property RawShaderMaterial (Maybe MisoString)
Property RawShaderMaterial MisoString
Property RawShaderMaterial Object
Property RawShaderMaterial GlslVersion
Material RawShaderMaterial
Material RawShaderMaterial =>
Property RawShaderMaterial Bool
-> Property RawShaderMaterial Object
-> Property RawShaderMaterial Object
-> Property RawShaderMaterial Object
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial MisoString
-> Property RawShaderMaterial GlslVersion
-> Property RawShaderMaterial (Maybe MisoString)
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Double
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Object
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial MisoString
-> Property RawShaderMaterial Bool
-> Property RawShaderMaterial Double
-> ShaderMaterialClass RawShaderMaterial
forall material.
Material material =>
Property material Bool
-> Property material Object
-> Property material Object
-> Property material Object
-> Property material Bool
-> Property material MisoString
-> Property material GlslVersion
-> Property material (Maybe MisoString)
-> Property material Bool
-> Property material Double
-> Property material Bool
-> Property material Object
-> Property material Bool
-> Property material Bool
-> Property material MisoString
-> Property material Bool
-> Property material Double
-> ShaderMaterialClass material
$cclipping :: Property RawShaderMaterial Bool
clipping :: Property RawShaderMaterial Bool
$cdefaultAttributeValues :: Property RawShaderMaterial Object
defaultAttributeValues :: Property RawShaderMaterial Object
$cdefines :: Property RawShaderMaterial Object
defines :: Property RawShaderMaterial Object
$cextensions :: Property RawShaderMaterial Object
extensions :: Property RawShaderMaterial Object
$cfog :: Property RawShaderMaterial Bool
fog :: Property RawShaderMaterial Bool
$cfragmentShader :: Property RawShaderMaterial MisoString
fragmentShader :: Property RawShaderMaterial MisoString
$cglslVersion :: Property RawShaderMaterial GlslVersion
glslVersion :: Property RawShaderMaterial GlslVersion
$cindex0AttributeName :: Property RawShaderMaterial (Maybe MisoString)
index0AttributeName :: Property RawShaderMaterial (Maybe MisoString)
$clights :: Property RawShaderMaterial Bool
lights :: Property RawShaderMaterial Bool
$clinewidth :: Property RawShaderMaterial Double
linewidth :: Property RawShaderMaterial Double
$cflatShading :: Property RawShaderMaterial Bool
flatShading :: Property RawShaderMaterial Bool
$cuniforms :: Property RawShaderMaterial Object
uniforms :: Property RawShaderMaterial Object
$cuniformsNeedUpdate :: Property RawShaderMaterial Bool
uniformsNeedUpdate :: Property RawShaderMaterial Bool
$cvertexColors :: Property RawShaderMaterial Bool
vertexColors :: Property RawShaderMaterial Bool
$cvertexShader :: Property RawShaderMaterial MisoString
vertexShader :: Property RawShaderMaterial MisoString
$cwireframe :: Property RawShaderMaterial Bool
wireframe :: Property RawShaderMaterial Bool
$cwireframeLinewidth :: Property RawShaderMaterial Double
wireframeLinewidth :: Property RawShaderMaterial Double
ShaderMaterialClass)

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

-- Constructor

new :: THREE.Three RawShaderMaterial
new :: IO RawShaderMaterial
new = (JSVal -> RawShaderMaterial)
-> MisoString -> () -> IO RawShaderMaterial
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> RawShaderMaterial
RawShaderMaterial MisoString
"RawShaderMaterial" ()