Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(334)

Unified Diff: gpu/command_buffer/client/gles2_implementation.cc

Issue 846943002: Improve BindBufferBase/BindBufferRange and a few other commands. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/client/gles2_implementation.cc
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
index 2b4cc9e76b010bb648490a39bd8fc296e841a4d1..2d674918c67b41abbab47a6a06b4cfd99634cc79 100644
--- a/gpu/command_buffer/client/gles2_implementation.cc
+++ b/gpu/command_buffer/client/gles2_implementation.cc
@@ -2695,6 +2695,42 @@ void GLES2Implementation::BindBufferStub(GLenum target, GLuint buffer) {
helper_->CommandBufferHelper::Flush();
}
+void GLES2Implementation::BindBufferBaseHelper(
+ GLenum target, GLuint index, GLuint buffer_id) {
+ // TODO(zmo): See note #1 above.
+ // TODO(zmo): There's a bug here. If the target or index is invalid the ID
+ // will not be used even though it's marked it as used here.
+ GetIdHandler(id_namespaces::kBuffers)->MarkAsUsedForBind(
+ this, target, index, buffer_id, &GLES2Implementation::BindBufferBaseStub);
+}
+
+void GLES2Implementation::BindBufferBaseStub(
+ GLenum target, GLuint index, GLuint buffer) {
+ helper_->BindBufferBase(target, index, buffer);
+ if (share_group_->bind_generates_resource())
+ helper_->CommandBufferHelper::Flush();
+}
+
+void GLES2Implementation::BindBufferRangeHelper(
+ GLenum target, GLuint index, GLuint buffer_id,
+ GLintptr offset, GLsizeiptr size) {
+ // TODO(zmo): See note #1 above.
+ // TODO(zmo): There's a bug here. If an arguments is invalid the ID will not
+ // be used even though it's marked it as used here.
+ GetIdHandler(id_namespaces::kBuffers)->MarkAsUsedForBind(
+ this, target, index, buffer_id, offset, size,
+ &GLES2Implementation::BindBufferRangeStub);
+}
+
+void GLES2Implementation::BindBufferRangeStub(
+ GLenum target, GLuint index, GLuint buffer,
+ GLintptr offset, GLsizeiptr size) {
+ // TODO(zmo): uncomment the below call once the helper function is added.
+ // helper_->BindBufferRange(target, index, buffer, offset, size);
+ if (share_group_->bind_generates_resource())
+ helper_->CommandBufferHelper::Flush();
+}
+
void GLES2Implementation::BindFramebufferHelper(
GLenum target, GLuint framebuffer) {
// TODO(gman): See note #1 above.
@@ -2777,6 +2813,11 @@ void GLES2Implementation::BindRenderbufferStub(GLenum target,
helper_->CommandBufferHelper::Flush();
}
+void GLES2Implementation::BindSamplerHelper(GLuint unit,
+ GLuint sampler) {
+ helper_->BindSampler(unit, sampler);
+}
+
void GLES2Implementation::BindTextureHelper(GLenum target, GLuint texture) {
// TODO(gman): See note #1 above.
// TODO(gman): Change this to false once we figure out why it's failing
@@ -2820,6 +2861,11 @@ void GLES2Implementation::BindTextureStub(GLenum target, GLuint texture) {
helper_->CommandBufferHelper::Flush();
}
+void GLES2Implementation::BindTransformFeedbackHelper(
+ GLenum target, GLuint transformfeedback) {
+ helper_->BindTransformFeedback(target, transformfeedback);
+}
+
void GLES2Implementation::BindVertexArrayOESHelper(GLuint array) {
// TODO(gman): See note #1 above.
bool changed = false;
« no previous file with comments | « gpu/command_buffer/client/gles2_implementation.h ('k') | gpu/command_buffer/client/gles2_implementation_impl_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698