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