Keep track of the index name of excessive loops.

TRAC #21167 ISSUE=338 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1210 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 0933b0cc
...@@ -87,6 +87,8 @@ OutputHLSL::OutputHLSL(TParseContext &context) : TIntermTraverser(true, true, tr ...@@ -87,6 +87,8 @@ OutputHLSL::OutputHLSL(TParseContext &context) : TIntermTraverser(true, true, tr
mContainsLoopDiscontinuity = false; mContainsLoopDiscontinuity = false;
mOutputLod0Function = false; mOutputLod0Function = false;
mInsideDiscontinuousLoop = false; mInsideDiscontinuousLoop = false;
mExcessiveLoopIndex = NULL;
} }
OutputHLSL::~OutputHLSL() OutputHLSL::~OutputHLSL()
...@@ -2052,6 +2054,9 @@ bool OutputHLSL::handleExcessiveLoop(TIntermLoop *node) ...@@ -2052,6 +2054,9 @@ bool OutputHLSL::handleExcessiveLoop(TIntermLoop *node)
return false; // Not an excessive loop return false; // Not an excessive loop
} }
TIntermSymbol *restoreIndex = mExcessiveLoopIndex;
mExcessiveLoopIndex = index;
out << "{int "; out << "{int ";
index->traverse(this); index->traverse(this);
out << ";\n"; out << ";\n";
...@@ -2095,6 +2100,8 @@ bool OutputHLSL::handleExcessiveLoop(TIntermLoop *node) ...@@ -2095,6 +2100,8 @@ bool OutputHLSL::handleExcessiveLoop(TIntermLoop *node)
out << "}"; out << "}";
mExcessiveLoopIndex = restoreIndex;
return true; return true;
} }
else UNIMPLEMENTED(); else UNIMPLEMENTED();
......
...@@ -144,6 +144,8 @@ class OutputHLSL : public TIntermTraverser ...@@ -144,6 +144,8 @@ class OutputHLSL : public TIntermTraverser
bool mContainsLoopDiscontinuity; bool mContainsLoopDiscontinuity;
bool mOutputLod0Function; bool mOutputLod0Function;
bool mInsideDiscontinuousLoop; bool mInsideDiscontinuousLoop;
TIntermSymbol *mExcessiveLoopIndex;
}; };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment