mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-13 22:47:26 +01:00
testing: Refactoring
This commit is contained in:
parent
155c63ec76
commit
fc50f9b0be
@ -18,8 +18,8 @@ import (
|
|||||||
"github.com/hajimehoshi/ebiten/internal/shaderir"
|
"github.com/hajimehoshi/ebiten/internal/shaderir"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ShaderProgramFill(r, g, b, a byte) shaderir.Program {
|
var (
|
||||||
mat := shaderir.Expr{
|
projectionMatrix = shaderir.Expr{
|
||||||
Type: shaderir.Call,
|
Type: shaderir.Call,
|
||||||
Exprs: []shaderir.Expr{
|
Exprs: []shaderir.Expr{
|
||||||
{
|
{
|
||||||
@ -130,7 +130,7 @@ func ShaderProgramFill(r, g, b, a byte) shaderir.Program {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
pos := shaderir.Expr{
|
vertexPosition = shaderir.Expr{
|
||||||
Type: shaderir.Call,
|
Type: shaderir.Call,
|
||||||
Exprs: []shaderir.Expr{
|
Exprs: []shaderir.Expr{
|
||||||
{
|
{
|
||||||
@ -151,6 +151,49 @@ func ShaderProgramFill(r, g, b, a byte) shaderir.Program {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
defaultVertexFunc = shaderir.VertexFunc{
|
||||||
|
Block: shaderir.Block{
|
||||||
|
Stmts: []shaderir.Stmt{
|
||||||
|
{
|
||||||
|
Type: shaderir.Assign,
|
||||||
|
Exprs: []shaderir.Expr{
|
||||||
|
{
|
||||||
|
Type: shaderir.LocalVariable,
|
||||||
|
Index: 4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: shaderir.Binary,
|
||||||
|
Op: shaderir.Mul,
|
||||||
|
Exprs: []shaderir.Expr{
|
||||||
|
projectionMatrix,
|
||||||
|
vertexPosition,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
defaultProgram = shaderir.Program{
|
||||||
|
Uniforms: []shaderir.Type{
|
||||||
|
{Main: shaderir.Vec2},
|
||||||
|
},
|
||||||
|
Attributes: []shaderir.Type{
|
||||||
|
{Main: shaderir.Vec2},
|
||||||
|
{Main: shaderir.Vec2},
|
||||||
|
{Main: shaderir.Vec4},
|
||||||
|
{Main: shaderir.Vec4},
|
||||||
|
},
|
||||||
|
VertexFunc: defaultVertexFunc,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// ShaderProgramFill returns a shader intermediate representation to fill the frambuffer.
|
||||||
|
//
|
||||||
|
// Uniform variables:
|
||||||
|
//
|
||||||
|
// 0. the framebuffer size (vec2)
|
||||||
|
func ShaderProgramFill(r, g, b, a byte) shaderir.Program {
|
||||||
clr := shaderir.Expr{
|
clr := shaderir.Expr{
|
||||||
Type: shaderir.Call,
|
Type: shaderir.Call,
|
||||||
Exprs: []shaderir.Expr{
|
Exprs: []shaderir.Expr{
|
||||||
@ -177,40 +220,8 @@ func ShaderProgramFill(r, g, b, a byte) shaderir.Program {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return shaderir.Program{
|
p := defaultProgram
|
||||||
Uniforms: []shaderir.Type{
|
p.FragmentFunc = shaderir.FragmentFunc{
|
||||||
{Main: shaderir.Vec2},
|
|
||||||
},
|
|
||||||
Attributes: []shaderir.Type{
|
|
||||||
{Main: shaderir.Vec2},
|
|
||||||
{Main: shaderir.Vec2},
|
|
||||||
{Main: shaderir.Vec4},
|
|
||||||
{Main: shaderir.Vec4},
|
|
||||||
},
|
|
||||||
VertexFunc: shaderir.VertexFunc{
|
|
||||||
Block: shaderir.Block{
|
|
||||||
Stmts: []shaderir.Stmt{
|
|
||||||
{
|
|
||||||
Type: shaderir.Assign,
|
|
||||||
Exprs: []shaderir.Expr{
|
|
||||||
{
|
|
||||||
Type: shaderir.LocalVariable,
|
|
||||||
Index: 4,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Type: shaderir.Binary,
|
|
||||||
Op: shaderir.Mul,
|
|
||||||
Exprs: []shaderir.Expr{
|
|
||||||
mat,
|
|
||||||
pos,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
FragmentFunc: shaderir.FragmentFunc{
|
|
||||||
Block: shaderir.Block{
|
Block: shaderir.Block{
|
||||||
Stmts: []shaderir.Stmt{
|
Stmts: []shaderir.Stmt{
|
||||||
{
|
{
|
||||||
@ -225,6 +236,7 @@ func ShaderProgramFill(r, g, b, a byte) shaderir.Program {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return p
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user