mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 18:58:54 +01:00
shaderir: Add more tests
This commit is contained in:
parent
3d7c102472
commit
c75a35fd64
@ -99,8 +99,25 @@ func (p *Program) glslFunc(f *Func) []string {
|
|||||||
argsstr = strings.Join(args, ", ")
|
argsstr = strings.Join(args, ", ")
|
||||||
}
|
}
|
||||||
|
|
||||||
return []string{
|
var lines []string
|
||||||
fmt.Sprintf(`void %s(%s) {`, f.Name, argsstr),
|
lines = append(lines, fmt.Sprintf("void %s(%s) {", f.Name, argsstr))
|
||||||
`}`,
|
lines = append(lines, p.glslBlock(&f.Block, f, 0)...)
|
||||||
}
|
lines = append(lines, "}")
|
||||||
|
|
||||||
|
return lines
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Program) glslBlock(b *Block, f *Func, level int) []string {
|
||||||
|
idt := strings.Repeat("\t", level+1)
|
||||||
|
|
||||||
|
var lines []string
|
||||||
|
var idx int
|
||||||
|
if level == 0 {
|
||||||
|
idx = len(f.InParams) + len(f.InOutParams) + len(f.OutParams)
|
||||||
|
}
|
||||||
|
for _, t := range b.LocalVars {
|
||||||
|
lines = append(lines, fmt.Sprintf("%s%s;", idt, p.glslVarDecl(&t, fmt.Sprintf("l%d", idx))))
|
||||||
|
idx++
|
||||||
|
}
|
||||||
|
return lines
|
||||||
}
|
}
|
||||||
|
@ -122,6 +122,35 @@ varying vec3 V0;`,
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
Glsl: `void F0(in float l0, in vec2 l1, in vec4 l2, inout mat2 l3, out mat4 l4) {
|
Glsl: `void F0(in float l0, in vec2 l1, in vec4 l2, inout mat2 l3, out mat4 l4) {
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "FuncLocals",
|
||||||
|
Program: Program{
|
||||||
|
Funcs: []Func{
|
||||||
|
{
|
||||||
|
Name: "F0",
|
||||||
|
InParams: []Type{
|
||||||
|
{Main: Float},
|
||||||
|
},
|
||||||
|
InOutParams: []Type{
|
||||||
|
{Main: Float},
|
||||||
|
},
|
||||||
|
OutParams: []Type{
|
||||||
|
{Main: Float},
|
||||||
|
},
|
||||||
|
Block: Block{
|
||||||
|
LocalVars: []Type{
|
||||||
|
{Main: Mat4},
|
||||||
|
{Main: Mat4},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Glsl: `void F0(in float l0, inout float l1, out float l2) {
|
||||||
|
mat4 l3;
|
||||||
|
mat4 l4;
|
||||||
}`,
|
}`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user