Migrates textures to render targets with copyToRenderTarget in DX11.

TRAC #22211

Author: Shannon Woods
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1653 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index 042db96..7cc3f42 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -24,6 +24,7 @@
 #include "libGLESv2/renderer/IndexBuffer11.h"
 #include "libGLESv2/renderer/VertexDataManager.h"
 #include "libGLESv2/renderer/IndexDataManager.h"
+#include "libGLESv2/renderer/TextureStorage11.h"
 
 #include "libEGL/Config.h"
 #include "libEGL/Display.h"
@@ -1297,15 +1298,29 @@
 
 bool Renderer11::copyToRenderTarget(TextureStorageInterface2D *dest, TextureStorageInterface2D *source)
 {
-    // TODO
-    UNIMPLEMENTED();
+    if (source && dest)
+    {
+        TextureStorage11_2D *source11 = TextureStorage11_2D::makeTextureStorage11_2D(source->getStorageInstance());
+        TextureStorage11_2D *dest11 = TextureStorage11_2D::makeTextureStorage11_2D(dest->getStorageInstance());
+
+        getDeviceContext()->CopyResource(dest11->getBaseTexture(), source11->getBaseTexture());
+        return true;
+    }
+
     return false;
 }
 
 bool Renderer11::copyToRenderTarget(TextureStorageInterfaceCube *dest, TextureStorageInterfaceCube *source)
 {
-    // TODO
-    UNIMPLEMENTED();
+    if (source && dest)
+    {
+        TextureStorage11_2D *source11 = TextureStorage11_2D::makeTextureStorage11_2D(source->getStorageInstance());
+        TextureStorage11_2D *dest11 = TextureStorage11_2D::makeTextureStorage11_2D(dest->getStorageInstance());
+
+        getDeviceContext()->CopyResource(dest11->getBaseTexture(), source11->getBaseTexture());
+        return true;
+    }
+
     return false;
 }