summaryrefslogtreecommitdiffstats
path: root/chromium/gpu/command_buffer/service/vertex_array_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/gpu/command_buffer/service/vertex_array_manager.cc')
-rw-r--r--chromium/gpu/command_buffer/service/vertex_array_manager.cc20
1 files changed, 14 insertions, 6 deletions
diff --git a/chromium/gpu/command_buffer/service/vertex_array_manager.cc b/chromium/gpu/command_buffer/service/vertex_array_manager.cc
index 974751941ce..1560c043c25 100644
--- a/chromium/gpu/command_buffer/service/vertex_array_manager.cc
+++ b/chromium/gpu/command_buffer/service/vertex_array_manager.cc
@@ -28,14 +28,22 @@ void VertexArrayManager::Destroy(bool have_context) {
vertex_attrib_managers_.clear();
}
-void VertexArrayManager::CreateVertexAttribManager(
- GLuint client_id, GLuint service_id, uint32 num_vertex_attribs) {
+scoped_refptr<VertexAttribManager>
+VertexArrayManager::CreateVertexAttribManager(GLuint client_id,
+ GLuint service_id,
+ uint32 num_vertex_attribs,
+ bool client_visible) {
scoped_refptr<VertexAttribManager> vertex_attrib_manager(
new VertexAttribManager(this, service_id, num_vertex_attribs));
- std::pair<VertexAttribManagerMap::iterator, bool> result =
- vertex_attrib_managers_.insert(
- std::make_pair(client_id, vertex_attrib_manager));
- DCHECK(result.second);
+
+ if (client_visible) {
+ std::pair<VertexAttribManagerMap::iterator, bool> result =
+ vertex_attrib_managers_.insert(
+ std::make_pair(client_id, vertex_attrib_manager));
+ DCHECK(result.second);
+ }
+
+ return vertex_attrib_manager;
}
VertexAttribManager* VertexArrayManager::GetVertexAttribManager(