Add the shader version of the compiled shaders to the program binary.

Also increment the binary version.

TRAC #23182

Signed-off-by: Shannon Woods
Signed-off-by: Nicolas Capens
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2368 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index 91c33bf..468d498 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -90,6 +90,7 @@
     mUsedVertexSamplerRange = 0;
     mUsedPixelSamplerRange = 0;
     mUsesPointSize = false;
+    mShaderVersion = 100;
 }
 
 ProgramBinary::~ProgramBinary()
@@ -121,6 +122,11 @@
     return mSerial;
 }
 
+int ProgramBinary::getShaderVersion() const
+{
+    return mShaderVersion;
+}
+
 unsigned int ProgramBinary::issueSerial()
 {
     return mCurrentSerial++;
@@ -1545,6 +1551,7 @@
     stream.read(&mUsedVertexSamplerRange);
     stream.read(&mUsedPixelSamplerRange);
     stream.read(&mUsesPointSize);
+    stream.read(&mShaderVersion);
 
     size_t size;
     stream.read(&size);
@@ -1738,6 +1745,7 @@
     stream.write(mUsedVertexSamplerRange);
     stream.write(mUsedPixelSamplerRange);
     stream.write(mUsesPointSize);
+    stream.write(mShaderVersion);
 
     stream.write(mUniforms.size());
     for (unsigned int uniformIndex = 0; uniformIndex < mUniforms.size(); ++uniformIndex)
@@ -1870,6 +1878,8 @@
         return false;
     }
 
+    mShaderVersion = vertexShader->getShaderVersion();
+
     std::string pixelHLSL = fragmentShader->getHLSL();
     std::string vertexHLSL = vertexShader->getHLSL();