Added emulated indexed pointsprite rendering support.

This emulation is for renderers that do not support Geometry Shaders.

BUG=angleproject:949

Change-Id: I7acf003e83ea6661f10a703486e6d07eb28786f8
Reviewed-on: https://chromium-review.googlesource.com/274851
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Cooper Partin <coopp@microsoft.com>
diff --git a/src/libANGLE/renderer/d3d/IndexDataManager.cpp b/src/libANGLE/renderer/d3d/IndexDataManager.cpp
index 7c68c1c..0c36ded 100644
--- a/src/libANGLE/renderer/d3d/IndexDataManager.cpp
+++ b/src/libANGLE/renderer/d3d/IndexDataManager.cpp
@@ -69,7 +69,7 @@
     SafeDelete(mStreamingBufferInt);
 }
 
-gl::Error IndexDataManager::prepareIndexData(GLenum type, GLsizei count, gl::Buffer *buffer, const GLvoid *indices, TranslatedIndexData *translated)
+gl::Error IndexDataManager::prepareIndexData(GLenum type, GLsizei count, gl::Buffer *buffer, const GLvoid *indices, TranslatedIndexData *translated, SourceIndexData *sourceData)
 {
     const gl::Type &typeInfo = gl::GetTypeInfo(type);
 
@@ -222,7 +222,13 @@
     translated->startIndex = (streamOffset >> destTypeInfo.bytesShift);
     translated->startOffset = streamOffset;
     translated->indexType = destinationIndexType;
-
+    if (sourceData)
+    {
+        // Update pretranslated source index data
+        sourceData->srcIndices = indices;
+        sourceData->srcIndexType = type;
+        sourceData->srcCount = count;
+    }
     if (storage)
     {
         storage->promoteStaticUsage(count << typeInfo.bytesShift);