Last Revision:
Version 3.0, 2015-08-07
Updated to use storyboards, ARC, and modern App coding practices.
(Full Revision History)
Build Requirements:
OS X 10.8 or later. Xcode 5 or later. iOS SDK 5.0 or later.
Runtime Requirements:
OS X 10.8 or later. iOS 5.0 or later (with OpenGL ES 2.0 support).

This sample provides an example of some essential OpenGL functionality. There are usages of Vertex Buffer Objects (VBOs), Vertex Array Objects (VAOs), Framebuffer Objects (FBO), and GLSL Program Objects. It creates a VAO and VBOs from model data loaded in. It creates a texture for the model from image data and GLSL shaders from source also loaded in. It also creates an FBO and texture to render a reflection of the model. It uses an environment mapping GLSL program to apply the reflection texture to a plane. This sample also demonstrates sharing of OpenGL source code between iOS and OS X. Additionally, it implements fullscreen rendering, retina display support, and demonstrates how to obtain and use an OpenGL Core Profile rendering context on OS X.