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);