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)