D3D: Pass gl::Context to many more functions.

This makes the Context more available for logging errors.

Also includes more refactoring to VertexDataManager to ensure we can
access the gl::Context.

Bug: angleproject:2738
Change-Id: Iae3d22a1403078d236bfe63a3e2d203c13678dc4
Reviewed-on: https://chromium-review.googlesource.com/1151449
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/IndexBuffer.cpp b/src/libANGLE/renderer/d3d/IndexBuffer.cpp
index 937512a..68e926e 100644
--- a/src/libANGLE/renderer/d3d/IndexBuffer.cpp
+++ b/src/libANGLE/renderer/d3d/IndexBuffer.cpp
@@ -66,7 +66,10 @@
     return mIndexBuffer->getSerial();
 }
 
-gl::Error IndexBufferInterface::mapBuffer(unsigned int size, void **outMappedMemory, unsigned int *streamOffset)
+gl::Error IndexBufferInterface::mapBuffer(const gl::Context *context,
+                                          unsigned int size,
+                                          void **outMappedMemory,
+                                          unsigned int *streamOffset)
 {
     // Protect against integer overflow
     if (mWritePosition + size < mWritePosition)
@@ -75,7 +78,7 @@
                << "Mapping of internal index buffer would cause an integer overflow.";
     }
 
-    gl::Error error = mIndexBuffer->mapBuffer(mWritePosition, size, outMappedMemory);
+    gl::Error error = mIndexBuffer->mapBuffer(context, mWritePosition, size, outMappedMemory);
     if (error.isError())
     {
         if (outMappedMemory)
@@ -94,9 +97,9 @@
     return gl::NoError();
 }
 
-gl::Error IndexBufferInterface::unmapBuffer()
+gl::Error IndexBufferInterface::unmapBuffer(const gl::Context *context)
 {
-    return mIndexBuffer->unmapBuffer();
+    return mIndexBuffer->unmapBuffer(context);
 }
 
 IndexBuffer * IndexBufferInterface::getIndexBuffer() const
@@ -114,20 +117,22 @@
     mWritePosition = writePosition;
 }
 
-gl::Error IndexBufferInterface::discard()
+gl::Error IndexBufferInterface::discard(const gl::Context *context)
 {
-    return mIndexBuffer->discard();
+    return mIndexBuffer->discard(context);
 }
 
-gl::Error IndexBufferInterface::setBufferSize(unsigned int bufferSize, GLenum indexType)
+gl::Error IndexBufferInterface::setBufferSize(const gl::Context *context,
+                                              unsigned int bufferSize,
+                                              GLenum indexType)
 {
     if (mIndexBuffer->getBufferSize() == 0)
     {
-        return mIndexBuffer->initialize(bufferSize, indexType, mDynamic);
+        return mIndexBuffer->initialize(context, bufferSize, indexType, mDynamic);
     }
     else
     {
-        return mIndexBuffer->setSize(bufferSize, indexType);
+        return mIndexBuffer->setSize(context, bufferSize, indexType);
     }
 }
 
@@ -140,18 +145,20 @@
 {
 }
 
-gl::Error StreamingIndexBufferInterface::reserveBufferSpace(unsigned int size, GLenum indexType)
+gl::Error StreamingIndexBufferInterface::reserveBufferSpace(const gl::Context *context,
+                                                            unsigned int size,
+                                                            GLenum indexType)
 {
     unsigned int curBufferSize = getBufferSize();
     unsigned int writePos = getWritePosition();
     if (size > curBufferSize)
     {
-        ANGLE_TRY(setBufferSize(std::max(size, 2 * curBufferSize), indexType));
+        ANGLE_TRY(setBufferSize(context, std::max(size, 2 * curBufferSize), indexType));
         setWritePosition(0);
     }
     else if (writePos + size > curBufferSize || writePos + size < writePos)
     {
-        ANGLE_TRY(discard());
+        ANGLE_TRY(discard(context));
         setWritePosition(0);
     }
 
@@ -168,12 +175,14 @@
 {
 }
 
-gl::Error StaticIndexBufferInterface::reserveBufferSpace(unsigned int size, GLenum indexType)
+gl::Error StaticIndexBufferInterface::reserveBufferSpace(const gl::Context *context,
+                                                         unsigned int size,
+                                                         GLenum indexType)
 {
     unsigned int curSize = getBufferSize();
     if (curSize == 0)
     {
-        return setBufferSize(size, indexType);
+        return setBufferSize(context, size, indexType);
     }
     else if (curSize >= size && indexType == getIndexType())
     {