Hello, I have been trying to work on some small projects using some of the tools I learned in Handmade Hero. In my current project I have a the game code and platform layer separated. I am currently working on how I would like rendering to work as I would like to use opengl and maybe other apis in the future. It seems like a good idea to store all the needed opengl function logic in the game code. To do this, the platform layer would have to load all the needed opengl functions, fill out a struct of function pointers and pass it to the game code. This struct would need to have platform independent function pointers that I use to point to the opengl functions. I have been doing some reading and am somewhat confused how I would do this. I have mostly been using the article https://www.khronos.org/opengl/wiki/Load_OpenGL_Functions
which suggest that you can define them as such: (example for glUseProgram)
typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
However, I have read in a few placed that APIENTRY and APIENTRYP might be windows specific. Should I be defining these functions in a different way? Is this method of sending the opengl controls to the game code even a good idea? Any advice would be appreciated. Thanks!