Fog as post-processing effect under GLSL.

CC3Fog now subclass of CC3MeshNode, which, under GLSL, is used as a
post-processing render node. Moved CC3Fog to CC3UtilityMeshNodes.h/m files
and deleted CC3Fog.h/m files. Add CC3OpenGL bindFog:withVisitor: method and
move OpenGL ES fog GL config code to CC3OpenGLFixedPipeline. Use post-processing
fog under GLSL in CC3DemoMashUp. Add CC3MeshNode shouldDrawInClipSpace property
that configures any mesh node for clip space. Simplify CC3ClipSpaceNode from this.
Set isRunning of child node in setParent: instead of addChildNow:. Add semantic
kCC3SemanticCameraFrustumDepth for passing frustum depth info to shaders.
Add CC3Fog.fsh shader. Remove fog effect from all fragment shaders.
Remove CC3MultiTextureConfigurable.fsh.

Remove CC3MultiTextureConfigurable.fsh. Remove wooden sign example in
CC3DemoMashUp under OpenGL ES 2.0 & OpenGL OSX.
Support #import & #include statements in shader GLSL source code.

Support #import & #include statements in shader GLSL source code.
Add CC3ShaderSourceCode class cluster to manage and cache GLSL source code.
Refactor standard shaders to use import nesting. CC3ShaderProgramMatcher now
selects vertex and fragment shaders independently. CC3NodeVisitor visit
method now returns boolean indicating whether the visitation should be stopped.
Add wasLoadedFromFile property to CC3Shader & CC3ShaderProgram.
Add CC3Cache objectsSortedByName method. Transform vertex tangents with bones.
Add NSString extension containing method to work with lines.
Add CC3Node hasRigidSkeleton property to auto-select rigid-bone shaders.

Add CC3Node hasRigidSkeleton property to auto-select rigid-bone shaders.
Reorganize CC3Performance template models, and add rigid-bone dragon.
CC3ShaderProgram shouldAutomaticallyAddMatchingPureColorPrograms property
renamed to shouldAutomaticallyPreloadMatchingPureColorPrograms and only
applies if isPreloading property set to YES.
Fix locking and access issue in CC3Cache objectsSortedByName method.
Move shader program from CC3Material to CC3MeshNode.

Move shader program from CC3Material to CC3MeshNode. CC3PODMaterial holds
CC3PFXEffect. CC3PODMeshNode sets shader program from that effect when
assigned that material. CC3Material setTexture:forTextureUnit: method now
tests if existing overlay texture is same before changing.
Fix CC3VertexArray log message to swap "Skipping" and "Creating" references.
Rename various shader classes and files to focus on shaders, not shader programs.

Rename CC3ShaderProgramContext to CC3ShaderContext.
Rename CC3ShaderProgramMatcher to CC3ShaderMatcher.
Rename CC3ShaderProgramMatcherBase to CC3ShaderMatcherBase.
Rename CC3ShaderProgramSemanticsDelegate to CC3ShaderSemanticsDelegate.
Rename CC3ShaderProgramSemanticsBase to CC3ShaderSemanticsBase.
Rename CC3ShaderProgramSemanticsByVarName to CC3ShaderSemanticsByVarName.
Rename CC3ShaderProgramContext to CC3ShaderContext.
Rename CC3ShaderProgramPrewarmer to CC3ShaderPrewarmer.
Rename CC3PFXGLProgramSemantics to CC3PFXShaderSemantics.
Rename CC3PVRShamanGLProgramSemantics to CC3PVRShamanShaderSemantics.
Rename CC3Node selectShaderPrograms to selectShaders.
Rename CC3Node clearShaderPrograms to removeShaders.
Rename CC3MeshNode clearShaderProgram to removeLocalShaders.
Rename CC3ShaderProgram programMatcher class-side property to shaderMatcher.
Rename associated source code files.
Add CC3ShaderProgram shouldAllowDefaultVariableValues property.
Load PFX from directory where POD is located.

Load PFX from directory where POD is located, not just Resources directory.
In CC3DemoMashUp, create a separate PFX file for each mask POD.
Add CC3PODResource properties to specify node, mesh & material classes,
to simplify customizing POD loading via a CC3PODResource subclass.
Various enhancements to template projects.

Raise assertion if POD using bones AND triangle strips.
Set opacity full in template project, and include note to remove
Add comments in template about setting all node config before selecting shaders
Load POD using CC3PODResourceNode nodeFromFile: instead of addContentFromPODFile:.
Fix specular lighting in standard shaders.

Specular lighting in standard shaders incorporates cam dir in model coords.
CC3MeshNode copy copies shader context. Shader context copy copies uniform
overrides. Fix double-selection of shaders for mesh nodes.
Minor cleanup of CC3DemoMashUpScene.
Rename shl/vshl/fshl library shaders to vsh/fsh with Lib in title.
Fix flicker on cocos2d nodes during cocos3d shader prewarming.

Fix flicker on cocos2d nodes during cocos3d shader prewarming.
Rename CC3OpenGL isPrimaryContext property to isRenderingContext.
Fix setting sampler uniform value when node contains no texture.

On each CC3MeshNode draw, reset CC3NodeDrawingVisitor currentTextureUnitIndex
property before, and invoke CC3NodeDrawingVisitor disableUnusedTextureUnits
after, even if material and textures not present.
Remove CC3Material unbindWithVisitor: instance method.
Test on iPad Air with A7 GPU.

Add improved logging of view and multisampling size.
Update to PVRT 3.2.
Update copyrights to 2014.
Fix Apportable issues.

Remove use of NSPredicate parsing as incompatible with Apportable SDK.
Remove use of NSRegularExpressionSearch as incompatible with Apportable SDK.
Specify pthread.h import where needed. Add NSString terminatedLines method.
Fix issue with indexing of bone weights and indices within GLSL. Print GL
error after assertion test instead of before, to avoid duplicate error in log.
Logging enhancements.

Add LogInfoIf/LogDebugIf/LogErrorIf/LogTraceIf/LogRezIf(cond, fmt, ...) macros to
provide conditional logging. Define LogInfoIfPrimary() macro in terms of LogInfoIf().
CC3Cache removeAllObjects and removeAllObjectsOfType: methods output a log warning,
indicating a potential memory leak, for each weakly cached object.