diff --git a/src/libGLESv2/Renderbuffer.cpp b/src/libGLESv2/Renderbuffer.cpp
index 2e05f38..2851908 100644
--- a/src/libGLESv2/Renderbuffer.cpp
+++ b/src/libGLESv2/Renderbuffer.cpp
@@ -106,6 +106,11 @@
     return mTexture2D->getRenderTargetSerial(mLevel);
 }
 
+bool RenderbufferTexture2D::isTexture() const
+{
+    return true;
+}
+
 unsigned int RenderbufferTexture2D::getTextureSerial() const
 {
     return mTexture2D->getTextureSerial();
@@ -181,6 +186,11 @@
     return mTextureCubeMap->getRenderTargetSerial(mFaceTarget, mLevel);
 }
 
+bool RenderbufferTextureCubeMap::isTexture() const
+{
+    return true;
+}
+
 unsigned int RenderbufferTextureCubeMap::getTextureSerial() const
 {
     return mTextureCubeMap->getTextureSerial();
@@ -256,6 +266,11 @@
     return mTexture3D->getRenderTargetSerial(mLevel, mLayer);
 }
 
+bool RenderbufferTexture3DLayer::isTexture() const
+{
+    return true;
+}
+
 unsigned int RenderbufferTexture3DLayer::getTextureSerial() const
 {
     return mTexture3D->getTextureSerial();
@@ -329,6 +344,11 @@
     return mTexture2DArray->getRenderTargetSerial(mLevel, mLayer);
 }
 
+bool RenderbufferTexture2DArrayLayer::isTexture() const
+{
+    return true;
+}
+
 unsigned int RenderbufferTexture2DArrayLayer::getTextureSerial() const
 {
     return mTexture2DArray->getTextureSerial();
@@ -451,6 +471,11 @@
     return mInstance->getSerial();
 }
 
+bool Renderbuffer::isTexture() const
+{
+    return mInstance->isTexture();
+}
+
 unsigned int Renderbuffer::getTextureSerial() const
 {
     return mInstance->getTextureSerial();
@@ -529,6 +554,16 @@
     return firstSerial;
 }
 
+bool RenderbufferStorage::isTexture() const
+{
+    return false;
+}
+
+unsigned int RenderbufferStorage::getTextureSerial() const
+{
+    return -1;
+}
+
 Colorbuffer::Colorbuffer(rx::Renderer *renderer, rx::SwapChain *swapChain)
 {
     mRenderTarget = renderer->createRenderTarget(swapChain, false); 
