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