zenilib: zenilib/jni/external/angle/src/compiler/timing/RestrictFragmentShaderTiming.h Source File

zenilib 0.5.3.0

- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

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"
13 #include "compiler/depgraph/DependencyGraph.h"
14
15 class TInfoSinkBase;
16
17 class RestrictFragmentShaderTiming : TDependencyGraphTraverser {
18 public:
19 RestrictFragmentShaderTiming(TInfoSinkBase& sink);
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_
sink
GLsizei GLenum GLboolean sink
Definition: glew.h:4448
RestrictFragmentShaderTiming::RestrictFragmentShaderTiming
RestrictFragmentShaderTiming(TInfoSinkBase &sink)
Definition: RestrictFragmentShaderTiming.cpp:12
RestrictFragmentShaderTiming::numErrors
int numErrors() const
Definition: RestrictFragmentShaderTiming.h:21
ShaderLang.h
TGraphArgument
Definition: DependencyGraph.h:59
intermediate.h
TIntermAggregate
Definition: intermediate.h:460
TGraphSelection
Definition: DependencyGraph.h:98
TInfoSinkBase
Definition: InfoSink.h:38
TDependencyGraphTraverser
Definition: DependencyGraph.h:189
DependencyGraph.h
TGraphLogicalOp
Definition: DependencyGraph.h:120
TGraphLoop
Definition: DependencyGraph.h:109
TDependencyGraph
Definition: DependencyGraph.h:139
RestrictFragmentShaderTiming::visitSelection
virtual void visitSelection(TGraphSelection *selection)
Definition: RestrictFragmentShaderTiming.cpp:109
RestrictFragmentShaderTiming::visitLogicalOp
virtual void visitLogicalOp(TGraphLogicalOp *logicalOp)
Definition: RestrictFragmentShaderTiming.cpp:121
RestrictFragmentShaderTiming::visitArgument
virtual void visitArgument(TGraphArgument *parameter)
Definition: RestrictFragmentShaderTiming.cpp:83
TIntermNode
Definition: intermediate.h:206
RestrictFragmentShaderTiming::visitLoop
virtual void visitLoop(TGraphLoop *loop)
Definition: RestrictFragmentShaderTiming.cpp:115
RestrictFragmentShaderTiming
Definition: RestrictFragmentShaderTiming.h:17
RestrictFragmentShaderTiming::enforceRestrictions
void enforceRestrictions(const TDependencyGraph &graph)
Definition: RestrictFragmentShaderTiming.cpp:38