Why there are so many fucking MACROs used in OpenGL? Totally no type, and hard to remember, also uneasy to use auto-complete in IDE. Why don't we just seal them like Apple, say, typedef enum { kTypeType0, kTypeType1} Type, so that we can easily find out what to use ?