Add the proper data offset in Image11::copy, for the slow pixel copy method.

TRAC #22586

Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1921 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Image11.cpp b/src/libGLESv2/renderer/Image11.cpp
index cac1f55..7180472 100644
--- a/src/libGLESv2/renderer/Image11.cpp
+++ b/src/libGLESv2/renderer/Image11.cpp
@@ -349,8 +349,12 @@
         D3D11_MAPPED_SUBRESOURCE mappedImage;
         HRESULT result = map(&mappedImage);
             
+        // determine the offset coordinate into the destination buffer
+        GLsizei rowOffset = gl::ComputePixelSize(mActualFormat) * xoffset;
+        void *dataOffset = static_cast<unsigned char*>(mappedImage.pData) + mappedImage.RowPitch * yoffset + rowOffset;
+
         mRenderer->readPixels(source, x, y, width, height, gl::ExtractFormat(mInternalFormat), 
-                              gl::ExtractType(mInternalFormat), mappedImage.RowPitch, false, 4, mappedImage.pData);
+                              gl::ExtractType(mInternalFormat), mappedImage.RowPitch, false, 4, dataOffset);
 
         unmap();
     }