private static void RegisterCommands()
{
//typeof(GLSLProgram).GetCustomAttributes( typeof(ScriptableProperty) )
foreach (var t in typeof(GLSLProgram).GetNestedTypes(BindingFlags.NonPublic | BindingFlags.Public))
{
var attr = t.GetCustomAttributes( typeof ( ScriptablePropertyAttribute ), true );
foreach (var cmd in attr.Cast<ScriptablePropertyAttribute>())
{
_commandTable.Add(cmd.ScriptPropertyName, (IPropertyCommand)Activator.CreateInstance(t));
}
}
}