Add a helper to replace FBO attachment's getSerial.
Ideally we could store a render target serial in the render target
itself. For now, this helper function allows us to finally stop
exposing rx::RenderTarget from gl::Texture.
BUG=angle:732
Change-Id: I4ffc5e0af6f0542212ad4e74adced21ebbd89462
Reviewed-on: https://chromium-review.googlesource.com/217330
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/Framebuffer.cpp b/src/libGLESv2/Framebuffer.cpp
index 4430e50..e82e34d 100644
--- a/src/libGLESv2/Framebuffer.cpp
+++ b/src/libGLESv2/Framebuffer.cpp
@@ -29,6 +29,7 @@
gl::Texture *texture = attachment->getTexture();
ASSERT(texture);
TextureD3D *textureD3D = TextureD3D::makeTextureD3D(texture->getImplementation());
+
return textureD3D->getRenderTarget(attachment->mipLevel(), attachment->layer());
}
@@ -39,6 +40,24 @@
return renderbuffer->getStorage()->getRenderTarget();
}
+// Note: RenderTarget serials should ideally be in the RenderTargets themselves.
+unsigned int GetAttachmentSerial(gl::FramebufferAttachment *attachment)
+{
+ if (attachment->isTexture())
+ {
+ gl::Texture *texture = attachment->getTexture();
+ ASSERT(texture);
+ TextureD3D *textureD3D = TextureD3D::makeTextureD3D(texture->getImplementation());
+ return textureD3D->getRenderTargetSerial(attachment->mipLevel(), attachment->layer());
+ }
+
+ gl::Renderbuffer *renderbuffer = attachment->getRenderbuffer();
+ ASSERT(renderbuffer);
+
+ // TODO: cast to RenderbufferD3D
+ return renderbuffer->getStorage()->getSerial();
+}
+
}
namespace gl