LCOV - code coverage report
Current view: top level - gfx/angle/src/compiler/translator - RemoveInvariantDeclaration.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 14 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 5 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //
       2             : // Copyright (c) 2016 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             : #include "compiler/translator/RemoveInvariantDeclaration.h"
       8             : 
       9             : #include "compiler/translator/IntermNode.h"
      10             : 
      11             : namespace sh
      12             : {
      13             : 
      14             : namespace
      15             : {
      16             : 
      17             : // An AST traverser that removes invariant declaration for input in fragment shader
      18             : // when GLSL >= 4.20 and for output in vertex shader when GLSL < 4.2.
      19           0 : class RemoveInvariantDeclarationTraverser : public TIntermTraverser
      20             : {
      21             :   public:
      22           0 :     RemoveInvariantDeclarationTraverser() : TIntermTraverser(true, false, false) {}
      23             : 
      24             :   private:
      25           0 :     bool visitAggregate(Visit visit, TIntermAggregate *node) override
      26             :     {
      27           0 :         if (node->getOp() == EOpInvariantDeclaration)
      28             :         {
      29           0 :             TIntermSequence emptyReplacement;
      30           0 :             mMultiReplacements.push_back(NodeReplaceWithMultipleEntry(getParentNode()->getAsBlock(),
      31           0 :                                                                       node, emptyReplacement));
      32           0 :             return false;
      33             :         }
      34           0 :         return true;
      35             :     }
      36             : };
      37             : 
      38             : }  // anonymous namespace
      39             : 
      40           0 : void RemoveInvariantDeclaration(TIntermNode *root)
      41             : {
      42           0 :     RemoveInvariantDeclarationTraverser traverser;
      43           0 :     root->traverse(&traverser);
      44           0 :     traverser.updateTree();
      45           0 : }
      46             : 
      47             : }  // namespace sh

Generated by: LCOV version 1.13