|
@@ -27,8 +27,9 @@ class GlslOut {
|
|
static var MAT34 = "struct mat3x4 { vec4 a; vec4 b; vec4 c; };";
|
|
static var MAT34 = "struct mat3x4 { vec4 a; vec4 b; vec4 c; };";
|
|
|
|
|
|
var buf : StringBuf;
|
|
var buf : StringBuf;
|
|
|
|
+ var exprIds = 0;
|
|
var exprValues : Array<String>;
|
|
var exprValues : Array<String>;
|
|
- var locals : Array<TVar>;
|
|
|
|
|
|
+ var locals : Map<Int,TVar>;
|
|
var decls : Array<String>;
|
|
var decls : Array<String>;
|
|
var isVertex : Bool;
|
|
var isVertex : Bool;
|
|
var allNames : Map<String, Int>;
|
|
var allNames : Map<String, Int>;
|
|
@@ -134,7 +135,7 @@ class GlslOut {
|
|
function addValue( e : TExpr, tabs : String ) {
|
|
function addValue( e : TExpr, tabs : String ) {
|
|
switch( e.e ) {
|
|
switch( e.e ) {
|
|
case TBlock(el):
|
|
case TBlock(el):
|
|
- var name = "val" + exprValues.length;
|
|
|
|
|
|
+ var name = "val" + (exprIds++);
|
|
var tmp = buf;
|
|
var tmp = buf;
|
|
buf = new StringBuf();
|
|
buf = new StringBuf();
|
|
addType(e.t);
|
|
addType(e.t);
|
|
@@ -243,7 +244,7 @@ class GlslOut {
|
|
});
|
|
});
|
|
addValue(e1, tabs);
|
|
addValue(e1, tabs);
|
|
case TVarDecl(v, init):
|
|
case TVarDecl(v, init):
|
|
- locals.push(v);
|
|
|
|
|
|
+ locals.set(v.id, v);
|
|
if( init != null ) {
|
|
if( init != null ) {
|
|
ident(v);
|
|
ident(v);
|
|
add(" = ");
|
|
add(" = ");
|
|
@@ -367,7 +368,7 @@ class GlslOut {
|
|
}
|
|
}
|
|
|
|
|
|
public function run( s : ShaderData ) {
|
|
public function run( s : ShaderData ) {
|
|
- locals = [];
|
|
|
|
|
|
+ locals = new Map();
|
|
decls = [];
|
|
decls = [];
|
|
buf = new StringBuf();
|
|
buf = new StringBuf();
|
|
exprValues = [];
|
|
exprValues = [];
|