Add basic light probes.

Add CC3LightProbe class. Light probes tracked by CC3Scene lightProbes array.
Add light probe shader semantics for uniforms and textures. Add light probes
to standard shaders. Add light probe to CC3DemoMashUp.
Move texture mgmt during drawing to CC3Material.
When binding GL texture to target, unbind all other targets.
Add CC3NodeDrawingVisitor bindEnvironmentalTextures method.
Add CC3Texture textureWithSize:andColor: and textureCubeColoredForAxes
methods as convenience for creating test textures.
Add CC3OpenGL dumpTextureBindings method as convenience during testing.
Simplify the creation of CC3Framebuffer surfaces and CC3EnvironmentMapTextures.

Added a number of convenience init and creation methods to CC3Framebuffer
and CC3EnvironmentMapTexture. CC3DemoMashUp uses new CC3EnvironmentMapTexture
and CC3GLFramebuffer creation methods. Renamed and deprecated a number of
CC3Texture init and creation methods for more consistent naming.
Merge PG fixes.

CC3Texture update texture parameters after generating mipmap.
To avoid clearing vertex content, CC3VertexColors initFromCPODData:fromSPODMesh:
method now doesn't use setter to ensure elementSize set to 4. Fix LogTrace
compilation issues. Light probe changes compatible with OpenGL ES 1.1.
CC3GLSLUniformOverride tracks and updates program and pureColorProgram
uniforms separately.
Rendering under Cocos2D 3.1.

CC3Layer uses CCRenderer to submit CC3Scene rendering.
Support render queue GL state management. Remove use of Kazmath matrices.
Rename CC3GLViewSurfaceManager to CC3SurfaceManager.
Support use of CCGLView instead of CC3GLView to define system surfaces
and GL context. CC3ControllableLayer does not require controller.
Picking rendering surface is always dedicated. Surface manager as singleton.
Add CCRenderer to CC3NodeDrawingVisitor.
CC3DemoMashUpAppDelegate uses Cocos2D 3.x config set-up.
Add debug labels to all GL objects.

Add debug labels to all GL objects.
CC3GLFramebuffer and CC3GLRenderbuffer subclasses from CC3Identifiable.
Update CC3DemoMashUp to assign names to surfaces.
Consolidate CC3OpenGLUtility source files.
Add support for GL stream group & event markers.

Add GL stream group & event marker methods to CC3OpenGL.
Add CC3OpenGL captureOpenGLFrame method.
CC3NodeVisitor push & pop stream group to render each mesh node.
CC3Billboard push & pop stream group to render 2D CCNode.
Add CC3Node renderStreamGroupMarker property.
Add CC3LayerRenderCommand to specialize rendering 3D scenes.
Render CC3Billboards on Cocos2D 3.1 render queue.

CC3NodeDrawingVisitor supports alternate CCRenderer for CC3Billboards.
Add CC3NodeDrawingVisitor layerTransformMatrix property.
CC3ControllableLayer allows no controller.
CC3LayerRenderCommand supports visitor.
Move renderStreamGroupMarker from CC3LayerRenderCommand to CC3Layer.
CC3Layer assigns drawing visitor, not CC3Scene. CC3Layer creates
CC3LayerRenderCommand on each render frame.
CC3Scene drawScene method changed to drawSceneWithVisitor:.
Add Cocos2D v3 touch handling to CC3DemoMashUp.
Add sub-window option to CC3DemoMashUp under Cocos2D v3.
Replace all use of CC3GLView with CCGLView, and deprecate CC3GLView.

Replace all use of CC3GLView with CCGLView, and deprecate CC3GLView.
Consolidate all CC3GLView platform-implementations into one CCGLView extension.
CC3OpenGL always retrieve GL context from CCGLView.
Simplify CC3GLFramebuffer & CC3GLRenderbuffer class hierarchy.
Rename CCRenderCommand invoke: method to invokeOnRenderer:.
Add support for GLKit structures.

Add functions to convert between CC3Vector & GLKVector3.
Add functions to convert between CC3Vector4 & GLKVector4.
Add functions to convert between CC3Quaternion & GLKQuaternion.
Add functions to populate between CC3Matrix3x3 & GLKMatrix3.
Add functions to populate between CC3Matrix4x4 & GLKMatrix4.
Change CC3NodeDrawingVisitor matrix accessor declarations to const.
Fixes to support OSX under Cocos2D 3.1.

CC3GLRenderbuffer & CC3GLFramebuffer allows zero ID to be explicitly
set without instance later attempting to create a GL object.
Add dummy CCGLView methods addGestureRecognizer: & removeGestureRecognizer:
under OSX, for compatibility with iOS.
CC3Billboard blendFunc set from CCNode blendFunc under Cocos2D 3.1.
Refactor CC3SurfaceManager and add surface manager for each CC3Layer.

Refactor CC3SurfaceManager into class hierarchy. Add CC3ViewSurfaceManager
subclass with singleton and containing all view-related surfaces. Add
CC3LayerSurfaceManager tied to layer size and containing picking surface.
Move CC3ViewSurfaceManager pickingSurface & viewColorBuffer properties.
Remove CC3RenderSurface validate method. Auto valiate when size or attachments
changed. Add bind method to CC3GLRenderbuffer.
Deprecate CC3Scene viewSurfaceManager & viewSurface properties.
Remove withSize: instantiation method options from surfaces and
renderbuffers. Surface size set either via property after instantiation,
or when added to a surface manager. Remove CC3RenderSurfaceAttachment
reSizeTo: method and make size property writable.
Move tracking and setting GL viewport to surfaces from camera.
Node picking from touch uses current surface coordinates.
Update CC3Viewport structure to union, allowing origin & size components
as alternate to x, y, z & w components.
Fixes to project image asset libraries
Auto-instantiate CC3Scene subclass instance from CC3Layer.

Lazily instantiate CC3Scene subclass instance from CC3Layer cc3Scene property
accessor. Add CC3Layer cc3SceneClass property. Auto-derive scene class name
from layer class name. Default CC3Scene name set to class name.
Demo & template projects let scene be created by layer.
Update to current Cocos2D v3.1.

Cocos3D app template using Cocos2D v3.1.
Add CC3LayerRenderCommand globalSortOrder to support latest Cocos2D v3.1.
Fix viewport origin change when changing CC3Layer position.
Add bundle support for Cocos3D static library resources.

Add bundle support for Cocos3D static library resources, particularly GLSL
shaders. Add CC3ResolveResourceFilePath function to locate files in app or
stat lib bundle resource directories. All file loading occurs through
resolved paths. Add NSBundle category to resolve Cocos3DResources bundle.
All demo projects copy Cocos3DResources bundle from Cocos3D stat lib.
Remove redundant GLSL source file loading from PVRT PFX loader.