Add support for drawing with transform feedback.

BUG=angle:495

Change-Id: Ib9c19130dfbc44a99998c5d6d8160bfc2b683eb9
Reviewed-on: https://chromium-review.googlesource.com/185037
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 0b7052e..4edf933 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -2491,14 +2491,14 @@
 }
 
 // Applies the shaders and shader constants to the Direct3D 9 device
-void Context::applyShaders(ProgramBinary *programBinary)
+void Context::applyShaders(ProgramBinary *programBinary, bool transformFeedbackActive)
 {
     const VertexAttribute *vertexAttributes = getCurrentVertexArray()->getVertexAttributes();
 
     VertexFormat inputLayout[gl::MAX_VERTEX_ATTRIBS];
     VertexFormat::GetInputLayout(inputLayout, programBinary, vertexAttributes, mState.vertexAttribCurrentValues);
 
-    mRenderer->applyShaders(programBinary, mState.rasterizer.rasterizerDiscard, inputLayout);
+    mRenderer->applyShaders(programBinary, mState.rasterizer.rasterizerDiscard, transformFeedbackActive, inputLayout);
 
     programBinary->applyUniforms();
 }
@@ -2981,7 +2981,7 @@
 
     bool transformFeedbackActive = applyTransformFeedbackBuffers();
 
-    applyShaders(programBinary);
+    applyShaders(programBinary, transformFeedbackActive);
     applyTextures(programBinary);
 
     if (!applyUniformBuffers())
@@ -2996,7 +2996,7 @@
 
     if (!skipDraw(mode))
     {
-        mRenderer->drawArrays(mode, count, instances);
+        mRenderer->drawArrays(mode, count, instances, transformFeedbackActive);
 
         if (transformFeedbackActive)
         {
@@ -3054,7 +3054,7 @@
     // layer.
     ASSERT(!transformFeedbackActive);
 
-    applyShaders(programBinary);
+    applyShaders(programBinary, transformFeedbackActive);
     applyTextures(programBinary);
 
     if (!applyUniformBuffers())