Add a method to return the Texture serial of a Renderbuffer, or zero if this is a non-texture Renderbuffer.
TRAC #24039
Signed-off-by: Geoff Lang
Signed-off-by: Shannon Woods
diff --git a/src/libGLESv2/Renderbuffer.cpp b/src/libGLESv2/Renderbuffer.cpp
index a21fe2b..fd01cd5 100644
--- a/src/libGLESv2/Renderbuffer.cpp
+++ b/src/libGLESv2/Renderbuffer.cpp
@@ -100,6 +100,11 @@
return mTexture2D->getRenderTargetSerial(mLevel);
}
+unsigned int RenderbufferTexture2D::getTextureSerial() const
+{
+ return mTexture2D->getTextureSerial();
+}
+
///// RenderbufferTextureCubeMap Implementation ////////
RenderbufferTextureCubeMap::RenderbufferTextureCubeMap(TextureCubeMap *texture, GLenum faceTarget, GLint level)
@@ -165,6 +170,11 @@
return mTextureCubeMap->getRenderTargetSerial(mFaceTarget, mLevel);
}
+unsigned int RenderbufferTextureCubeMap::getTextureSerial() const
+{
+ return mTextureCubeMap->getTextureSerial();
+}
+
///// RenderbufferTexture3DLayer Implementation ////////
RenderbufferTexture3DLayer::RenderbufferTexture3DLayer(Texture3D *texture, GLint level, GLint layer)
@@ -230,6 +240,11 @@
return mTexture3D->getRenderTargetSerial(mLevel, mLayer);
}
+unsigned int RenderbufferTexture3DLayer::getTextureSerial() const
+{
+ return mTexture3D->getTextureSerial();
+}
+
////// RenderbufferTexture2DArrayLayer Implementation //////
RenderbufferTexture2DArrayLayer::RenderbufferTexture2DArrayLayer(Texture2DArray *texture, GLint level, GLint layer)
@@ -293,6 +308,11 @@
return mTexture2DArray->getRenderTargetSerial(mLevel, mLayer);
}
+unsigned int RenderbufferTexture2DArrayLayer::getTextureSerial() const
+{
+ return mTexture2DArray->getTextureSerial();
+}
+
////// Renderbuffer Implementation //////
Renderbuffer::Renderbuffer(rx::Renderer *renderer, GLuint id, RenderbufferInterface *instance) : RefCountObject(id)
@@ -405,6 +425,11 @@
return mInstance->getSerial();
}
+unsigned int Renderbuffer::getTextureSerial() const
+{
+ return mInstance->getTextureSerial();
+}
+
void Renderbuffer::setStorage(RenderbufferStorage *newStorage)
{
ASSERT(newStorage != NULL);
diff --git a/src/libGLESv2/Renderbuffer.h b/src/libGLESv2/Renderbuffer.h
index c278b26..5e66bb2 100644
--- a/src/libGLESv2/Renderbuffer.h
+++ b/src/libGLESv2/Renderbuffer.h
@@ -56,6 +56,7 @@
virtual GLsizei getSamples() const = 0;
virtual unsigned int getSerial() const = 0;
+ virtual unsigned int getTextureSerial() const = 0;
private:
DISALLOW_COPY_AND_ASSIGN(RenderbufferInterface);
@@ -81,6 +82,7 @@
virtual GLsizei getSamples() const;
virtual unsigned int getSerial() const;
+ virtual unsigned int getTextureSerial() const;
private:
DISALLOW_COPY_AND_ASSIGN(RenderbufferTexture2D);
@@ -109,6 +111,7 @@
virtual GLsizei getSamples() const;
virtual unsigned int getSerial() const;
+ virtual unsigned int getTextureSerial() const;
private:
DISALLOW_COPY_AND_ASSIGN(RenderbufferTextureCubeMap);
@@ -138,6 +141,7 @@
virtual GLsizei getSamples() const;
virtual unsigned int getSerial() const;
+ virtual unsigned int getTextureSerial() const;
private:
DISALLOW_COPY_AND_ASSIGN(RenderbufferTexture3DLayer);
@@ -167,6 +171,7 @@
virtual GLsizei getSamples() const;
virtual unsigned int getSerial() const;
+ virtual unsigned int getTextureSerial() const;
private:
DISALLOW_COPY_AND_ASSIGN(RenderbufferTexture2DArrayLayer);
@@ -196,6 +201,7 @@
virtual GLsizei getSamples() const;
virtual unsigned int getSerial() const;
+ virtual unsigned int getTextureSerial() const { return 0; }
static unsigned int issueSerials(GLuint count);
@@ -249,6 +255,7 @@
GLsizei getSamples() const;
unsigned int getSerial() const;
+ unsigned int getTextureSerial() const;
void setStorage(RenderbufferStorage *newStorage);