Hi, My question is about the OpenGL C++ API for the ATI GPU. I have a sapphire R9 270X graphics card running on windows and I love graphics programming. I looked all over the Installation disk shipped with the graphics card for OpenGL headers and static libraries, OpenGL 3.x that is and possibly OpenGL 4.x since my graphics card supports the 4.3 version of it. I have OpenGL 1.x or 2.x header and libraries I am programming with those until I get the newer version which are nowhere to be found in the Installation disk. As I understand the implementation of the API may most certainly differs among the graphics hardware provider/companies meaning the OpenGL librairies won't be found on the OpenGL website (header might be there!). Since AMD concieved the GPU for my graphics card I was wondering if you can help me with that. Thank you!
By the way, I hope it will be easier in the future to find those files because even with the old OpenGL API I had to look for hours and maybe days to find the headers and libraries so I could enjoy the joys of graphics programming with an open API !!! And all I can remember from it is people shouting here and there and all over the internet "You can't download OpenGL" without giving any direction on how people should proceed to get their hands on those precious files. Trust me it is really frustrating in the long run!!!
OpenGL is a library a bit special. Most of the features are provided first through "extensions", and then the extensions are integrated in the core version of OpenGL.
On Windows, Microsoft provides an implementation of OpenGL which is very old (1. something).
If you use Windows, the only thing you will get when you install Visual Studio (or MinGW, MinGW-TDM etc) are Opengl headers for the 1.x version with the OpenGL library.
That doesn't mean you are stuck with this antic API however: you can tap in the new features thanks to the extensions. Some libraries like GLEW (google it), or GLXW make it easier to use those extensions.
look for GLEW or GLXW.
Hope it helps
An OpenGL implementation is usually provided with the graphics card driver installation. However, in order to use the vendor provided GL implementation, you usually have to link to a stub implementation. On Linux this is usually libGL.so and on Windows its opengl32.lib( GL calls are forwarded to the correct implementation at runtime provided the appropriate context is created ). For Windows, opengl32.lib is provide with the platform/windows SDK or the compiler installation. There is not specific headers for ATI/Nvidia or any other vendor. The latest headers are provided on the OpenGL website and the libraries are OS dependent and provided by the respective platforms.
Your understanding of OpenGL API implementation is correct.
Implementation of API differs among graphics vendors but header is same across all the vendors. That means, the header can be found on OpenGL website, but the API implementation should be downloaded from vendor site, which comes with graphics driver.
For example, if the machine has only AMD graphics, then you should download graphics driver from AMD site. If there is graphics from another vendor (Intel integrated or an NV board), then you should download their graphics driver too. The application links against "opengl32.dll" which is part of OS. That dll determines from DC of target window which driver should be responsible for rendering to it and loads that. This is the ICD mechanism.
The latest AMD driver supports OpenGL 4.4.