The specifications also provide a great reference for finding the exact workings of its functions. The interested reader can find the OpenGL specification of version 3.3 (which is what we'll be using) here which is a good read if you want to delve into the details of OpenGL (note how they mostly just describe results and not implementations). Khronos publicly hosts all specification documents for all the OpenGL versions.
This is one of the reasons why it's always advised to occasionally update your graphic drivers.
Whenever there is a bug in the implementation this is usually solved by updating your video card drivers those drivers include the newest versions of OpenGL that your card supports. Since most implementations are built by graphics card manufacturers. This also means that whenever OpenGL is showing weird behavior that it shouldn't, this is most likely the fault of the graphics cards manufacturers (or whoever developed/maintained the library). When using an Apple system the OpenGL library is maintained by Apple themselves and under Linux there exists a combination of graphic suppliers' versions and hobbyists' adaptations of these libraries. Each graphics card that you buy supports specific versions of OpenGL which are the versions of OpenGL developed specifically for that card (series). The people developing the actual OpenGL libraries are usually the graphics card manufacturers. Since the OpenGL specification does not give us implementation details, the actual developed versions of OpenGL are allowed to have different implementations, as long as their results comply with the specification (and are thus the same to the user). It is then up to the developers implementing this specification to come up with a solution of how this function should operate.
The OpenGL specification specifies exactly what the result/output of each function should be and how it should perform. However, OpenGL by itself is not an API, but merely a specification, developed and maintained by the Khronos Group. OpenGL is mainly considered an API (an Application Programming Interface) that provides us with a large set of functions that we can use to manipulate graphics and images. If you already know what OpenGL is and how it works, you can move straight to the next tutorial and get straight to programming.īefore starting our journey we should first define what OpenGL actually is.
The OpenGL Application Binary Interface for Linux isĪlso available.Note: No code will be written here. OpenGL Application Binary Interface for Linux GLU 1.3 Specification (November 4, 1998).OpenGL Utility Library (GLU) Specification.GLX 1.2 Specification (PostScript format).Translation of the API core profile specification is also Older OpenGL and GLX Specifications and Reference Pages OpenGL-Registry pull request 183 for increased compatibility The OpenGL headers all depend on the shared.
Linux and Microsoft Windows, function pointer typedefs. These headers define interfaces including enumerants prototypes and,įor platforms supporting dynamic runtime extension queries, such as Interfaces found only in the compatibility profile.ġ.3 and above API and GLX extension interfaces. OpenGL core profile and ARB extension interfaces, as described inĪppendix G.2 of the OpenGL 4.3 Specification. Wgl.h header files supplied with the OS / graphics drivers.Īdditional header files are provided here, including:Īlmost all of the headers described below depend on a platform headerįile common to multiple Khronos APIs calledġ.2 and above compatibility profile and extension interfaces. To be defined in the standard gl.h, glx.h, and
Quick Reference Card (available for different API versions).īecause extensions vary from platform to platform and driver toĭriver, OpenGL developers can't expect interfaces for all extensions OpenGL X Window System Binding (GLX 1.4) Specification.Shading Language Reference Pages (not yet updated) OpenGL Shading Language 4.60 Specification (July 10, 2019).OpenGL 4.6 API Specification (October 22, 2019)Ĭompatibility Profile Specification with changes marked.OpenGL Application Binary Interface for LinuxĬurrent OpenGL API, OpenGL Shading Language and GLX Specifications and.Older OpenGL and GLX Specifications and.