So to clarify, the reason I had this API take separate red/green/blue params is because the original code was typically calling it with these individual values. Some of our code would use arrays, some would use individual values, some of it would just glm::vec3's some glm::vev4's. So basically this was the API that required the least amount of changes elsewhere.

That said, I agree there is value in cleaning up all of the callers to use a common style.