在GLSL中实现枚举

我目前正在使用OpenTKdevise一个应用程序。

我最近感到有点恼火,因为我的应用程序里面有一堆const,我想如果我可以用枚举来代替它,会有多好呢?

以下面的例子:

const int FOG_TYPE_LINEAR = 0; const int FOG_TYPE_EXPONENTIAL = 1; const int FOG_TYPE_EXPONENTIAL_SQUARED = 2; 

我宁愿这样写出来:

 enum FogType { Linear = 0, Exponential = 1, ExponentialSquared = 2 }; 

这样我可以做到这一点:

 if(fog.type == FogType.Linear) { // Do some stuff here } 

它看起来更整洁,更有组织。

我想到的方式是按字符(像一个标记器),检查每个字符的枚举并将其存储在字典中,并在需要时访问它们。

这是一个好方法吗? 我应该怎么做呢?