Documentation ¶
Overview ¶
Package shaderir offers intermediate representation for shader programs.
Index ¶
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" Texture2DF BuiltinFunc = "texture2D" Dfdx BuiltinFunc = "dfdx" Dfdy BuiltinFunc = "dfdy" Fwidth BuiltinFunc = "fwidth" DiscardF BuiltinFunc = "discard" )
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 // contains filtered or unexported fields }
func (*Program) FilterUniformVariables ¶ added in v2.5.0
FilterUniformVariables replaces uniform variables with nil 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 (*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.