   Development differences between OpenGL 3.0 and 2.1
  Thus far I've only done DirectX development, and now I'm starting a new project where all three PC platforms need to be supported (Windows/Linux/Mac). So I'm taking my first look at OpenGL.Given that I have no history in OpenGL development, I thought I would start clean and dive into OpenGL 3.0, and not bother learning the old 2.1 features that are being deprecated.That is, until I looked at OpenGL development on Mac and found that the absolute newest version available was 2.1...So now I'm wondering if I need to learn two separate versions, or if I can move forward with learning 3.0 and just give myself some limitations and have it work on 2.1. Are the two versions similar enough that I can move forward with learning 3.0 and just cut corners (i.e. not use certain extensions) when only 2.1 is available? Or do I need to go out and get another book and treat them as separate APIs?If the answer is more complex than that... are there any good noob-friendly comparisons between the two?   
  I strongly doubt that it is TOTALLY impossible to do gl 3 development on an apple platform.  They are a member of the ARB and were the first adopters of the OpenCL standard.  It might be the case (as it is on windows) that the only OFFICIALLY supported openGL version is something low (its 1.1 on windows) and you have to set up your api using updated nvidia drivers and downloading the headers (and use GLEW or something else)I don't develop on a mac, so I don't know, of course, but it just seems strange to me that that would be the case and I recommend you investigate it further.However, assuming that it is ACTUALLY the case, then if it were me I would focus on GL 3.0 development entirely, and completely ditch the mac platform.  Lugaru's statistics on user penetration had 55% windows, 25% linux, and 20% mac, or something like that, so although it would be bad to have those users not exist, it is better to only learn the new, non-deprecated API structure and hope that mac gets its S*** together than it is to try to juggle learning two APIs.   ;  OpenGL on most platforms is provided as a core library some versions old, with the newer features provided as extensions. On Windows and Linux you can create forward-compatible contexts which only contain OpenGL 3.0/4.0 features, but this mechanism is not yet exposed on the Mac. Rest assured that you can still load all the necessary features as extensions. Download and install the OpenGL Extensions Viewer, and it should tell you exactly which extensions from each version of OpenGL are provided.   ;Quote:Original post by Steve132I don't develop on a mac, so I don't know, of course, but it just seems strange to me that that would be the case and I recommend you investigate it further.Since you don't do any mac development, you don't understand how these things are handled on that platform. There are no drivers from Nvidia. There are only drivers from Apple, and they only come in form of OSX upgrades. Apple decides what version you use, and there is no way around this.That said, as swiftcoder mentioned, most GL3 functionality is available as extensions, but not all. Also be prepared to the fact that anything above 2.1 core is bug ridden to such an extent that it becomes partially unusable (even on the very latest OSX version with all updates installed). You're entirely at the mercy of Apple here, so you have been warned.Of course you can still develop on 2.1, but with 3.0 in mind. Basically you just stop using all the 2.x features that have been deprecated on 3.x. This will make a future transition to 3.x smooth.Quote:Original post by Steve132Lugaru's statistics on user penetration had 55% windows, 25% linux, and 20% mac, or something like that,Hahaha, good joke.