|
@@ -4,7 +4,6 @@ import hxsl.Ast;
|
|
class GlslOut {
|
|
class GlslOut {
|
|
|
|
|
|
var buf : StringBuf;
|
|
var buf : StringBuf;
|
|
- var prec : String;
|
|
|
|
var keywords : Map<String,Bool>;
|
|
var keywords : Map<String,Bool>;
|
|
var exprValues : Array<String>;
|
|
var exprValues : Array<String>;
|
|
var locals : Array<TVar>;
|
|
var locals : Array<TVar>;
|
|
@@ -37,13 +36,12 @@ class GlslOut {
|
|
case TBool:
|
|
case TBool:
|
|
add("bool");
|
|
add("bool");
|
|
case TFloat:
|
|
case TFloat:
|
|
- add(prec);
|
|
|
|
add("float");
|
|
add("float");
|
|
case TString:
|
|
case TString:
|
|
add("string");
|
|
add("string");
|
|
case TVec(size, k):
|
|
case TVec(size, k):
|
|
switch( k ) {
|
|
switch( k ) {
|
|
- case VFloat: add(prec);
|
|
|
|
|
|
+ case VFloat:
|
|
case VInt: add("i");
|
|
case VInt: add("i");
|
|
case VBool: add("b");
|
|
case VBool: add("b");
|
|
}
|
|
}
|
|
@@ -255,11 +253,11 @@ class GlslOut {
|
|
|
|
|
|
public function run( s : ShaderData ) {
|
|
public function run( s : ShaderData ) {
|
|
locals = [];
|
|
locals = [];
|
|
- prec = "mediump ";
|
|
|
|
buf = new StringBuf();
|
|
buf = new StringBuf();
|
|
exprValues = [];
|
|
exprValues = [];
|
|
- add("struct mat3x4 { "+prec+"vec4 a; "+prec+"vec4 b; "+prec+"vec4 c; };\n");
|
|
|
|
- add(prec+"vec3 m3x4mult( mat3x4 m, "+prec+"vec3 v ) { "+prec+"vec4 ve = vec4(v,1.0); return vec3(dot(m.a,ve),dot(m.b,ve),dot(m.c,ve)); }\n");
|
|
|
|
|
|
+ add("precision mediump float;\n");
|
|
|
|
+ add("struct mat3x4 { vec4 a; vec4 b; vec4 c; };\n");
|
|
|
|
+ add("vec3 m3x4mult( mat3x4 m, vec3 v ) { vec4 ve = vec4(v,1.0); return vec3(dot(m.a,ve),dot(m.b,ve),dot(m.c,ve)); }\n");
|
|
|
|
|
|
if( s.funs.length != 1 ) throw "assert";
|
|
if( s.funs.length != 1 ) throw "assert";
|
|
var f = s.funs[0];
|
|
var f = s.funs[0];
|