diff options
author | Ben Murdoch <benm@google.com> | 2011-05-16 16:25:10 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-23 18:54:14 +0100 |
commit | ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb (patch) | |
tree | db769fadd053248f85db67434a5b275224defef7 /Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp | |
parent | 52e2557aeb8477967e97fd24f20f8f407a10fa15 (diff) | |
download | external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.zip external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.tar.gz external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.tar.bz2 |
Merge WebKit at r76408: Initial merge by git.
Change-Id: I5b91decbd693ccbf5c1b8354b37cd68cc9a1ea53
Diffstat (limited to 'Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp')
-rw-r--r-- | Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp b/Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp index fd263b6..23476f2 100644 --- a/Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp +++ b/Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp @@ -374,6 +374,10 @@ bool TOutputGLSL::visitUnary(Visit visit, TIntermUnary* node) case EOpLength: writeTriplet(visit, "length(", NULL, ")"); break; case EOpNormalize: writeTriplet(visit, "normalize(", NULL, ")"); break; + case EOpDFdx: writeTriplet(visit, "dFdx(", NULL, ")"); break; + case EOpDFdy: writeTriplet(visit, "dFdy(", NULL, ")"); break; + case EOpFwidth: writeTriplet(visit, "fwidth(", NULL, ")"); break; + case EOpAny: writeTriplet(visit, "any(", NULL, ")"); break; case EOpAll: writeTriplet(visit, "all(", NULL, ")"); break; @@ -608,23 +612,32 @@ bool TOutputGLSL::visitLoop(Visit visit, TIntermLoop* node) incrementDepth(); // Loop header. - if (node->testFirst()) // for loop + TLoopType loopType = node->getType(); + if (loopType == ELoopFor) // for loop { out << "for ("; if (node->getInit()) node->getInit()->traverse(this); out << "; "; - ASSERT(node->getTest() != NULL); - node->getTest()->traverse(this); + if (node->getCondition()) + node->getCondition()->traverse(this); out << "; "; - if (node->getTerminal()) - node->getTerminal()->traverse(this); + if (node->getExpression()) + node->getExpression()->traverse(this); + out << ")\n"; + } + else if (loopType == ELoopWhile) // while loop + { + out << "while ("; + ASSERT(node->getCondition() != NULL); + node->getCondition()->traverse(this); out << ")\n"; } else // do-while loop { + ASSERT(loopType == ELoopDoWhile); out << "do\n"; } @@ -632,11 +645,11 @@ bool TOutputGLSL::visitLoop(Visit visit, TIntermLoop* node) visitCodeBlock(node->getBody()); // Loop footer. - if (!node->testFirst()) // while loop + if (loopType == ELoopDoWhile) // do-while loop { out << "while ("; - ASSERT(node->getTest() != NULL); - node->getTest()->traverse(this); + ASSERT(node->getCondition() != NULL); + node->getCondition()->traverse(this); out << ");\n"; } decrementDepth(); |