Issue render target serials per texture storage.

TRAC #18730
Signed-off-by: Daniel Koch
Author: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/trunk@855 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Renderbuffer.cpp b/src/libGLESv2/Renderbuffer.cpp
index fc56db1..a39c4ad 100644
--- a/src/libGLESv2/Renderbuffer.cpp
+++ b/src/libGLESv2/Renderbuffer.cpp
@@ -16,9 +16,9 @@
 
 namespace gl
 {
-unsigned int RenderbufferInterface::mCurrentSerial = 1;
+unsigned int RenderbufferStorage::mCurrentSerial = 1;
 
-RenderbufferInterface::RenderbufferInterface() : mSerial(issueSerial())
+RenderbufferInterface::RenderbufferInterface()
 {
 }
 
@@ -52,16 +52,6 @@
     return dx2es::GetStencilSize(getD3DFormat());
 }
 
-unsigned int RenderbufferInterface::getSerial() const
-{
-    return mSerial;
-}
-
-unsigned int RenderbufferInterface::issueSerial()
-{
-    return mCurrentSerial++;
-}
-
 RenderbufferTexture::RenderbufferTexture(Texture *texture, GLenum target) : mTexture(texture), mTarget(target)
 {
 }
@@ -94,15 +84,20 @@
 {
     return mTexture->getInternalFormat();
 }
- 
+
+D3DFORMAT RenderbufferTexture::getD3DFormat() const
+{
+    return mTexture->getD3DFormat();
+}
+
 GLsizei RenderbufferTexture::getSamples() const
 {
     return 0;
 }
 
-D3DFORMAT RenderbufferTexture::getD3DFormat() const
+unsigned int RenderbufferTexture::getSerial() const
 {
-    return mTexture->getD3DFormat();
+    return mTexture->getRenderTargetSerial(mTarget);
 }
 
 Renderbuffer::Renderbuffer(GLuint id, RenderbufferInterface *instance) : RefCountObject(id)
@@ -194,7 +189,7 @@
     mInstance = newStorage;
 }
 
-RenderbufferStorage::RenderbufferStorage()
+RenderbufferStorage::RenderbufferStorage() : mSerial(issueSerial())
 {
     mWidth = 0;
     mHeight = 0;
@@ -232,14 +227,31 @@
     return mInternalFormat;
 }
 
+D3DFORMAT RenderbufferStorage::getD3DFormat() const
+{
+    return mD3DFormat;
+}
+
 GLsizei RenderbufferStorage::getSamples() const
 {
     return mSamples;
 }
 
-D3DFORMAT RenderbufferStorage::getD3DFormat() const
+unsigned int RenderbufferStorage::getSerial() const
 {
-    return mD3DFormat;
+    return mSerial;
+}
+
+unsigned int RenderbufferStorage::issueSerial()
+{
+    return mCurrentSerial++;
+}
+
+unsigned int RenderbufferStorage::issueCubeSerials()
+{
+    unsigned int firstSerial = mCurrentSerial;
+    mCurrentSerial += 6;
+    return firstSerial;
 }
 
 Colorbuffer::Colorbuffer(IDirect3DSurface9 *renderTarget) : mRenderTarget(renderTarget)