How far up do I have to push openGLs typedefs?
If I have GLfloat everywhere in my code, I have to include openGL libraries pretty much everywhere. Should I use glm:tmat4x4 or will regular glm::mat4x4 be fine? When coding transformations, can I use regular float to define position vector in transformation and then construct glm:tmat4x4 with it and be sure that openGL won't get surprised?
These are just some of many questions.
Does the compilers float get cast the properly to GLfloat when passing it to a function that injects the data into openGL?
This applies to any openGL typedef.
The main question is, is there a way to make a clean cut between float and GLfloat (or any other compiler-openGL type pair) and safely use the regular type in my code and then cast it into openGL type right before it gets introduced to openGL?
How can I use regular one in most of my code and the openGL one in the core parts that personally deal with openGL, while having the guarantee that behavior will be consistent on different platforms, regardless of their float implementation (or any other type)?