Implement the full scheme for ES precision qualifiers, generalizing existing storage qualifiers to be able to include multiple independent kinds of qualifiers.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20317 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
674014bfc4
commit
5521862729
15 changed files with 661 additions and 463 deletions
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
class TAliveTraverser : public TIntermTraverser {
|
||||
public:
|
||||
TAliveTraverser(TQualifier q) : TIntermTraverser(), found(false), qualifier(q)
|
||||
TAliveTraverser(TStorageQualifier q) : TIntermTraverser(), found(false), qualifier(q)
|
||||
{
|
||||
visitSymbol = AliveSymbol;
|
||||
visitSelection = AliveSelection;
|
||||
|
|
@ -45,7 +45,7 @@ public:
|
|||
bool wasFound() { return found; }
|
||||
protected:
|
||||
bool found;
|
||||
TQualifier qualifier;
|
||||
TStorageQualifier qualifier;
|
||||
|
||||
friend void AliveSymbol(TIntermSymbol*, TIntermTraverser*);
|
||||
friend bool AliveSelection(bool, TIntermSelection*, TIntermTraverser*);
|
||||
|
|
@ -59,7 +59,7 @@ protected:
|
|||
// ?? It does not do this well yet, this is just a place holder
|
||||
// that simply determines if it was reference at all, anywhere.
|
||||
//
|
||||
bool QualifierWritten(TIntermNode* node, TQualifier qualifier)
|
||||
bool QualifierWritten(TIntermNode* node, TStorageQualifier qualifier)
|
||||
{
|
||||
TAliveTraverser it(qualifier);
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ void AliveSymbol(TIntermSymbol* node, TIntermTraverser* it)
|
|||
//
|
||||
// If it's what we're looking for, record it.
|
||||
//
|
||||
if (node->getQualifier() == lit->qualifier)
|
||||
if (node->getQualifier().storage == lit->qualifier)
|
||||
lit->found = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue