HIDING GL FROM HEADERS AS MUCH AS POSSIBLE (IMPLICATION: USING uint32_t INSTEAD OF GLuint, ETC.)