~ubuntu-branches/ubuntu/precise/gle-graphics/precise

« back to all changes in this revision

Viewing changes to src/gle/sub.h

  • Committer: Package Import Robot
  • Author(s): Christian T. Steigies
  • Date: 2011-10-20 22:15:27 UTC
  • mfrom: (5.1.2 sid)
  • Revision ID: package-import@ubuntu.com-20111020221527-sv27lrowdd221npi
Tags: 4.2.3b-1
* new upstream version
* switch from cdbs to debhelper 8
* update copyright file
* do no rely on proc on non-linux systems (closes: #644588)
* do not ship glebtool, which is a helper used only during build
* add libqt4-opengl-dev to build-depends

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
 
42
42
class GLEObjectDOConstructor;
43
43
 
 
44
class GLESubArgNames : public GLERefCountObject {
 
45
public:
 
46
        GLESubArgNames();
 
47
        void addArgName(const char* argName);
 
48
private:
 
49
        GLERC<GLEStringHash> m_ArgNames;
 
50
};
 
51
 
 
52
class GLESubRoot : public GLEDataObject {
 
53
public:
 
54
        GLESubRoot(GLEString* name, GLESubArgNames* argNames);
 
55
        void updateArgNames(GLESubArgNames* argNames);
 
56
private:
 
57
        GLERC<GLEString> m_Name;
 
58
        GLERC<GLESubArgNames> m_ArgNames;
 
59
        GLERC<GLEStringHash> m_IgnoredArgNames;
 
60
        GLERC<GLEArrayImpl> m_Signatures;
 
61
};
 
62
 
 
63
class GLESubSignature : public GLEDataObject {
 
64
public:
 
65
        GLESubSignature(GLESubRoot* root);
 
66
private:
 
67
        GLESubRoot* m_Root;
 
68
        GLERC<GLEArrayWithFreeList> m_Subroutines;
 
69
        GLERC<GLEArrayWithFreeList> m_Callables;
 
70
};
 
71
 
 
72
class GLECallable : public GLEDataObject {
 
73
public:
 
74
        virtual void execute(GLEArrayImpl* stack, unsigned int top);
 
75
protected:
 
76
        unsigned int* m_ArgTypes;
 
77
};
 
78
 
 
79
class GLEArgTypeDefaults : public GLERefCountObject {
 
80
public:
 
81
        GLEArgTypeDefaults(unsigned int arity);
 
82
        ~GLEArgTypeDefaults();
 
83
        inline unsigned int* getArgTypes() { return m_ArgTypes; }
 
84
        inline void setArgType(unsigned int i, unsigned int type) { m_ArgTypes[i] = type; }
 
85
private:
 
86
        unsigned int m_Arity;
 
87
        unsigned int* m_ArgTypes;
 
88
        GLERC<GLEArrayImpl> m_Defaults;
 
89
};
 
90
 
 
91
class GLEAbstractSub : public GLECallable {
 
92
public:
 
93
        GLEAbstractSub();
 
94
        inline void setRoot(GLESubRoot* root) { m_Root = root; }
 
95
        void setArgTypeDefaults(GLEArgTypeDefaults* defaults);
 
96
private:
 
97
        GLESubRoot* m_Root;
 
98
        GLERC<GLEArgTypeDefaults> m_ArgTypeDefaults;
 
99
};
 
100
 
 
101
class GLESubMap;
 
102
 
 
103
class GLEBuiltInFactory {
 
104
public:
 
105
        GLEBuiltInFactory(GLESubMap* map);
 
106
        GLESubArgNames* getBinaryArgNamesXY();
 
107
        GLEArgTypeDefaults* getBinaryDoubleDoubleArgTypeDefaults();
 
108
        GLESubRoot* createRoot(const char* name, GLESubArgNames* argNames);
 
109
private:
 
110
        GLESubMap* m_Map;
 
111
        GLERC<GLESubArgNames> m_BinaryArgNamesXY;
 
112
        GLERC<GLEArgTypeDefaults> m_BinaryDoubleDoubleArgTypeDefaults;
 
113
};
 
114
 
 
115
class GLEBuiltIn : public GLEAbstractSub {
 
116
public:
 
117
 
 
118
private:
 
119
 
 
120
};
 
121
 
44
122
class GLESub {
45
123
protected:
46
124
        string m_Name;
91
169
protected:
92
170
        StringIntHash m_Map;
93
171
        vector<GLESub*> m_Subs;
 
172
        GLERC<GLEStringHash> m_SubRoots;
94
173
public:
95
174
        GLESubMap();
96
175
        ~GLESubMap();
 
176
        GLESubRoot* getRoot(const char* name);
 
177
        GLESubRoot* createRoot(const char* name, GLESubArgNames* argNames);
97
178
        void clear();
98
179
        void clear(int i);
99
180
        GLESub* add();
100
181
        GLESub* add(GLESub* parent);
 
182
        void add(GLEAbstractSub* sub);
101
183
        /* FIXME: lookup should be based on GLEString */
102
184
        GLESub* add(const string& name);
103
185
        GLESub* get(const string& name);