added semantic handling and support for remapping variables with semantics

Change-Id: I3c6b5fc1d4f1da6ec6f436fea72849453a13559d
This commit is contained in:
t.jung 2017-01-04 17:55:31 +01:00 committed by Tiemo Jung
parent 7225a1cb1e
commit 8bb3ee53c5
5 changed files with 183 additions and 36 deletions

View file

@ -420,6 +420,11 @@ public:
bool getGeoPassthroughEXT() const { return geoPassthroughEXT; }
#endif
const char* addSemanticName(const TString& name)
{
return semanticNameSet.insert(name).first->c_str();
}
protected:
TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
void error(TInfoSink& infoSink, const char*);
@ -497,6 +502,7 @@ protected:
std::vector<TOffsetRange> usedAtomics; // sets of bindings used by atomic counters
std::vector<TXfbBuffer> xfbBuffers; // all the data we need to track per xfb buffer
std::unordered_set<int> usedConstantId; // specialization constant ids used
std::set<TString> semanticNameSet;
private:
void operator=(TIntermediate&); // prevent assignments