Home | History | Annotate | Download | only in timing
      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 "GLSLANG/ShaderLang.h"
     11 
     12 #include "compiler/intermediate.h"
     13 #include "compiler/InfoSink.h"
     14 
     15 class TInfoSinkBase;
     16 
     17 class RestrictVertexShaderTiming : public TIntermTraverser {
     18 public:
     19     RestrictVertexShaderTiming(TInfoSinkBase& sink)
     20         : TIntermTraverser(true, false, false)
     21         , mSink(sink)
     22         , mNumErrors(0) {}
     23 
     24     void enforceRestrictions(TIntermNode* root) { root->traverse(this); }
     25     int numErrors() { return mNumErrors; }
     26 
     27     virtual void visitSymbol(TIntermSymbol*);
     28 private:
     29     TInfoSinkBase& mSink;
     30     int mNumErrors;
     31 };
     32 
     33 #endif  // COMPILER_TIMING_RESTRICT_VERTEX_SHADER_TIMING_H_
     34