gfx/angle/src/compiler/VersionGLSL.h

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     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 //
     7 #ifndef COMPILER_VERSIONGLSL_H_
     8 #define COMPILER_VERSIONGLSL_H_
    10 #include "GLSLANG/ShaderLang.h"
    11 #include "compiler/intermediate.h"
    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 //   - array as "out" function parameters
    26 //
    27 class TVersionGLSL : public TIntermTraverser {
    28 public:
    29     TVersionGLSL(ShShaderType type);
    31     // Returns 120 if the following is used the shader:
    32     // - "invariant",
    33     // - "gl_PointCoord",
    34     // - matrix/matrix constructors
    35     // - array "out" parameters
    36     // Else 110 is returned.
    37     int getVersion() { return mVersion; }
    39     virtual void visitSymbol(TIntermSymbol*);
    40     virtual void visitConstantUnion(TIntermConstantUnion*);
    41     virtual bool visitBinary(Visit, TIntermBinary*);
    42     virtual bool visitUnary(Visit, TIntermUnary*);
    43     virtual bool visitSelection(Visit, TIntermSelection*);
    44     virtual bool visitAggregate(Visit, TIntermAggregate*);
    45     virtual bool visitLoop(Visit, TIntermLoop*);
    46     virtual bool visitBranch(Visit, TIntermBranch*);
    48 protected:
    49     void updateVersion(int version);
    51 private:
    52     ShShaderType mShaderType;
    53     int mVersion;
    54 };
    56 #endif  // COMPILER_VERSIONGLSL_H_

mercurial