Content deleted Content added
Max Naylor (talk | contribs) Updated template |
→Software renderer: +style |
||
(32 intermediate revisions by 27 users not shown) | |||
Line 1:
{{Use mdy dates|date=October 2013}}
{{Mac OS X
'''Core OpenGL''', or '''CGL''', is [[Apple
==History==
All windowing system interfaces to [[OpenGL]] arose out of the migration of [[Silicon Graphics]] proprietary 3D graphics application programming interface ([[API]]) [[IRIS GL|IrisGL]] to its current open standard form OpenGL.
With OpenGL windowing system agnostic, companies such as Apple must shoulder the burden of configuring and managing the surfaces used as a destination for OpenGL rendering.
==Features==
===Windowing system interfaces===
On OS X, CGL is the foundation layer of windowing system interfaces to OpenGL. Both [[Apple
Configuration of these surfaces is done through a pixel format selection process where different compatible layers of rendering information are combined to form a [[
===Handling Mac OS X heterogeneity===
On Mac OS X, CGL is also responsible for handling the heterogeneous nature of graphics device installations and configuration on Macintosh systems.
===Controlling the rendering===
When users configure their Macintosh to use a virtualized desktop, and they drag windows from one display to another, CGL handles the management of OpenGL graphics state that must be shadowed between devices to provide command processing consistency between them.
CGL also provides a mechanism to obtain information about the renderer that is currently in use.
===Software renderer===
▲CGL also provides a mechanism to obtain information about the renderer that is currently in use. The primary data structure that maintains OpenGL state on Mac OS X is a [http://developer.apple.com/documentation/GraphicsImaging/Reference/CGL_OpenGL/Reference/reference.html#//apple_ref/doc/c_ref/CGLContextObj CGLContextObj]. These CGL contexts can be retrieved at any time using a call to [http://developer.apple.com/documentation/GraphicsImaging/Reference/CGL_OpenGL/Reference/reference.html#//apple_ref/c/func/CGLGetCurrentContext CGLGetCurrentContext]. The ''CGLContextObj'' may then be queried for specifics about the renderer that is associated with it.
Also included is Apple's in-house OpenGL [[software renderer]]. Originally, this was a simple integer package. In Mac OS X 10.3, a new floating point one was introduced [https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/AGL_OpenGL/Reference/reference.html#//apple_ref/doc/uid/TP30001068-CH2g-AGLRenderingContextIDs which ultimately replaced it]. The software renderer, though slow, is fast enough for basic applications and [https://developer.apple.com/graphicsimaging/opengl/capabilities/index.html kept feature-complete] {{Webarchive|url=https://web.archive.org/web/20140108115648/https://developer.apple.com/graphicsimaging/opengl/capabilities/index.html |date=January 8, 2014 }} with OS X's OpenGL implementation for development purposes.
==See also==
*[[GLX]]: the equivalent [[X11]] interface to OpenGL
*[[
*[[Apple
*[[OpenGL]]
*[[OpenGL Utility Toolkit|GLUT]]: A higher level interface that hides the differences between WGL, GLX, etc.
==External links==
* [
* [
{{
{{
{{OS X}}
[[Category:Application programming interfaces]]
[[Category:Graphics standards]]
[[Category:OpenGL]]
|