Documentation ¶
Overview ¶
Package shaderir offers intermediate representation for shader programs.
Index ¶
- func IsValidSwizzling(s string) bool
- func ResolveUntypedConstsForBinaryOp(op Op, lhs, rhs constant.Value, lhst, rhst Type) (newLhs, newRhs constant.Value, ok bool)
- type BasicType
- type Block
- type BuiltinFunc
- type Expr
- type ExprType
- type FragmentFunc
- type Func
- type Op
- type Program
- type Stmt
- type StmtType
- type Type
- type Unit
- type VertexFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsValidSwizzling ¶
Types ¶
type BuiltinFunc ¶
type BuiltinFunc string
const ( Len BuiltinFunc = "len" Cap BuiltinFunc = "cap" BoolF BuiltinFunc = "bool" IntF BuiltinFunc = "int" FloatF BuiltinFunc = "float" Vec2F BuiltinFunc = "vec2" Vec3F BuiltinFunc = "vec3" Vec4F BuiltinFunc = "vec4" IVec2F BuiltinFunc = "ivec2" IVec3F BuiltinFunc = "ivec3" IVec4F BuiltinFunc = "ivec4" Mat2F BuiltinFunc = "mat2" Mat3F BuiltinFunc = "mat3" Mat4F BuiltinFunc = "mat4" Radians BuiltinFunc = "radians" // This function is not used yet (#2253) Degrees BuiltinFunc = "degrees" // This function is not used yet (#2253) Sin BuiltinFunc = "sin" Cos BuiltinFunc = "cos" Tan BuiltinFunc = "tan" Asin BuiltinFunc = "asin" Acos BuiltinFunc = "acos" Atan BuiltinFunc = "atan" Atan2 BuiltinFunc = "atan2" Pow BuiltinFunc = "pow" Exp BuiltinFunc = "exp" Log BuiltinFunc = "log" Exp2 BuiltinFunc = "exp2" Log2 BuiltinFunc = "log2" Sqrt BuiltinFunc = "sqrt" Inversesqrt BuiltinFunc = "inversesqrt" Abs BuiltinFunc = "abs" Sign BuiltinFunc = "sign" Floor BuiltinFunc = "floor" Ceil BuiltinFunc = "ceil" Fract BuiltinFunc = "fract" Mod BuiltinFunc = "mod" Min BuiltinFunc = "min" Max BuiltinFunc = "max" Clamp BuiltinFunc = "clamp" Mix BuiltinFunc = "mix" Step BuiltinFunc = "step" Smoothstep BuiltinFunc = "smoothstep" Length BuiltinFunc = "length" Distance BuiltinFunc = "distance" Dot BuiltinFunc = "dot" Cross BuiltinFunc = "cross" Normalize BuiltinFunc = "normalize" Faceforward BuiltinFunc = "faceforward" Reflect BuiltinFunc = "reflect" Refract BuiltinFunc = "refract" Transpose BuiltinFunc = "transpose" Dfdx BuiltinFunc = "dfdx" Dfdy BuiltinFunc = "dfdy" Fwidth BuiltinFunc = "fwidth" DiscardF BuiltinFunc = "discard" TexelAt BuiltinFunc = "__texelAt" )
func ParseBuiltinFunc ¶
func ParseBuiltinFunc(str string) (BuiltinFunc, bool)
type FragmentFunc ¶
type FragmentFunc struct {
Block *Block
}
FragmentFunc takes pseudo params, and the number is len(varyings) + 2. If index == 0, the param represents the coordinate of the fragment (gl_FragCoord in GLSL). If 0 < index <= len(varyings), the param represents (index-1)th varying variable.
type Program ¶
type Program struct { UniformNames []string Uniforms []Type TextureCount int Attributes []Type Varyings []Type Funcs []Func VertexFunc VertexFunc FragmentFunc FragmentFunc Unit Unit // contains filtered or unexported fields }
func (*Program) FilterUniformVariables ¶ added in v2.5.0
FilterUniformVariables replaces uniform variables with 0 when they are not used. By minimizing uniform variables, more commands can be merged in the graphicscommand package.
func (*Program) LocalVariableType ¶
func (*Program) ReachableFuncsFromBlock ¶ added in v2.5.0
type Type ¶
func TypeFromBinaryOp ¶ added in v2.6.0
func (*Type) IsFloatVector ¶ added in v2.6.0
func (*Type) IsIntVector ¶ added in v2.6.0
func (*Type) Uint32Count ¶ added in v2.5.0
func (*Type) VectorElementCount ¶ added in v2.5.0
type VertexFunc ¶
type VertexFunc struct {
Block *Block
}
VertexFunc takes pseudo params, and the number if len(attributes) + len(varyings) + 1. If 0 <= index < len(attributes), the params are in-params and represent attribute variables. If index == len(attributes), the param is an out-param and represents the position in vec4 (gl_Position in GLSL) If len(attributes) + 1 <= index < len(attributes) + len(varyings) + 1, the params are out-params and represent varying variables.