Accept RenderTargets as parameters to Image::copy.
This gives us the flexibility to use copy internally for Textures
as well as FBO attachments. This will be useful for the TexSubImage
performance workaround.
BUG=angle:729
Change-Id: I4df8ef3a5a928d44ef84100cd96a5d35f12b47fa
Reviewed-on: https://chromium-review.googlesource.com/219863
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/renderer/Image.cpp b/src/libGLESv2/renderer/Image.cpp
index 40721f3..370f660 100644
--- a/src/libGLESv2/renderer/Image.cpp
+++ b/src/libGLESv2/renderer/Image.cpp
@@ -9,6 +9,8 @@
// surfaces or resources.
#include "libGLESv2/renderer/Image.h"
+#include "libGLESv2/Framebuffer.h"
+#include "libGLESv2/main.h"
namespace rx
{
@@ -25,4 +27,18 @@
mDirty = false;
}
+void Image::copy(GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height, gl::Framebuffer *source)
+{
+ gl::FramebufferAttachment *colorbuffer = source->getReadColorbuffer();
+
+ if (!colorbuffer)
+ {
+ return gl::error(GL_OUT_OF_MEMORY);
+ }
+
+ RenderTarget *renderTarget = GetAttachmentRenderTarget(colorbuffer);
+ ASSERT(renderTarget);
+ copy(xoffset, yoffset, zoffset, x, y, width, height, renderTarget);
+}
+
}