LCOV - app.info - gfx/angle/src/compiler/VersionGLSL.h

LCOV - code coverage report
| Current view: | directory - gfx/angle/src/compiler - VersionGLSL.h (source / functions) |  | Found | Hit | Coverage |
| Test: | app.info | Lines: | 1 | 0 | 0.0 %
| Date: | 2012-07-07 | Functions: | 1 | 0 | 0.0 %

           1                 : //
           2                 : // Copyright (c) 2002-2010 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_VERSIONGLSL_H_
           8                 : #define COMPILER_VERSIONGLSL_H_
           9                 :
          10                 : #include "GLSLANG/ShaderLang.h"
          11                 : #include "compiler/intermediate.h"
          12                 :
          13                 : // Traverses the intermediate tree to return the minimum GLSL version
          14                 : // required to legally access all built-in features used in the shader.
          15                 : // GLSL 1.1 which is mandated by OpenGL 2.0 provides:
          16                 : //   - #version and #extension to declare version and extensions.
          17                 : //   - built-in functions refract, exp, and log.
          18                 : //   - updated step() to compare x < edge instead of x <= edge.
          19                 : // GLSL 1.2 which is mandated by OpenGL 2.1 provides:
          20                 : //   - many changes to reduce differences when compared to the ES specification.
          21                 : //   - invariant keyword and its support.
          22                 : //   - c++ style name hiding rules.
          23                 : //   - built-in variable gl_PointCoord for fragment shaders.
          24                 : //   - matrix constructors taking matrix as argument.
          25                 : //
          26                 : class TVersionGLSL : public TIntermTraverser {
          27                 : public:
          28                 :     TVersionGLSL(ShShaderType type);
          29                 :
          30                 :     // Returns 120 if "invariant" keyword, "gl_PointCoord", or
          31                 :     // matrix/matrix constructors are used in the shader. Else 110 is
          32                 :     // returned.
          33               0 :     int getVersion() { return mVersion; }
          34                 :
          35                 :     virtual void visitSymbol(TIntermSymbol*);
          36                 :     virtual void visitConstantUnion(TIntermConstantUnion*);
          37                 :     virtual bool visitBinary(Visit, TIntermBinary*);
          38                 :     virtual bool visitUnary(Visit, TIntermUnary*);
          39                 :     virtual bool visitSelection(Visit, TIntermSelection*);
          40                 :     virtual bool visitAggregate(Visit, TIntermAggregate*);
          41                 :     virtual bool visitLoop(Visit, TIntermLoop*);
          42                 :     virtual bool visitBranch(Visit, TIntermBranch*);
          43                 :
          44                 : protected:
          45                 :     void updateVersion(int version);
          46                 :
          47                 : private:
          48                 :     ShShaderType mShaderType;
          49                 :     int mVersion;
          50                 : };
          51                 :
          52                 : #endif  // COMPILER_VERSIONGLSL_H_

Generated by: LCOV version 1.7