mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-02-03 22:44:28 +01:00
shaderir: Refactoring
This commit is contained in:
parent
4b8e745824
commit
931fec9100
@ -20,6 +20,20 @@ import (
|
|||||||
. "github.com/hajimehoshi/ebiten/internal/shaderir"
|
. "github.com/hajimehoshi/ebiten/internal/shaderir"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func block(localVars []Type, stmts ...Stmt) Block {
|
||||||
|
return Block{
|
||||||
|
LocalVars: localVars,
|
||||||
|
Stmts: stmts,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func blockStmt(block Block) Stmt {
|
||||||
|
return Stmt{
|
||||||
|
Type: BlockStmt,
|
||||||
|
Blocks: []Block{block},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func assignStmt(lhs Expr, rhs Expr) Stmt {
|
func assignStmt(lhs Expr, rhs Expr) Stmt {
|
||||||
return Stmt{
|
return Stmt{
|
||||||
Type: Assign,
|
Type: Assign,
|
||||||
@ -164,12 +178,10 @@ varying vec3 V0;`,
|
|||||||
OutParams: []Type{
|
OutParams: []Type{
|
||||||
{Main: Float},
|
{Main: Float},
|
||||||
},
|
},
|
||||||
Block: Block{
|
Block: block([]Type{
|
||||||
LocalVars: []Type{
|
{Main: Mat4},
|
||||||
{Main: Mat4},
|
{Main: Mat4},
|
||||||
{Main: Mat4},
|
}),
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -193,25 +205,20 @@ varying vec3 V0;`,
|
|||||||
OutParams: []Type{
|
OutParams: []Type{
|
||||||
{Main: Float},
|
{Main: Float},
|
||||||
},
|
},
|
||||||
Block: Block{
|
Block: block(
|
||||||
LocalVars: []Type{
|
[]Type{
|
||||||
{Main: Mat4},
|
{Main: Mat4},
|
||||||
{Main: Mat4},
|
{Main: Mat4},
|
||||||
},
|
},
|
||||||
Stmts: []Stmt{
|
blockStmt(
|
||||||
{
|
block(
|
||||||
Type: BlockStmt,
|
[]Type{
|
||||||
Blocks: []Block{
|
{Main: Mat4},
|
||||||
{
|
{Main: Mat4},
|
||||||
LocalVars: []Type{
|
|
||||||
{Main: Mat4},
|
|
||||||
{Main: Mat4},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
),
|
||||||
},
|
),
|
||||||
},
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -237,18 +244,17 @@ varying vec3 V0;`,
|
|||||||
OutParams: []Type{
|
OutParams: []Type{
|
||||||
{Main: Float},
|
{Main: Float},
|
||||||
},
|
},
|
||||||
Block: Block{
|
Block: block(
|
||||||
Stmts: []Stmt{
|
nil,
|
||||||
assignStmt(
|
assignStmt(
|
||||||
varNameExpr(Local, 2),
|
varNameExpr(Local, 2),
|
||||||
binaryExpr(
|
binaryExpr(
|
||||||
Add,
|
Add,
|
||||||
varNameExpr(Local, 0),
|
varNameExpr(Local, 0),
|
||||||
varNameExpr(Local, 1),
|
varNameExpr(Local, 1),
|
||||||
),
|
|
||||||
),
|
),
|
||||||
},
|
),
|
||||||
},
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -269,33 +275,30 @@ varying vec3 V0;`,
|
|||||||
OutParams: []Type{
|
OutParams: []Type{
|
||||||
{Main: Float},
|
{Main: Float},
|
||||||
},
|
},
|
||||||
Block: Block{
|
Block: block(
|
||||||
Stmts: []Stmt{
|
nil,
|
||||||
ifStmt(
|
ifStmt(
|
||||||
binaryExpr(
|
binaryExpr(
|
||||||
Eq,
|
Eq,
|
||||||
varNameExpr(Local, 0),
|
varNameExpr(Local, 0),
|
||||||
numericExpr(0),
|
numericExpr(0),
|
||||||
),
|
|
||||||
Block{
|
|
||||||
Stmts: []Stmt{
|
|
||||||
assignStmt(
|
|
||||||
varNameExpr(Local, 2),
|
|
||||||
varNameExpr(Local, 0),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Block{
|
|
||||||
Stmts: []Stmt{
|
|
||||||
assignStmt(
|
|
||||||
varNameExpr(Local, 2),
|
|
||||||
varNameExpr(Local, 1),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
},
|
block(
|
||||||
},
|
nil,
|
||||||
|
assignStmt(
|
||||||
|
varNameExpr(Local, 2),
|
||||||
|
varNameExpr(Local, 0),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
block(
|
||||||
|
nil,
|
||||||
|
assignStmt(
|
||||||
|
varNameExpr(Local, 2),
|
||||||
|
varNameExpr(Local, 1),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user