]> git.tdb.fi Git - libs/gl.git/blob - source/glsl/reflect.h
Comments and cosmetic cleanups
[libs/gl.git] / source / glsl / reflect.h
1 #ifndef MSP_GL_SL_REFLECT_H_
2 #define MSP_GL_SL_REFLECT_H_
3
4 #include "visitor.h"
5
6 namespace Msp {
7 namespace GL {
8 namespace SL {
9
10 /** Determines the number of interface locations required by a variable. */
11 class LocationCounter: private NodeVisitor
12 {
13 private:
14         unsigned r_count;
15
16 public:
17         LocationCounter();
18
19         unsigned apply(VariableDeclaration &v) { v.visit(*this); return r_count; }
20
21 private:
22         virtual void visit(BasicTypeDeclaration &);
23         virtual void visit(ImageTypeDeclaration &);
24         virtual void visit(StructDeclaration &);
25         virtual void visit(VariableDeclaration &);
26 };
27
28 } // namespace SL
29 } // namespace GL
30 } // namespace Msp
31
32 #endif