~ubuntu-branches/ubuntu/wily/qtbase-opensource-src/wily

« back to all changes in this revision

Viewing changes to src/3rdparty/angle/src/compiler/VariableInfo.h

  • Committer: Package Import Robot
  • Author(s): Timo Jyrinki
  • Date: 2013-02-05 12:46:17 UTC
  • Revision ID: package-import@ubuntu.com-20130205124617-c8jouts182j002fx
Tags: upstream-5.0.1+dfsg
ImportĀ upstreamĀ versionĀ 5.0.1+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// Copyright (c) 2002-2011 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_VARIABLE_INFO_H_
 
8
#define COMPILER_VARIABLE_INFO_H_
 
9
 
 
10
#include "GLSLANG/ShaderLang.h"
 
11
#include "compiler/intermediate.h"
 
12
 
 
13
// Provides information about a variable.
 
14
// It is currently being used to store info about active attribs and uniforms.
 
15
struct TVariableInfo {
 
16
    TVariableInfo(ShDataType type, int size);
 
17
    TVariableInfo();
 
18
 
 
19
    TPersistString name;
 
20
    TPersistString mappedName;
 
21
    ShDataType type;
 
22
    int size;
 
23
};
 
24
typedef std::vector<TVariableInfo> TVariableInfoList;
 
25
 
 
26
// Traverses intermediate tree to collect all attributes and uniforms.
 
27
class CollectAttribsUniforms : public TIntermTraverser {
 
28
public:
 
29
    CollectAttribsUniforms(TVariableInfoList& attribs,
 
30
                           TVariableInfoList& uniforms);
 
31
 
 
32
    virtual void visitSymbol(TIntermSymbol*);
 
33
    virtual void visitConstantUnion(TIntermConstantUnion*);
 
34
    virtual bool visitBinary(Visit, TIntermBinary*);
 
35
    virtual bool visitUnary(Visit, TIntermUnary*);
 
36
    virtual bool visitSelection(Visit, TIntermSelection*);
 
37
    virtual bool visitAggregate(Visit, TIntermAggregate*);
 
38
    virtual bool visitLoop(Visit, TIntermLoop*);
 
39
    virtual bool visitBranch(Visit, TIntermBranch*);
 
40
 
 
41
private:
 
42
    TVariableInfoList& mAttribs;
 
43
    TVariableInfoList& mUniforms;
 
44
};
 
45
 
 
46
#endif  // COMPILER_VARIABLE_INFO_H_