mischief-render
Safe HaskellNone
LanguageGHC2024

Mischief.Render.Material.Definition

Documentation

newtype DefaultVI f Source #

Constructors

DefaultVI (BuiltIn f "vertex_index" Uint) 

Instances

Instances details
ShaderParam DefaultVI Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Methods

collectParams :: Params

paramDefinition :: ParamDefinition

dummyParam :: DefaultVI GPU

collectValues :: DefaultVI GPU -> Values

Generic (DefaultVI f) Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Associated Types

type Rep (DefaultVI f) 
Instance details

Defined in Mischief.Render.Material.Definition

type Rep (DefaultVI f) = D1 ('MetaData "DefaultVI" "Mischief.Render.Material.Definition" "mischief-render-0.1.0.0-inplace" 'True) (C1 ('MetaCons "DefaultVI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BuiltIn f "vertex_index" Uint))))

Methods

from :: DefaultVI f -> Rep (DefaultVI f) x #

to :: Rep (DefaultVI f) x -> DefaultVI f #

type Rep (DefaultVI f) Source # 
Instance details

Defined in Mischief.Render.Material.Definition

type Rep (DefaultVI f) = D1 ('MetaData "DefaultVI" "Mischief.Render.Material.Definition" "mischief-render-0.1.0.0-inplace" 'True) (C1 ('MetaCons "DefaultVI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BuiltIn f "vertex_index" Uint))))

newtype DefaultVO f Source #

Constructors

DefaultVO 

Fields

Instances

Instances details
ShaderParam DefaultVO Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Methods

collectParams :: Params

paramDefinition :: ParamDefinition

dummyParam :: DefaultVO GPU

collectValues :: DefaultVO GPU -> Values

Generic (DefaultVO f) Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Associated Types

type Rep (DefaultVO f) 
Instance details

Defined in Mischief.Render.Material.Definition

type Rep (DefaultVO f) = D1 ('MetaData "DefaultVO" "Mischief.Render.Material.Definition" "mischief-render-0.1.0.0-inplace" 'True) (C1 ('MetaCons "DefaultVO" 'PrefixI 'True) (S1 ('MetaSel ('Just "pos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BuiltIn f "position" (Vec 4 Float)))))

Methods

from :: DefaultVO f -> Rep (DefaultVO f) x #

to :: Rep (DefaultVO f) x -> DefaultVO f #

type Rep (DefaultVO f) Source # 
Instance details

Defined in Mischief.Render.Material.Definition

type Rep (DefaultVO f) = D1 ('MetaData "DefaultVO" "Mischief.Render.Material.Definition" "mischief-render-0.1.0.0-inplace" 'True) (C1 ('MetaCons "DefaultVO" 'PrefixI 'True) (S1 ('MetaSel ('Just "pos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BuiltIn f "position" (Vec 4 Float)))))

class (Bindable (B a), ShaderParam (VI a), ShaderParam (VO a), Extension (Extends a), Typeable a, Typeable (B a), Typeable (VI a), Typeable (VO a), Typeable (Extends a), Typeable (IsPhantom a)) => Material a where Source #

Minimal complete definition

fetch

Associated Types

type VI a :: Type -> Type Source #

type VO a :: Type -> Type Source #

type B a :: Type -> Type Source #

type Extends a :: [Type] Source #

type Extends a = '[] :: [Type]

type Extandable a :: Bool Source #

type Extandable a = 'True

type IsPhantom a :: Bool Source #

type IsPhantom a = 'False

Methods

vertex :: VI a GPU -> Shader a (VO a GPU) Source #

default vertex :: IsPhantom a ~ 'True => VI a GPU -> Shader a (VO a GPU) Source #

fragment :: VO a GPU -> Shader a (Vec 4 Float) Source #

default fragment :: IsPhantom a ~ 'True => VO a GPU -> Shader a (Vec 4 Float) Source #

fetch :: FetchBindings (B a) Source #

Instances

Instances details
Material FullscreenMaterial Source # 
Instance details

Defined in Mischief.Materials.Fullscreen

Material CustomMat Source # 
Instance details

Defined in Mischief.Materials.Sprite

Associated Types

type VI CustomMat 
Instance details

Defined in Mischief.Materials.Sprite

type VO CustomMat 
Instance details

Defined in Mischief.Materials.Sprite

type B CustomMat 
Instance details

Defined in Mischief.Materials.Sprite

type Extends CustomMat 
Instance details

Defined in Mischief.Materials.Sprite

type Extandable CustomMat 
Instance details

Defined in Mischief.Materials.Sprite

type IsPhantom CustomMat 
Instance details

Defined in Mischief.Materials.Sprite

Material SpriteMaterial Source # 
Instance details

Defined in Mischief.Materials.Sprite

Associated Types

type VI SpriteMaterial 
Instance details

Defined in Mischief.Materials.Sprite

type VO SpriteMaterial 
Instance details

Defined in Mischief.Materials.Sprite

type B SpriteMaterial 
Instance details

Defined in Mischief.Materials.Sprite

type Extends SpriteMaterial 
Instance details

Defined in Mischief.Materials.Sprite

type Extends SpriteMaterial = '[] :: [Type]
type Extandable SpriteMaterial 
Instance details

Defined in Mischief.Materials.Sprite

type IsPhantom SpriteMaterial 
Instance details

Defined in Mischief.Materials.Sprite

Material TimeMaterial Source # 
Instance details

Defined in Mischief.Materials.Time

Associated Types

type VI TimeMaterial 
Instance details

Defined in Mischief.Materials.Time

type VO TimeMaterial 
Instance details

Defined in Mischief.Materials.Time

type B TimeMaterial 
Instance details

Defined in Mischief.Materials.Time

type Extends TimeMaterial 
Instance details

Defined in Mischief.Materials.Time

type Extends TimeMaterial = '[] :: [Type]
type Extandable TimeMaterial 
Instance details

Defined in Mischief.Materials.Time

type IsPhantom TimeMaterial 
Instance details

Defined in Mischief.Materials.Time

Material ClearMaterial Source # 
Instance details

Defined in Mischief.Render.Plugin

Associated Types

type VI ClearMaterial 
Instance details

Defined in Mischief.Render.Plugin

type VO ClearMaterial 
Instance details

Defined in Mischief.Render.Plugin

type B ClearMaterial 
Instance details

Defined in Mischief.Render.Plugin

type Extends ClearMaterial 
Instance details

Defined in Mischief.Render.Plugin

type Extends ClearMaterial = '[] :: [Type]
type Extandable ClearMaterial 
Instance details

Defined in Mischief.Render.Plugin

type IsPhantom ClearMaterial 
Instance details

Defined in Mischief.Render.Plugin

Material DummyFullscreenMaterial Source # 
Instance details

Defined in Mischief.Render.Plugin

liftExt :: forall a b c. ExtensionOf b a => Shader a c -> Shader b c Source #

class Extension (a :: [Type]) where Source #

Methods

collectExtBindings :: Set ErasedBinding Source #

Instances

Instances details
Extension ('[] :: [Type]) Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Methods

collectExtBindings :: Set ErasedBinding Source #

(Extension xs, Material a) => Extension (a ': xs) Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Methods

collectExtBindings :: Set ErasedBinding Source #

collectBindings :: Material m => Set ErasedBinding Source #

type family IsExtensionOf a b :: Bool where ... Source #

type family IsExtensionOf' (m :: [Type]) target :: Bool where ... Source #

Equations

IsExtensionOf' ('[] :: [Type]) a = 'False 
IsExtensionOf' (a ': xs) a = 'True 
IsExtensionOf' (a ': xs) t = Or (IsExtensionOf' (Extends a) t) (IsExtensionOf' xs t) 

type family Or (a :: Bool) (b :: Bool) :: Bool where ... Source #

Equations

Or 'False 'False = 'False 
Or a b = 'True 

data FetchBindings (b :: Type -> Type) where Source #

Constructors

FetchBindings 

Fields

newtype FragmentOutput f Source #

Constructors

FragmentOutput 

Fields

Instances

Instances details
ShaderParam FragmentOutput Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Generic (FragmentOutput f) Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Associated Types

type Rep (FragmentOutput f) 
Instance details

Defined in Mischief.Render.Material.Definition

type Rep (FragmentOutput f) = D1 ('MetaData "FragmentOutput" "Mischief.Render.Material.Definition" "mischief-render-0.1.0.0-inplace" 'True) (C1 ('MetaCons "FragmentOutput" 'PrefixI 'True) (S1 ('MetaSel ('Just "fragOut1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Location f 0 (Vec 4 Float)))))
type Rep (FragmentOutput f) Source # 
Instance details

Defined in Mischief.Render.Material.Definition

type Rep (FragmentOutput f) = D1 ('MetaData "FragmentOutput" "Mischief.Render.Material.Definition" "mischief-render-0.1.0.0-inplace" 'True) (C1 ('MetaCons "FragmentOutput" 'PrefixI 'True) (S1 ('MetaSel ('Just "fragOut1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Location f 0 (Vec 4 Float)))))

data DrawCommand (bindings :: k) Source #

Constructors

Draw 

Fields

data Clear Source #

Constructors

DontClear 
Clear (V3 Float) 

data RenderOptions Source #

Constructors

RenderOptions 

Fields

Instances

Instances details
Default RenderOptions Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Methods

def :: RenderOptions #