Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / angle / src / compiler / translator / ValidateOutputs.h
1 //
2 // Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6
7 #include "compiler/translator/IntermNode.h"
8
9 #include <set>
10
11 class TInfoSinkBase;
12
13 class ValidateOutputs : public TIntermTraverser
14 {
15   public:
16     ValidateOutputs(TInfoSinkBase& sink, int maxDrawBuffers);
17
18     int numErrors() const { return mNumErrors; }
19
20     virtual void visitSymbol(TIntermSymbol*);
21
22   private:
23     TInfoSinkBase& mSink;
24     int mMaxDrawBuffers;
25     int mNumErrors;
26     bool mHasUnspecifiedOutputLocation;
27
28     typedef std::map<int, TIntermSymbol*> OutputMap;
29     OutputMap mOutputMap;
30     std::set<TString> mVisitedSymbols;
31
32     void error(TSourceLoc loc, const char *reason, const char* token);
33 };