zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RestrictFragmentShaderTiming.h
Go to the documentation of this file.
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_FRAGMENT_SHADER_TIMING_H_
8 #define COMPILER_TIMING_RESTRICT_FRAGMENT_SHADER_TIMING_H_
9 
10 #include "GLSLANG/ShaderLang.h"
11 
12 #include "compiler/intermediate.h"
14 
15 class TInfoSinkBase;
16 
18 public:
20  void enforceRestrictions(const TDependencyGraph& graph);
21  int numErrors() const { return mNumErrors; }
22 
23  virtual void visitArgument(TGraphArgument* parameter);
24  virtual void visitSelection(TGraphSelection* selection);
25  virtual void visitLoop(TGraphLoop* loop);
26  virtual void visitLogicalOp(TGraphLogicalOp* logicalOp);
27 
28 private:
29  void beginError(const TIntermNode* node);
30  void validateUserDefinedFunctionCallUsage(const TDependencyGraph& graph);
31  bool isSamplingOp(const TIntermAggregate* intermFunctionCall) const;
32 
33  TInfoSinkBase& mSink;
34  int mNumErrors;
35 
36  typedef std::set<TString> StringSet;
37  StringSet mSamplingOps;
38 };
39 
40 #endif // COMPILER_TIMING_RESTRICT_FRAGMENT_SHADER_TIMING_H_
GLsizei GLenum GLboolean sink
Definition: glew.h:4448
virtual void visitSelection(TGraphSelection *selection)
virtual void visitLogicalOp(TGraphLogicalOp *logicalOp)
virtual void visitArgument(TGraphArgument *parameter)
virtual void visitLoop(TGraphLoop *loop)
void enforceRestrictions(const TDependencyGraph &graph)