Add serial tracking to ProgramBinary
Trac #21270
Bug=351
Signed-off-by: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1232 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index 3977f20..6eebb8a 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -57,7 +57,9 @@
{
}
-ProgramBinary::ProgramBinary()
+unsigned int ProgramBinary::mCurrentSerial = 1;
+
+ProgramBinary::ProgramBinary() : mSerial(issueSerial())
{
mDevice = getDevice();
@@ -123,6 +125,16 @@
}
}
+unsigned int ProgramBinary::getSerial() const
+{
+ return mSerial;
+}
+
+unsigned int ProgramBinary::issueSerial()
+{
+ return mCurrentSerial++;
+}
+
IDirect3DPixelShader9 *ProgramBinary::getPixelShader()
{
return mPixelExecutable;
diff --git a/src/libGLESv2/ProgramBinary.h b/src/libGLESv2/ProgramBinary.h
index 8a587b9..f928644 100644
--- a/src/libGLESv2/ProgramBinary.h
+++ b/src/libGLESv2/ProgramBinary.h
@@ -155,6 +155,8 @@
bool validateSamplers(InfoLog *infoLog);
bool isValidated() const;
+ unsigned int getSerial() const;
+
static std::string decorateAttribute(const std::string &name); // Prepend an underscore
static std::string undecorateUniform(const std::string &_name); // Remove leading underscore
@@ -219,6 +221,11 @@
GLint mDxPointsOrLinesLocation;
bool mValidated;
+
+ const unsigned int mSerial;
+
+ static unsigned int issueSerial();
+ static unsigned int mCurrentSerial;
};
}