### GLPaint ###
The GLPaint sample application demonstrates how to support single finger painting using OpenGL ES. This sample also shows how to detect a "shake" motion of the device.
By looking at the code you'll see how to set up an OpenGL ES view and use it for rendering painting strokes. The application creates a brush texture from an image by first drawing the image into a Core Graphics bitmap context. It then uses the bitmap data for the texture.
To use this sample, open it in Xcode and click Build and Go. After the application paints "Shake Me", shake the device to erase the words. Touch a color to choose it. Paint by dragging a finger.
NOTE: When you run the application in the simulator, you can use the Shake Gesture key under Hardware to simulate the shake motion.
iOS 7.0 SDK
iOS 5.0 or later
UIApplication's delegate class.
The central controller of the application. Handles shake and other motion events.
The class responsible for the finger painting. The class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass. The view content is basically an EAGL surface you render your OpenGL scene into.
A simple Objective-C wrapper around Audio Services functions that allow the loading and playing of sound files.
The main entry point for the GLPaint application.
Contains the path used to display "Shake Me" after the application launches.
The texture used for the paint brush.
Version 1.13
Updated for iOS 7 and 64-bit.
Version 1.12
Updated with OpenGL ES 2.0. Added a root view controller. Moved main controls from the UIApplication delegate to the new PaintingViewController class. Replaced the HSL2RGB() function with UIColor's +colorWithHue:saturation:brightness:alpha:.
Version 1.11
Updated to take into account the view's contentScaleFactor.
Updated to draw strictly with premultiplied alpha pixel data.
Version 1.9
Upgraded project to build with the iOS 4.0 SDK.
Fixed minor bugs.
Version 1.8
Removed duplicate lines in setting up OpenGL blending.
Version 1.7
Updated for iPhone OS 3.1. Set texture parameters before creating the texture. This will save texture memory and texture loading time.
Use the shake API available in iPhone OS 3.0 and later.
Made the sample xib-based.
Version 1.6
Updated for and tested with iPhone OS 2.0. First public release.
Version 1.5
Minor changes to the comments.
There are no code changes in this version.
Version 1.4
Updated for Beta 6.
Updated code to use revised EAGL API.
Removed TouchView and Texture2D classes.
Replaced the views used to choose brush color with a segmented control.
Replace the Texture2D class with code that creates a texture using a Core Graphic bitmap graphics context.
Speeded up the "Shake Me" instructions that appear at the start of the application.
Revised touch handling to use the begin, moved, end, and cancelled methods instead of touchesChanged:withEvent;
Version 1.3
Updated for Beta 4. 
Changed project setting related to code signing.
Replaced pixel buffer objects with framebuffer objects.
Version 1.2
Added an icon and a default.png file.
Version 1.1 
Updated for Beta 2.
Copyright (C) 2009-2014 Apple Inc. All rights reserved.