Opengl function body

Is it possible to view or to download the opengl functions body ? not the prototype, the source or is this not possible because opengl is proprietary ?

OpenGL is a specification. It defines only prototypes by definition, because the actual source code depends on the operating system, processor and graphics card.

Individual drivers implement OpenGL differently. Some are proprietary (NVidia), some are free (Mesa).

OpenGL is not software.

The “open” in OpenGL is nothing to do with open source or any other definition of free software; OpenGL actually pre-dates the open source movement, and pre-dates use of the term “open source”.

The “open” refers to it’s status as an open standard.

An open standard is a standard that is publicly available and has various rights to use associated with it and may also have various properties of how it was designed (e.g. open process). There is no single definition, and interpretations vary with usage.

The terms open and standard have a wide range of meanings associated with their usage. There are a number of definitions of open standards which emphasize different aspects of openness, including the openness of the resulting specification, the openness of the drafting process, and the ownership of rights in the standard. The term “standard” is sometimes restricted to technologies approved by formalized committees that are open to participation by all interested parties and operate on a consensus basis.

It has nothing whatsoever to do with source code. Also, don’t make the mistake of thinking that just because OpenGL is available for Linux it must be software or open source, because that’s not the case at all either.

OpenGL is typically implemented by your GPU vendor in device drivers for their hardware, and each GPU vendor’s implementation is typically proprietary to that vendor. To reiterate - OpenGL is not software. When you make an OpenGL call in your program, it is not OpenGL that does the drawing. OpenGL is classically defined as “a software interface to graphics hardware”, so: your program makes the OpenGL call, it goes to your device driver, your device driver tells your hardware what to draw, and your hardware does the actual drawing.

As an exception to this, software implementations of OpenGL (or libraries that look, smell, taste, feel and quack like OpenGL , without actually being called “OpenGL”) do exist, with the best-known perhaps being MESA. In cases where such libraries have their source code available, you can download and read it, but you should have no expectation that it’s in any way indicative of what other OpenGL implementations are like.

1 Like