flaw-graphics-0.1.0.0

LicenseMIT
Safe HaskellNone
LanguageHaskell2010

Flaw.Graphics.Program

Description

 
Synopsis

Documentation

type Program a = ReaderT (IORef State) IO a Source #

Program monad.

class OfValueType a => OfScalarType a where Source #

Class of scalar types which can be used in program.

Methods

scalarType :: a -> ScalarType Source #

Get program scalar type. Argument is not used.

class OfValueType a => OfAttributeType a where Source #

Class of types which can be used in vertex attribute.

Associated Types

data AttributeFormat a :: * Source #

Typed attibute format.

Instances
OfAttributeType Float Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat Float :: Type Source #

OfAttributeType Int32 Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat Int32 :: Type Source #

OfAttributeType Word32 Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat Word32 :: Type Source #

(OfScalarType a, Vectorized a, OfAttributeType a) => OfAttributeType (Mat4x4 a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat (Mat4x4 a) :: Type Source #

(OfScalarType a, Vectorized a, OfAttributeType a) => OfAttributeType (Mat3x4 a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat (Mat3x4 a) :: Type Source #

(OfScalarType a, Vectorized a, OfAttributeType a) => OfAttributeType (Mat3x3 a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat (Mat3x3 a) :: Type Source #

(OfScalarType a, Vectorized a, OfAttributeType a) => OfAttributeType (Vec4 a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat (Vec4 a) :: Type Source #

(OfScalarType a, Vectorized a, OfAttributeType a) => OfAttributeType (Vec3 a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat (Vec3 a) :: Type Source #

(OfScalarType a, Vectorized a, OfAttributeType a) => OfAttributeType (Vec2 a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat (Vec2 a) :: Type Source #

(OfScalarType a, Vectorized a, OfAttributeType a) => OfAttributeType (Vec1 a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

data AttributeFormat (Vec1 a) :: Type Source #

data AttributeType Source #

Attribute format ids.

Instances
Eq AttributeType Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Ord AttributeType Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Show AttributeType Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Generic AttributeType Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type Rep AttributeType :: Type -> Type #

Serialize AttributeType Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type Rep AttributeType Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type Rep AttributeType = D1 (MetaData "AttributeType" "Flaw.Graphics.Program.Internal" "flaw-graphics-0.1.0.0-G4aqR0nuB7u1vHlmL38e2" False) ((((C1 (MetaCons "ATFloat32" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "ATFloat16" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "ATInt32" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Normalization)))) :+: ((C1 (MetaCons "ATInt16" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Normalization)) :+: C1 (MetaCons "ATInt8" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Normalization))) :+: (C1 (MetaCons "ATUint32" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Normalization)) :+: C1 (MetaCons "ATUint16" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Normalization))))) :+: ((C1 (MetaCons "ATUint8" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Normalization)) :+: (C1 (MetaCons "ATVec1" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATVec2" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)))) :+: ((C1 (MetaCons "ATVec3" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATVec4" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType))) :+: (C1 (MetaCons "ATMat1x1" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATMat1x2" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)))))) :+: (((C1 (MetaCons "ATMat1x3" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: (C1 (MetaCons "ATMat1x4" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATMat2x1" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)))) :+: ((C1 (MetaCons "ATMat2x2" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATMat2x3" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType))) :+: (C1 (MetaCons "ATMat2x4" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATMat3x1" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType))))) :+: ((C1 (MetaCons "ATMat3x2" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: (C1 (MetaCons "ATMat3x3" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATMat3x4" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)))) :+: ((C1 (MetaCons "ATMat4x1" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATMat4x2" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType))) :+: (C1 (MetaCons "ATMat4x3" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)) :+: C1 (MetaCons "ATMat4x4" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AttributeType)))))))

data Normalization Source #

Normalization mode.

Constructors

NonNormalized 
Normalized 
Instances
Eq Normalization Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Ord Normalization Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Show Normalization Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Generic Normalization Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type Rep Normalization :: Type -> Type #

Serialize Normalization Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type Rep Normalization Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type Rep Normalization = D1 (MetaData "Normalization" "Flaw.Graphics.Program.Internal" "flaw-graphics-0.1.0.0-G4aqR0nuB7u1vHlmL38e2" False) (C1 (MetaCons "NonNormalized" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Normalized" PrefixI False) (U1 :: Type -> Type))

data Node a Source #

Instances
(OfValueType a, Floating a) => Floating (Node a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

pi :: Node a #

exp :: Node a -> Node a #

log :: Node a -> Node a #

sqrt :: Node a -> Node a #

(**) :: Node a -> Node a -> Node a #

logBase :: Node a -> Node a -> Node a #

sin :: Node a -> Node a #

cos :: Node a -> Node a #

tan :: Node a -> Node a #

asin :: Node a -> Node a #

acos :: Node a -> Node a #

atan :: Node a -> Node a #

sinh :: Node a -> Node a #

cosh :: Node a -> Node a #

tanh :: Node a -> Node a #

asinh :: Node a -> Node a #

acosh :: Node a -> Node a #

atanh :: Node a -> Node a #

log1p :: Node a -> Node a #

expm1 :: Node a -> Node a #

log1pexp :: Node a -> Node a #

log1mexp :: Node a -> Node a #

(OfValueType a, Fractional a) => Fractional (Node a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

(/) :: Node a -> Node a -> Node a #

recip :: Node a -> Node a #

fromRational :: Rational -> Node a #

(OfValueType a, Num a) => Num (Node a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

(+) :: Node a -> Node a -> Node a #

(-) :: Node a -> Node a -> Node a #

(*) :: Node a -> Node a -> Node a #

negate :: Node a -> Node a #

abs :: Node a -> Node a #

signum :: Node a -> Node a #

fromInteger :: Integer -> Node a #

Show (Node a) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

showsPrec :: Int -> Node a -> ShowS #

show :: Node a -> String #

showList :: [Node a] -> ShowS #

(OfVectorType v, OfVectorType (SwizzleVecResultX1 v), SwizzleVecX1 v) => SwizzleVecX1 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultX1 (Node v) :: Type #

Methods

x__ :: Node v -> SwizzleVecResultX1 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultY1 v), SwizzleVecY1 v) => SwizzleVecY1 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultY1 (Node v) :: Type #

Methods

y__ :: Node v -> SwizzleVecResultY1 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultZ1 v), SwizzleVecZ1 v) => SwizzleVecZ1 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultZ1 (Node v) :: Type #

Methods

z__ :: Node v -> SwizzleVecResultZ1 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultW1 v), SwizzleVecW1 v) => SwizzleVecW1 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultW1 (Node v) :: Type #

Methods

w__ :: Node v -> SwizzleVecResultW1 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultX2 v), SwizzleVecX2 v) => SwizzleVecX2 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultX2 (Node v) :: Type #

Methods

xx__ :: Node v -> SwizzleVecResultX2 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultY2 v), SwizzleVecY2 v) => SwizzleVecY2 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultY2 (Node v) :: Type #

(OfVectorType v, OfVectorType (SwizzleVecResultZ2 v), SwizzleVecZ2 v) => SwizzleVecZ2 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultZ2 (Node v) :: Type #

(OfVectorType v, OfVectorType (SwizzleVecResultW2 v), SwizzleVecW2 v) => SwizzleVecW2 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultW2 (Node v) :: Type #

(OfVectorType v, OfVectorType (SwizzleVecResultX3 v), SwizzleVecX3 v) => SwizzleVecX3 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultX3 (Node v) :: Type #

Methods

xxx__ :: Node v -> SwizzleVecResultX3 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultY3 v), SwizzleVecY3 v) => SwizzleVecY3 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultY3 (Node v) :: Type #

(OfVectorType v, OfVectorType (SwizzleVecResultZ3 v), SwizzleVecZ3 v) => SwizzleVecZ3 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultZ3 (Node v) :: Type #

(OfVectorType v, OfVectorType (SwizzleVecResultW3 v), SwizzleVecW3 v) => SwizzleVecW3 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultW3 (Node v) :: Type #

Methods

xxw__ :: Node v -> SwizzleVecResultW3 (Node v) #

xyw__ :: Node v -> SwizzleVecResultW3 (Node v) #

xzw__ :: Node v -> SwizzleVecResultW3 (Node v) #

xwx__ :: Node v -> SwizzleVecResultW3 (Node v) #

xwy__ :: Node v -> SwizzleVecResultW3 (Node v) #

xwz__ :: Node v -> SwizzleVecResultW3 (Node v) #

xww__ :: Node v -> SwizzleVecResultW3 (Node v) #

yxw__ :: Node v -> SwizzleVecResultW3 (Node v) #

yyw__ :: Node v -> SwizzleVecResultW3 (Node v) #

yzw__ :: Node v -> SwizzleVecResultW3 (Node v) #

ywx__ :: Node v -> SwizzleVecResultW3 (Node v) #

ywy__ :: Node v -> SwizzleVecResultW3 (Node v) #

ywz__ :: Node v -> SwizzleVecResultW3 (Node v) #

yww__ :: Node v -> SwizzleVecResultW3 (Node v) #

zxw__ :: Node v -> SwizzleVecResultW3 (Node v) #

zyw__ :: Node v -> SwizzleVecResultW3 (Node v) #

zzw__ :: Node v -> SwizzleVecResultW3 (Node v) #

zwx__ :: Node v -> SwizzleVecResultW3 (Node v) #

zwy__ :: Node v -> SwizzleVecResultW3 (Node v) #

zwz__ :: Node v -> SwizzleVecResultW3 (Node v) #

zww__ :: Node v -> SwizzleVecResultW3 (Node v) #

wxx__ :: Node v -> SwizzleVecResultW3 (Node v) #

wxy__ :: Node v -> SwizzleVecResultW3 (Node v) #

wxz__ :: Node v -> SwizzleVecResultW3 (Node v) #

wxw__ :: Node v -> SwizzleVecResultW3 (Node v) #

wyx__ :: Node v -> SwizzleVecResultW3 (Node v) #

wyy__ :: Node v -> SwizzleVecResultW3 (Node v) #

wyz__ :: Node v -> SwizzleVecResultW3 (Node v) #

wyw__ :: Node v -> SwizzleVecResultW3 (Node v) #

wzx__ :: Node v -> SwizzleVecResultW3 (Node v) #

wzy__ :: Node v -> SwizzleVecResultW3 (Node v) #

wzz__ :: Node v -> SwizzleVecResultW3 (Node v) #

wzw__ :: Node v -> SwizzleVecResultW3 (Node v) #

wwx__ :: Node v -> SwizzleVecResultW3 (Node v) #

wwy__ :: Node v -> SwizzleVecResultW3 (Node v) #

wwz__ :: Node v -> SwizzleVecResultW3 (Node v) #

www__ :: Node v -> SwizzleVecResultW3 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultX4 v), SwizzleVecX4 v) => SwizzleVecX4 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultX4 (Node v) :: Type #

Methods

xxxx__ :: Node v -> SwizzleVecResultX4 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultY4 v), SwizzleVecY4 v) => SwizzleVecY4 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultY4 (Node v) :: Type #

(OfVectorType v, OfVectorType (SwizzleVecResultZ4 v), SwizzleVecZ4 v) => SwizzleVecZ4 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultZ4 (Node v) :: Type #

Methods

xxxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xxyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xxzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xxzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xxzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xyxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xyyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xyzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xyzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xyzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzxx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzxy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzyx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzyy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

xzzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yxxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yxyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yxzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yxzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yxzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yyxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yyyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yyzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yyzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yyzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzxx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzxy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzyx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzyy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

yzzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxxx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxxy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxyx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxyy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zxzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyxx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyxy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyyx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyyy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zyzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzxx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzxy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzxz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzyx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzyy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzyz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzzx__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzzy__ :: Node v -> SwizzleVecResultZ4 (Node v) #

zzzz__ :: Node v -> SwizzleVecResultZ4 (Node v) #

(OfVectorType v, OfVectorType (SwizzleVecResultW4 v), SwizzleVecW4 v) => SwizzleVecW4 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type SwizzleVecResultW4 (Node v) :: Type #

Methods

xxxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xxyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xxzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xxwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

xxwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

xxwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

xxww__ :: Node v -> SwizzleVecResultW4 (Node v) #

xyxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xyyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xyzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xywx__ :: Node v -> SwizzleVecResultW4 (Node v) #

xywy__ :: Node v -> SwizzleVecResultW4 (Node v) #

xywz__ :: Node v -> SwizzleVecResultW4 (Node v) #

xyww__ :: Node v -> SwizzleVecResultW4 (Node v) #

xzxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xzyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xzzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xzwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

xzwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

xzwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

xzww__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwxx__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwxy__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwxz__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwyx__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwyy__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwyz__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwzx__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwzy__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwzz__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

xwww__ :: Node v -> SwizzleVecResultW4 (Node v) #

yxxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yxyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yxzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yxwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

yxwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

yxwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

yxww__ :: Node v -> SwizzleVecResultW4 (Node v) #

yyxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yyyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yyzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yywx__ :: Node v -> SwizzleVecResultW4 (Node v) #

yywy__ :: Node v -> SwizzleVecResultW4 (Node v) #

yywz__ :: Node v -> SwizzleVecResultW4 (Node v) #

yyww__ :: Node v -> SwizzleVecResultW4 (Node v) #

yzxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yzyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yzzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

yzwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

yzwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

yzwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

yzww__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywxx__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywxy__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywxz__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywyx__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywyy__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywyz__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywzx__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywzy__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywzz__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

ywww__ :: Node v -> SwizzleVecResultW4 (Node v) #

zxxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zxyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zxzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zxwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

zxwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

zxwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

zxww__ :: Node v -> SwizzleVecResultW4 (Node v) #

zyxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zyyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zyzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zywx__ :: Node v -> SwizzleVecResultW4 (Node v) #

zywy__ :: Node v -> SwizzleVecResultW4 (Node v) #

zywz__ :: Node v -> SwizzleVecResultW4 (Node v) #

zyww__ :: Node v -> SwizzleVecResultW4 (Node v) #

zzxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zzyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zzzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zzwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

zzwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

zzwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

zzww__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwxx__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwxy__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwxz__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwyx__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwyy__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwyz__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwzx__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwzy__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwzz__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

zwww__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxxx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxxy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxxz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxyx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxyy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxyz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxzx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxzy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxzz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wxww__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyxx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyxy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyxz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyyx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyyy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyyz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyzx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyzy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyzz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wywx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wywy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wywz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wyww__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzxx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzxy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzxz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzyx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzyy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzyz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzzx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzzy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzzz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wzww__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwxx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwxy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwxz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwxw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwyx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwyy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwyz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwyw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwzx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwzy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwzz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwzw__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwwx__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwwy__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwwz__ :: Node v -> SwizzleVecResultW4 (Node v) #

wwww__ :: Node v -> SwizzleVecResultW4 (Node v) #

(OfVectorType v, Dot v) => Dot (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

dot :: Node v -> Node v -> VecElement (Node v) #

(OfVectorType v, Cross v) => Cross (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

cross :: Node v -> Node v -> Node v #

(OfVectorType v, Norm v) => Norm (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

norm :: Node v -> VecElement (Node v) #

norm2 :: Node v -> VecElement (Node v) #

(OfVectorType v, Normalize v) => Normalize (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

normalize :: Node v -> Node v #

(OfVectorType v, VecX v) => VecX (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

x_ :: Node v -> VecElement (Node v) #

(OfVectorType v, VecY v) => VecY (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

y_ :: Node v -> VecElement (Node v) #

(OfVectorType v, VecZ v) => VecZ (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

z_ :: Node v -> VecElement (Node v) #

(OfVectorType v, VecW v) => VecW (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Methods

w_ :: Node v -> VecElement (Node v) #

OfVectorType v => Vec (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type VecElement (Node v) :: Type #

Methods

vecLength :: Node v -> Int #

vecToList :: Node v -> [VecElement (Node v)] #

vecFromScalar :: VecElement (Node v) -> Node v #

(OfValueType a, OfValueType b, OfValueType (MulResult a b), Mul a b) => Mul (Node a) (Node b) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

Associated Types

type MulResult (Node a) (Node b) :: Type #

Methods

mul :: Node a -> Node b -> MulResult (Node a) (Node b) #

type SwizzleVecResultX1 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultY1 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultZ1 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultW1 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultX2 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultY2 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultZ2 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultW2 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultX3 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultY3 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultZ3 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultW3 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultX4 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultY4 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultZ4 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type SwizzleVecResultW4 (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type VecElement (Node v) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type MulResult (Node a) (Node b) Source # 
Instance details

Defined in Flaw.Graphics.Program.Internal

type MulResult (Node a) (Node b) = Node (MulResult a b)

cnst :: OfValueType a => a -> Node a Source #

cvec11 :: forall a. (OfScalarType a, Vectorized a) => Node a -> Node a -> Node (Vec2 a) Source #

cvec111 :: forall a. (OfScalarType a, Vectorized a) => Node a -> Node a -> Node a -> Node (Vec3 a) Source #

cvec12 :: forall a. (OfScalarType a, Vectorized a) => Node a -> Node (Vec2 a) -> Node (Vec3 a) Source #

cvec21 :: forall a. (OfScalarType a, Vectorized a) => Node (Vec2 a) -> Node a -> Node (Vec3 a) Source #

cvec1111 :: forall a. (OfScalarType a, Vectorized a) => Node a -> Node a -> Node a -> Node a -> Node (Vec4 a) Source #

cvec112 :: forall a. (OfScalarType a, Vectorized a) => Node a -> Node a -> Node (Vec2 a) -> Node (Vec4 a) Source #

cvec121 :: forall a. (OfScalarType a, Vectorized a) => Node a -> Node (Vec2 a) -> Node a -> Node (Vec4 a) Source #

cvec211 :: forall a. (OfScalarType a, Vectorized a) => Node (Vec2 a) -> Node a -> Node a -> Node (Vec4 a) Source #

cvec22 :: forall a. (OfScalarType a, Vectorized a) => Node (Vec2 a) -> Node (Vec2 a) -> Node (Vec4 a) Source #

cvec13 :: forall a. (OfScalarType a, Vectorized a) => Node a -> Node (Vec3 a) -> Node (Vec4 a) Source #

cvec31 :: forall a. (OfScalarType a, Vectorized a) => Node (Vec3 a) -> Node a -> Node (Vec4 a) Source #

Create vector as a combination of scalars/vectors.

cast :: (OfValueType a, OfValueType b) => Node a -> Node b Source #

Cast value to other type.

attribute Source #

Arguments

:: OfAttributeType a 
=> Int

Slot.

-> Int

Offset.

-> Int

Divisor.

-> AttributeFormat a

Format.

-> Program (Node a) 

Define vertex attribute using typed format.

attributeWithType Source #

Arguments

:: OfAttributeType a 
=> Int

Slot.

-> Int

Offset.

-> Int

Divisor.

-> AttributeType

Attribute type.

-> Program (Node a) 

Define vertex attribute using untyped AttributeType.

data UniformStorage d Source #

Helper object for uniform buffer.

uniformArray Source #

Arguments

:: (OfValueType a, Storable a) 
=> Int

size

-> UniformBufferSlot

slot

-> IO (Node [a]) 

setUniform :: (OfValueType a, Storable a) => UniformStorage d -> Node a -> a -> IO () Source #

sample :: (OfVectorType (v c), OfVectorType (v Int32)) => SamplerNode s (v c) -> Node (v c) -> Node s Source #

sampleOffset :: (OfVectorType (v c), OfVectorType (v Int32)) => SamplerNode s (v c) -> Node (v c) -> Node (v Int32) -> Node s Source #

sampleLod :: (OfVectorType (v c), OfVectorType (v Int32)) => SamplerNode s (v c) -> Node (v c) -> Node c -> Node s Source #

sampleLodOffset :: (OfVectorType (v c), OfVectorType (v Int32)) => SamplerNode s (v c) -> Node (v c) -> Node c -> Node (v Int32) -> Node s Source #

sampleBias :: (OfVectorType (v c), OfVectorType (v Int32)) => SamplerNode s (v c) -> Node (v c) -> Node c -> Node s Source #

sampleBiasOffset :: (OfVectorType (v c), OfVectorType (v Int32)) => SamplerNode s (v c) -> Node (v c) -> Node c -> Node (v Int32) -> Node s Source #

sampleGrad :: (OfVectorType (v c), OfVectorType (v Int32)) => SamplerNode s (v c) -> Node (v c) -> Node (v c) -> Node (v c) -> Node s Source #

sampleGradOffset :: (OfVectorType (v c), OfVectorType (v Int32)) => SamplerNode s (v c) -> Node (v c) -> Node (v c) -> Node (v c) -> Node (v Int32) -> Node s Source #

(!) :: (OfValueType a, OfValueType b, Integral b) => Node [a] -> Node b -> Node a Source #

min_ :: OfValueType a => Node a -> Node a -> Node a Source #

max_ :: OfValueType a => Node a -> Node a -> Node a Source #

clamp :: OfValueType a => Node a -> Node a -> Node a -> Node a Source #

lerp :: OfValueType a => Node a -> Node a -> Node a -> Node a Source #

if_ :: OfValueType a => Node Bool -> Node a -> Node a -> Node a Source #

ddx :: OfValueType a => Node a -> Node a Source #

ddy :: OfValueType a => Node a -> Node a Source #