   How to: from OpenGL 2.1 to 3.3 core?
  Greetings,I’ve been eyeballing the OpenGL development the past few years and I must say, it seems to me like complete chaos. I would like to go from OpenGL 2.1 to 3.3 core only and yet, I can’t find a descent solution so far as how do we get started and leave those deprecated functions behind. It gets even more complicated when using libraries such as SDL, SFML or QT. At this point, I have to breath in a paper bag and I’m not sure where to start.My setup:-Visual studio 2010 on windows 7.-GLEW to load OpenGL extensions.-My project basic setup use SFML to create OpenGL contexts and window handles. (Advance setup use QT for window handles)-GForce 8000 family with OpenGL 3.3 capabilities.Questions:- I read that GLEW can’t be used with OpenGL core only, any development on this topic? (currently using 1.5.8)- https://github.com/skaslev/gl3w seems to be a good alternative, is there any instructions on how to execute this python script?- Math libraries and/or custom matrix functions?- Will the transition be smooth between GL core and GL ES?- Super Bible 5th edition or online tutorials?- Glut finally exorcise?Any constructive advice would be welcome.Thank you
  I'm not familiar with SFML, so can't help you there. With SDL, I had to back-port the SDL 1.3 context creation code to SDL 1.2 in order to get a 3.x context. SDL 1.3 was buggy and unusable when I switched (I'm not sure if it's any better now or not).If you've kept to doing things the "right way" (VBOS, generic shader attributes / varyings over built-in attributes), it shouldn't be too painful to switch. The way I did things was to look at the deprecation sections of the 3.x specs, and create a list of things I used in my code that needed to change. It ended up looking something like this: * LineWidth deprecated. * Matrix functions deprecated (use cml math library and pass to shaders as appropriate). * Quads deprecated! (Can just use TRIANGLE_FAN with same vertices / vertex order to render an individual quad). * Separate polygon modes deprecated. * LUMINANCE / ALPHA etc. texture formats deprecated. * CLAMP texture-wrap mode (use CLAMP_TO_EDGE). * Mipmap generation (use glGenerateMipmaps as GENERATE_MIPMAPS texParameter deprecated).* Alpha testing! * Use vertex arrays. * Remove EXT / ARB from things as necessary (e.g. framebuffers). * (Enable / disable of texture targets) * (Push / pop attribs).You might use other deprecated functionality, so the list will likely be a bit different for you. Everything is listed in the specs though, so it's easy to find what not to use.If you're still using immediate mode / built-in shader variables etc. it may be best to prepare by switching to vbos / generic variables before actually changing to a 3.x context. Similarly, it'll probably be easier to change as much as possible (implement lineWidth alternatives, change mipmap generation, matrix functions, quads etc.) and test those in 2.x before switching.   ;  Since the OP mentioned OpenGL ES, I think it's worth noting that a number deprecated features are still fully supported by ES.   ;  [font="Times New Roman"][/font][font="Calibri"]Thank you for your inputs. To get started, I would like to know , if possible, how to force 3.3 core with Glew?[/font][font="Times New Roman"][/font]   ;  I'm pretty sure glLineWidth is not deprecated in GL 3.2Anyway, for GLEW//Currently, GLEW uses glGetString(GL_EXTENSIONS) which is not legal code//in GL 3.3, therefore GLEW would fail if we don't set this to TRUE.//GLEW will avoid looking for extensions and will just get function pointers for all GL functions.glewExperimental=TRUE;GLenum err=glewInit();if(err!=GLEW_OK){//Problem: glewInit failed, something is seriously wrong.cout<<"glewInit failed, aborting."<<endl;exit(1);};  [font="Times New Roman"][/font][font="Calibri"]Thank you V-man but it is still loading the deprecated functions.What would be the equivalent of :[/font][font="Times New Roman"][/font][font="Calibri"] [/font][font="Times New Roman"][/font][font="Calibri"]#define GL3_PROTOTYPES 1[/font][font="Times New Roman"][/font][font="Calibri"] [/font][font="Times New Roman"][/font][font="Calibri"]with GLEW?[/font][font="Times New Roman"][/font]   ;  [font="Times New Roman"][/font][font="Calibri"]Thank you V-man but it is still loading the deprecated functions.What would be the equivalent of :[/font][font="Times New Roman"][/font][font="Calibri"] [/font][font="Times New Roman"][/font][font="Calibri"]#define GL3_PROTOTYPES 1[/font][font="Times New Roman"][/font][font="Calibri"] [/font][font="Times New Roman"][/font][font="Calibri"]with GLEW?[/font][font="Times New Roman"][/font]   ;  [font="Calibri"]Thank you V-man but it is still loading the deprecated functions. What would be the equivalent of :[/font][font="Times New Roman"][/font][font="Calibri"] [/font][font="Times New Roman"][/font][font="Calibri"]#define GL3_PROTOTYPES 1[/font][font="Times New Roman"][/font][font="Calibri"] [/font][font="Times New Roman"][/font][font="Calibri"]with GLEW?[/font];  There isn't a "GL3_PROTOTYPES 1"  for GLEW. Right now, it just calls wglGetProcAddress for all the functions.Even glewExperimental=TRUE; is a bit hacky. Someone had written an update for it's extension checking thing but it hasn't made it into the code yet.http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=269878#Post269878   ;  Even if I try very hard, I’ll never understand OpenGL developers to be so careless with API implementation, it’s ridiculous. At least, for Windows that is. Regarding GLEW, how can this not be implemented yet? Go Nigel Go! What about glw3, someone have them already compiled and posted somewhere? Oh my, I need my paper bag again.