Class

GLKView

A default implementation for views that draw their content using OpenGL ES.

Overview

The GLKView class simplifies the effort required to create an OpenGL ES application by directly managing a framebuffer object on your behalf; your application simply needs to draw into the framebuffer when the contents need to be updated.

To use this class in your application, create a new GLKView object and provide it an OpenGL ES context. Then, modify the view’s drawableColorFormat, drawableDepthFormat, drawableStencilFormat, and drawableMultisample properties to configure the format of the drawable’s framebuffer object. After this, the view automatically creates or updates the framebuffer object whenever the view must be redrawn. A GLKView object uses the regular view drawing cycle for a UIView object, calling its draw(_:) method whenever the contents of the view need to be updated. Before calling its draw(_:) method, the view makes its EAGLContext object the current OpenGL ES context and binds its framebuffer object to the OpenGL ES context as the target for rendering commands. Your application’s implementation of the draw(_:) method should call one or more OpenGL ES functions to render an image into the framebuffer object. Then, the view resolves any multisampling that you may have enabled and delivers the finished results.

The GLKView class can be used in conjunction with a GLKViewController object to create an animation rendering loop that redraws the contents of the view at a specified frame rate.

Subclassing Notes

Typically, there is no need to subclass the GLKView class. Instead, provide a delegate object to draw the view’s contents. See GLKViewDelegate.

Symbols

Initializing the View

Delegate

var delegate: GLKViewDelegate?

The view’s delegate.

Configuring the Framebuffer Object

var drawableColorFormat: GLKViewDrawableColorFormat

The format of the color renderbuffer.

var drawableDepthFormat: GLKViewDrawableDepthFormat

The format of the depth renderbuffer

var drawableStencilFormat: GLKViewDrawableStencilFormat

The format of the stencil renderbuffer.

var drawableMultisample: GLKViewDrawableMultisample

The format of the multisampling buffer.

Read-only Framebuffer Properties

var drawableHeight: Int

The height, in pixels, of the underlying framebuffer object.

var drawableWidth: Int

The width, in pixels, of the underlying framebuffer object.

Drawing Your View’s Contents

var context: EAGLContext

The OpenGL ES context used when drawing the view’s contents.

func bindDrawable()

Binds the underlying framebuffer object to OpenGL ES.

var enableSetNeedsDisplay: Bool

A Boolean value that indicates whether the view responds to messages that invalidate the view’s contents.

func display()

Redraws the view’s contents immediately.

var snapshot: UIImage

Draws the contents of the view and returns them as a new image object.

Deleting the View’s Underlying Framebuffer Object

func deleteDrawable()

Deletes the drawable object associated with the view.

Constants

GLKViewDrawableColorFormat

The format of the color renderbuffer.

GLKViewDrawableDepthFormat

The format of the depth renderbuffer.

GLKViewDrawableStencilFormat

The format of the stencil renderbuffer.

GLKViewDrawableMultisample

The format of the multisampling buffer.