Add CC3GLBackgounder.

Add CC3GLBackgounder cluster. CC3OpenGL sharedGL singleton tracks separate instances
for rendering and background threads. CC3GLViewSurfaceManager tracks view. Manage
multiple GL contexts. Refactor CC3OSExtensions.h and related includes.
Repair confict between background and rendering contexts.

Remove VAO reference during VBO binding and move to 2D transition. Remove GL error
check during VBO binding. Repair strong references in CC3ModelSampleFactory.
In CC3DemoMashUp, move most of the scene creation to an asychronous background
thread, loading content while the scene is running.
Minor fixes.

Turn off GL tracing in cocos3d-library-iOS project. Add notes regarding adding
children and PODs on a background thread. Move addContentFromPODFile: and
addContentFromPODFile:withName: to CC3Node extension from CC3Scene.
Fix VAO crash.
Add CC3ShaderProgram init methods with default semantic delegate.

Add CC3ShaderProgram init methods with default semantic delegate.
Minor renaming of other CC3ShaderProgram init methods. Bump map shaders
auto-selected only if material has at least two textures.
Create partial animation track from existing track.

Add CC3NodeAnimationSegment class to support animating a segment of a full
animation. Add CC3Node methods to create animation track from segment of existing
animation track. CC3DemoMashUp add dragon example of animation blending.
Rebrand cocos3d logos and launch images.

Rebrand cocos3d logos and launch images. Refactor cocos3d templates.
Fix compilation issue with GL VAO call under OpenGL ES 1.1.
Move template project icons and launch images to Xcode groups.
Pre-warm shader programs after linking to avoid transient freezes.

Add CC3ShaderProgramPrewarmer to prewarm each shader program after linking by
drawing a dummy mesh to force lazy compile in GL engine. Populate CC3GLSLUniforms
with appropriate default values. Add CC3ShaderContext shouldEnforceCustomOverrides
property to allow context to ignore unknown semantics, and substitute the default
value. Support setting 2x2 matrix in uniform via a CC3Vector4.

Add CC3Texture samplerSemantic property to clarify texture semantic type. Populate
shader with correct texture defaults when shader supports both 2D & cube-map textures,
and either one or both are missing in material. CC3Material textureForTextureUnit:
method returns nil if texture unit not present. CC3NodeDrawingVisitor init shader
matrices with identity matrices if not populated by scene.
Fix background loading under OSX.

GL primary context can be used from either main thread or OSX rendering thread.
Fix use of incorrect CC3GLViewSurfaceManager initializer from view under OSX.
Fix race condition in CC3Node nodeWasDestroyed: when destroyed node is the
receiver's target.
Various fixes to camera and bounding volumes.

CC3Node createBoundingVolume only creates BV if one does not exist already.
Fix bounding volume display issues when primary node is tinted or faded.
Ensure BV when requesting it be drawn or intersections logged.
Add convenience debug logging of camera move...toShowAllOf... methods.
Remove mesh & material switching tests.
Add shouldBlendAtFullOpacity property to CC3Material and CC3Node.

Add shouldBlendAtFullOpacity property to CC3Material and CC3Node to help control
how changing the opacity of a material affects the blending properties.
Extract CGImageRef from rendered framebuffer.

Add CC3RenderSurface createCGImage and createCGImageFrom: methods to extract a
CGImageRef from a rendered surface. Add example of extracting and saving image
to file to CC3DemoMashUp.
Add pre-loading of shaders to fix unexpected pause during mid-scene loading.

Add pre-loading of shaders to fix unexpected pause during mid-scene loading. CC3Cache
can store both weak and strong links. CC3Cache can clear entried of a particular type.
Add isPreloading property to resource, texture & shader caches to allow them to be
selectively cached weakly during normal cache operation, or strongly if pre-loading
in advance of use. Add ability to reset GL state on shader programs and GLSL variables.
Reset GL state on shader program after pre-warming on background thread, to ensure
foreground state is accurate. Add CC3ShaderContext shouldEnforceVertexAttributes
property. CC3Node doesIntersectFrustum: now returns YES if either node bounding
volume or frustum is nil.
Add CC3OpenGL releaseShaderCompiler & shader var range queries.

Add CC3OpenGL releaseShaderCompiler & shader var range queries. Don't log
redundant GL info when starting background GL context. Move prewarmer ivar
to CC3OpenGLProgPipeline. Fix CC3DemoMashUp cylindrical text blending.
CC3Backgrounder now uses GCD queue.

CC3Backgrounder now uses GCD queue with settable queue and thread priority.
LogRez loading times in milliseconds. LogRez mipmap generation timing.
Fix cube-map texture name from pattern. Add debug logging of timings.
CC3DemoMashUp rename preloadShaderPrograms to preloadAssets and preload some textures.
Performance improvements in automatic environment maps.

Don't generate all six env map sides on first frame, which caused stall.
Reduce texture sizes in CC3DemoMashUp to reduce memory requirements.
Ensure textures and buffers are unbound in state tracker when they are deleted.

Ensure textures and buffers are unbound in state tracker when they are deleted.
Add CC3OpenGL disableTexturingAt: and invoke from disableTexturingFrom:.
Add elapsed scene time to CC3Scene and shader semantics.

Add CC3Scene elapsedTimeSinceOpened property. Rename kCC3SemanticApplicationTime...
semantics to kCC3SemanticSceneTime..., and base them on elapsedTimeSinceOpened
property of the scene.