1//
2// Copyright (c) 2012 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#ifndef COMPILER_TIMING_RESTRICT_VERTEX_SHADER_TIMING_H_
8#define COMPILER_TIMING_RESTRICT_VERTEX_SHADER_TIMING_H_
9
10#include "compiler/translator/IntermNode.h"
11#include "compiler/translator/InfoSink.h"
12
13class TInfoSinkBase;
14
15class RestrictVertexShaderTiming : public TIntermTraverser {
16public:
17    RestrictVertexShaderTiming(TInfoSinkBase& sink)
18        : TIntermTraverser(true, false, false)
19        , mSink(sink)
20        , mNumErrors(0) {}
21
22    void enforceRestrictions(TIntermNode* root) { root->traverse(this); }
23    int numErrors() { return mNumErrors; }
24
25    virtual void visitSymbol(TIntermSymbol*);
26private:
27    TInfoSinkBase& mSink;
28    int mNumErrors;
29};
30
31#endif  // COMPILER_TIMING_RESTRICT_VERTEX_SHADER_TIMING_H_
32