diff options
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/ValidateOutputs.h')
-rw-r--r-- | src/3rdparty/angle/src/compiler/translator/ValidateOutputs.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/ValidateOutputs.h b/src/3rdparty/angle/src/compiler/translator/ValidateOutputs.h new file mode 100644 index 0000000000..e391ad9486 --- /dev/null +++ b/src/3rdparty/angle/src/compiler/translator/ValidateOutputs.h @@ -0,0 +1,33 @@ +// +// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +#include "compiler/translator/intermediate.h" + +#include <set> + +class TInfoSinkBase; + +class ValidateOutputs : public TIntermTraverser +{ + public: + ValidateOutputs(TInfoSinkBase& sink, int maxDrawBuffers); + + int numErrors() const { return mNumErrors; } + + virtual void visitSymbol(TIntermSymbol*); + + private: + TInfoSinkBase& mSink; + int mMaxDrawBuffers; + int mNumErrors; + bool mHasUnspecifiedOutputLocation; + + typedef std::map<int, TIntermSymbol*> OutputMap; + OutputMap mOutputMap; + std::set<TString> mVisitedSymbols; + + void error(TSourceLoc loc, const char *reason, const char* token); +}; |