X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fglsl%2Fevaluate.cpp;h=915b2a6fe2cce1a6f8dcc4cd275029f1225ba6a2;hb=19a24f859cd7fcf581442319499ae24b3e7385a4;hp=4bbdb2f60f436528b733905d604bad4100780497;hpb=d5c7c7f0b15c407b3da2184936e6deed18554c6a;p=libs%2Fgl.git diff --git a/source/glsl/evaluate.cpp b/source/glsl/evaluate.cpp index 4bbdb2f6..915b2a6f 100644 --- a/source/glsl/evaluate.cpp +++ b/source/glsl/evaluate.cpp @@ -55,7 +55,7 @@ void ExpressionEvaluator::visit(UnaryExpression &unary) if(!result_valid) return; - if(unary.oper=="!") + if(unary.oper->token[0]=='!') result = !result; else result_valid = false; @@ -74,21 +74,22 @@ void ExpressionEvaluator::visit(BinaryExpression &binary) if(!result_valid) return; - if(binary.oper=="<") + std::string oper = binary.oper->token; + if(oper=="<") result = (left_result") + else if(oper==">") result = (left_result>result); - else if(binary.oper==">=") + else if(oper==">=") result = (left_result>=result); - else if(binary.oper=="==") + else if(oper=="==") result = (left_result==result); - else if(binary.oper=="!=") + else if(oper=="!=") result = (left_result!=result); - else if(binary.oper=="&&") + else if(oper=="&&") result = (left_result && result); - else if(binary.oper=="||") + else if(oper=="||") result = (left_result || result); else result_valid = false;