iOS Developer Library


GLKit Framework Reference

Introduction to GLKit

Classes   Protocols   Other Reference  

The GLKit framework provides functions and classes that reduce the effort required to create new shader-based apps or to port existing apps that rely on fixed-function vertex or fragment processing provided by earlier versions of OpenGL ES or OpenGL.

GLKit Features

GLKit provides functionality in four key areas:

  • Texture loading allows your app to easily load textures from a variety of sources. Textures can even be loaded asynchronously in the background with just a few lines of code. For more information, see GLKTextureLoader Class Reference.

  • Math libraries provide commonly used vector, quaternion and matrix operations. These implementations are optimized to provide great performance.

  • Effects provide standard implementations of common shader effects. You configure the effect and the associated vertex data; the effect creates and loads an appropriate shader. GLKit includes three effects: The GLKBaseEffect class implements a critical subset of the OpenGL ES 1.1 shading and lighting model, the GLKReflectionMapEffect class extends the base effect to include reflection mapping support, and the GLKSkyboxEffect class provides an implementation of a skybox effect.

  • Views and View Controllers provide a standard implementation of an OpenGL ES view and a corresponding view controller. This reduces the amount of code needed to create an iOS app that use OpenGL ES. For more information, see GLKView Class Reference and GLKViewController Class Reference.

On iOS, GLKit requires an OpenGL ES 2.0 context. On OS X, GLKit requires an OpenGL context that supports the OpenGL 3.2 Core Profile.



NSObject is the root class of most Objective-C class hierarchies.


The GLKBaseEffect class provides shaders that mimic many of the behaviors provided by the OpenGL ES 1.1 lighting and shading model, including materials, lighting and texturing.


The GLKReflectionMapEffect class extends the base effect to add an additional texturing stage that performs reflection mapping.


The GLKEffectProperty class is an abstract class for classes that represent specific kinds of configuration information for a graphics effect.


The GLKEffectPropertyFog class defines properties used to configure how fog is applied to an effect.


The GLKEffectPropertyLight class defines properties for a single light applied to an effect.


The GLKEffectPropertyMaterial class defines properties used to configure the characteristics of the surface being lit.


The GLKEffectPropertyTexture class defines properties that are used to configure an OpenGL texturing operation.


The GLKEffectPropertyTransform class defines properties that provide the coordinate transformations to be performed when rendering the effect.





The GLKSkyboxEffect provides a standard skybox effect for your application.



When your app loads textures using the GLKTextureLoader class, the texture loader returns information about the textures using GLKTextureInfo objects.


The GLKTextureLoader class simplifies the effort required to load your texture data.


The UIViewController class provides the infrastructure for managing the views of your iOS apps.


The GLKViewController class provides all of the standard view controller functionality, but additionally implements an OpenGL ES rendering loop.


The UIView class defines a rectangular area on the screen and the interfaces for managing the content in that area.


The GLKView class simplifies the effort required to create an OpenGL ES application by providing a default implementation of an OpenGL ES-aware view.



Objects that implement the GLKNamedEffect protocol provide rendering support to shader-based apps.


Objects that implement the GLKViewControllerDelegate protocol may act as delegates for a GLKViewController object.


An object that implements the GLKViewDelegate protocol can be set as a GLKView object’s delegate.

Other Reference

GLKMatrix3 Reference

GLKMatrix4 Reference

GLKVector2 Reference

GLKVector3 Reference

GLKVector4 Reference

GLKQuaternion Reference

GLKit Math Utilities

GLKit Effects Constants Reference