Move Buffer Subject/Observer to front end.
This makes BufferImpl into an Observer Subject. It also refactors
the Vertex Array updates for the D3D11 backend use more of a dirty
bit coding style.
This change makes it so Buffer contents changes trigger front-end
dirty bits from the back-end, which may be undesirable.
Bug: angleproject:2389
Change-Id: Iac8ce1171284a86851c18cd1373ddf24fcefe40b
Reviewed-on: https://chromium-review.googlesource.com/979812
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 9140870..e276d7c 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -129,13 +129,14 @@
}
}
-void MarkTransformFeedbackBufferUsage(gl::TransformFeedback *transformFeedback,
+void MarkTransformFeedbackBufferUsage(const gl::Context *context,
+ gl::TransformFeedback *transformFeedback,
GLsizei count,
GLsizei instanceCount)
{
if (transformFeedback && transformFeedback->isActive() && !transformFeedback->isPaused())
{
- transformFeedback->onVerticesDrawn(count, instanceCount);
+ transformFeedback->onVerticesDrawn(context, count, instanceCount);
}
}
@@ -1804,7 +1805,7 @@
ANGLE_CONTEXT_TRY(prepareForDraw());
ANGLE_CONTEXT_TRY(mImplementation->drawArrays(this, mode, first, count));
- MarkTransformFeedbackBufferUsage(mGLState.getCurrentTransformFeedback(), count, 1);
+ MarkTransformFeedbackBufferUsage(this, mGLState.getCurrentTransformFeedback(), count, 1);
}
void Context::drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount)
@@ -1818,7 +1819,8 @@
ANGLE_CONTEXT_TRY(prepareForDraw());
ANGLE_CONTEXT_TRY(
mImplementation->drawArraysInstanced(this, mode, first, count, instanceCount));
- MarkTransformFeedbackBufferUsage(mGLState.getCurrentTransformFeedback(), count, instanceCount);
+ MarkTransformFeedbackBufferUsage(this, mGLState.getCurrentTransformFeedback(), count,
+ instanceCount);
}
void Context::drawElements(GLenum mode, GLsizei count, GLenum type, const void *indices)