From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing (Rated B-class, High-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
B-Class article B  This article has been rated as B-Class on the project's quality scale.
 High  This article has been rated as High-importance on the project's importance scale.
WikiProject Computer graphics (Rated B-class, Mid-importance)
WikiProject icon This article is within the scope of WikiProject Computer graphics, a collaborative effort to improve the coverage of computer graphics on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
B-Class article B  This article has been rated as B-Class on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.

developed by[edit]

how is ogl being developed by SGI? i believe info in info box should read 'khronos', and SGI, ARB or whatever historical involvnemt should be mentioned somewhere in text, no? (talk) 20:36, 13 May 2009 (UTC)

Does not OpenGL stand for Open Graphics Language? (compare IrisGL). /Mikael —Preceding unsigned comment added by (talk) 08:26, 26 October 2009 (UTC)

OpenGL was originally developed by SGI, but they then formed the OpenGL group to manage the standard, which then became Khronos. As a note, IrisGL is a 2D standard, not a 3D one. -- (talk) 07:16, 3 January 2015 (UTC)

Does OpenGL stand for Open Graphics Library?[edit]

I cannot find a reference that OpenGL actually stands for Open Graphics Library. Is it possible that OpenGL is simply a name by itself, and does not stand for anything? --Jephir (talk) 02:31, 8 May 2010 (UTC)

Ah, found it, it's in the OpenGL specification. --Jephir (talk) 02:36, 8 May 2010 (UTC)

Example needs info on how to run[edit]

The Examples section would benefit by explaining how one might actually try out the example code. Is there an OpenGL interpreter or compiler to execute the code? Or how would one submit that code to their graphics card? I suspect there are many answers to these questions, but a simple explanation of where to look would be apropos. (talk) 21:21, 1 January 2012 (UTC)

Add section on noteworthy implementations[edit]

I think a section on noteworthy implementations should be added -- preferably in a tabular format which includes entries with project name, developers, platforms it works on, GL compliancy level etc. For example

Project Developers Platforms OpenGL APIs Status
Mesa3d Mesa3d developers X11, Windows, Mac OS X, OS independent, others 2.1 Active
nVidia drivers nVidia Windows, Linux/X11, Mac OS X 4 Active
ATI drivers ATI/AMD Windows, Linux/X11, Mac OS X 4 Active

Please note that the above information is not likely to be completly accurate. FrederikHertzum (talk) 20:40, 12 December 2010 (UTC)

Well, Mesa3D now supports up to 3.3 with partial 4.x extensions. This goes for both the software LLVMPipe driver and the various hardware drivers, limited by hardware capability. Additionally, Mesa now supports KMS/GLE FrameBuffer video instances as well as X11 on Linux, BSD and similar platforms. They have an active roadmap for the 4.x transition, and are currently the only driver that removes the depricated GLSL functions outside of compatibility contexts. This is a major noteworthy point, as nVidia has stated that they have no interest in doing the same, and even plan to continue optimizing the depricated functions. As of version support, both nVidia and AMD drivers support 4.4 in stable and 4.5 in unstable. They can be generalized as being 4.x implementations for the sake of simplicity and reducing the frequency of updates. As a note, AMD and nVidia have separate OpenGL implementations for mobile. These focus on OpenGL ES2/ES3 API performance even though they also support the OpenGL 4.x API as well. The primary difference is that the Linux and Android Mobile implementations don't require X11 or GLX. -- (talk) 07:12, 3 January 2015 (UTC)
An updated chart as well
Project Developers Platforms Supported Hardware OpenGL API Version Status
Mesa3d Mesa3d developers X11-GLX, KMS/GLE-Framebuffer, Win32, Win64, Other Windows, Mac OS X, OS independent, others AMD/ATI, nVidia, Intel GMA, Software Rendering. 3.x w/4.x extensions (Hardware dependent) Active (Legacy drivers for other hardware unmaintained)
nVidia drivers nVidia Win32, Win64, Linux/X11-GLX, Mac OS X nVidia graphics chips 4.x (Legacy drivers 3.x/2.x) Active
AMD "Catalyst" drivers AMD Win32, Win64, Linux/X11-GLX, Mac OS X AMD/ATI Graphics Chips 4.x (Legacy drivers 3.x/2.x) Active


Could someone more knowledgeable of OpenGL devise a better, non-deprecated, helloworld-style example? I quickly looked at some of the more popular tutorials and their first examples are 200 lines of code, which kinda doesn't fit here imho. Anyways imho immediate mode code is not representative of modern OpenGL and it should either be revised or removed (talk) 06:41, 28 March 2012 (UTC)

I've removed the example altogether. Deprecated code seems a bit too misleading, and it's not possible to write a concise-but-complete example using only the non-deprecated API. An example of the API could be pretty informative, but I can't come up with any code fragments which wouldn't be completely opaque to a casual reader (eg, binding and modifying a texture object).
One alternative could be a section which describes the API in general terms - language-agnosticism, the difference between glColor3f and glColor4ub, the object-generation-and-binding system, the fact that state changes tend to carry a high performance cost and strategies used to avoid this, etc. (talk) 15:01, 22 September 2012 (UTC)

"Written in" section of the sidebar[edit]

I deleted the "written in" note a couple of weeks ago, but it's been restored with a reference. I'm deleting it again, and thought I'd better explain why.

OpenGL is explicitly not written against any single language (the specs don't even use function signatures and tokens which match the C binding). The version 4.3 spec only mentions C a few times, and only ever in the context of a "language binding". On page 10: "Languages such as C++ and Javascript ... permit language bindings with simpler declarations". Seems pretty clear-cut that C doesn't have any special status, from the spec's perspective.

The source cited seems pretty dubious. No references are given, and "OpenGL" could refer to Mesa3D, the OpenGL binding for Windows, the most commonly-used bindings, most OpenGL drivers, etc.

The entry could be replaced with something like "Written in: Multiple languages", but that seems sort of misleading. I think OpenGL's language-agnosticism is best represented by removing the entry altogether. (talk) 08:08, 20 October 2012 (UTC)

APPLE_flush_buffer_range in GL3?[edit]

I'm pretty sure what made it into OpenGL 3.0 was GL_ARB_map_buffer_range. The ARB extension borrows a little from Apple's earlier flush_buffer_range extension, but the final GL3 spec matches the newer ARB extension more closely (notably: it offers glMapBufferRange() like the ARB extension and not glBufferParameteri() like the Apple extension).

(EDIT: er, specifically, the ARB extension says it's a subset of the 3.0 functionality, made available for pre-3.0 maybe the reference to APPLE_flush_buffer_range is correct as-is.)

Ryancgordon (talk) 03:23, 14 March 2014 (UTC)

DSA same as D3D12/Mantle[edit]

I removed the following text from the GL 4.5 section on DSA:

effectively the equivalent of the same capability from DirectX 12 and AMD's Mantle

The referenced article makes no such claim about DSA. The ArsTech article states that DSA is a feature D3D has had for years, but nowhere does it call it the equivalent of D3D12 or Mantle.

Korval (talk) 20:48, 17 January 2015 (UTC)

DSA is only mentioned as an example of AZDO in OpenGL (Approaching zero driver overhead). With AZDO being the equivalent to the goals of D3D12 and Mantle. Besides DSA other features used by AZDO are the indirect and batched rendering calls that have been in OpenGL much longer.Carewolf (talk) 13:06, 19 January 2015 (UTC)

Relationship to Apple's Metal API?[edit]

Should there be a mention somewhere about the relationship of OpenGL to Apple's Metal API? Is Metal a complete replacement of OpenGL (meaning "competitor" like DirectX)? Or something that can "work along side OpenGL" - I would presume allowing the main program to directly alter things that OpenGL doesn't allow the main program to do (I don't really know..), or perhaps allowing Apple's much-touted "motion coprocessor" to interact directly with the GPU?

I can't imagine Apple completely dropping OpenGL, because there have to be an large number of scientific visualization and modeling applications out there that aren't just going to drop OpenGL just because Apple has a new API - and are going to continue using new OpenGL features as they are added in the future. (Then again, this is Apple)

Or is Metal being advertised right now as "Apple's Game Rendering Engine". I guess this would create a situation like when (or if) Apple had it's Quickdraw3D and (if) there were also OpenGL extensions available for the classic MacOS? Jimw338 (talk) 17:31, 17 June 2015 (UTC)

The relationship between OpenGL and Metal as APIs is essentially that they do the same thing: 3D graphics rendering via dedicated GPU hardware. I'm sure that there are news articles out there that mention which features of OpenGL don't exist in Metal or otherwise talk about the differences between the APIs. Writing such a comparison would require finding said articles.
However, note that there is no similar section on Direct3D, despite it being a much longer-time competitor to OpenGL. So you would also need some kind of justification for adding a comparative analysis to Metal here. Unless you want to do comparisons for both.
As for Apple's continued support for OpenGL, I don't believe there are any references for that, so there's nothing you can talk about until there are. Korval (talk) 16:14, 18 June 2015 (UTC)