| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "gpu/command_buffer/service/context_group.h" | 5 #include "gpu/command_buffer/service/context_group.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 #include <string> | 8 #include <string> | 
| 9 | 9 | 
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 25 #include "gpu/command_buffer/service/transfer_buffer_manager.h" | 25 #include "gpu/command_buffer/service/transfer_buffer_manager.h" | 
| 26 #include "ui/gl/gl_implementation.h" | 26 #include "ui/gl/gl_implementation.h" | 
| 27 | 27 | 
| 28 namespace gpu { | 28 namespace gpu { | 
| 29 namespace gles2 { | 29 namespace gles2 { | 
| 30 | 30 | 
| 31 ContextGroup::ContextGroup( | 31 ContextGroup::ContextGroup( | 
| 32     MailboxManager* mailbox_manager, | 32     MailboxManager* mailbox_manager, | 
| 33     ImageManager* image_manager, | 33     ImageManager* image_manager, | 
| 34     MemoryTracker* memory_tracker, | 34     MemoryTracker* memory_tracker, | 
| 35     StreamTextureManager* stream_texture_manager, |  | 
| 36     bool bind_generates_resource) | 35     bool bind_generates_resource) | 
| 37     : mailbox_manager_(mailbox_manager ? mailbox_manager : new MailboxManager), | 36     : mailbox_manager_(mailbox_manager ? mailbox_manager : new MailboxManager), | 
| 38       image_manager_(image_manager ? image_manager : new ImageManager), | 37       image_manager_(image_manager ? image_manager : new ImageManager), | 
| 39       memory_tracker_(memory_tracker), | 38       memory_tracker_(memory_tracker), | 
| 40       stream_texture_manager_(stream_texture_manager), |  | 
| 41       enforce_gl_minimums_(CommandLine::ForCurrentProcess()->HasSwitch( | 39       enforce_gl_minimums_(CommandLine::ForCurrentProcess()->HasSwitch( | 
| 42           switches::kEnforceGLMinimums)), | 40           switches::kEnforceGLMinimums)), | 
| 43       bind_generates_resource_(bind_generates_resource), | 41       bind_generates_resource_(bind_generates_resource), | 
| 44       max_vertex_attribs_(0u), | 42       max_vertex_attribs_(0u), | 
| 45       max_texture_units_(0u), | 43       max_texture_units_(0u), | 
| 46       max_texture_image_units_(0u), | 44       max_texture_image_units_(0u), | 
| 47       max_vertex_texture_image_units_(0u), | 45       max_vertex_texture_image_units_(0u), | 
| 48       max_fragment_uniform_vectors_(0u), | 46       max_fragment_uniform_vectors_(0u), | 
| 49       max_varying_vectors_(0u), | 47       max_varying_vectors_(0u), | 
| 50       max_vertex_uniform_vectors_(0u), | 48       max_vertex_uniform_vectors_(0u), | 
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 172     max_cube_map_texture_size = std::min( | 170     max_cube_map_texture_size = std::min( | 
| 173         max_cube_map_texture_size, | 171         max_cube_map_texture_size, | 
| 174         feature_info_->workarounds().max_cube_map_texture_size); | 172         feature_info_->workarounds().max_cube_map_texture_size); | 
| 175   } | 173   } | 
| 176 | 174 | 
| 177   texture_manager_.reset(new TextureManager(memory_tracker_.get(), | 175   texture_manager_.reset(new TextureManager(memory_tracker_.get(), | 
| 178                                             feature_info_.get(), | 176                                             feature_info_.get(), | 
| 179                                             max_texture_size, | 177                                             max_texture_size, | 
| 180                                             max_cube_map_texture_size)); | 178                                             max_cube_map_texture_size)); | 
| 181   texture_manager_->set_framebuffer_manager(framebuffer_manager_.get()); | 179   texture_manager_->set_framebuffer_manager(framebuffer_manager_.get()); | 
| 182   texture_manager_->set_stream_texture_manager(stream_texture_manager_); |  | 
| 183 | 180 | 
| 184   const GLint kMinTextureImageUnits = 8; | 181   const GLint kMinTextureImageUnits = 8; | 
| 185   const GLint kMinVertexTextureImageUnits = 0; | 182   const GLint kMinVertexTextureImageUnits = 0; | 
| 186   if (!QueryGLFeatureU( | 183   if (!QueryGLFeatureU( | 
| 187       GL_MAX_TEXTURE_IMAGE_UNITS, kMinTextureImageUnits, | 184       GL_MAX_TEXTURE_IMAGE_UNITS, kMinTextureImageUnits, | 
| 188       &max_texture_image_units_) || | 185       &max_texture_image_units_) || | 
| 189       !QueryGLFeatureU( | 186       !QueryGLFeatureU( | 
| 190       GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, kMinVertexTextureImageUnits, | 187       GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, kMinVertexTextureImageUnits, | 
| 191       &max_vertex_texture_image_units_)) { | 188       &max_vertex_texture_image_units_)) { | 
| 192     LOG(ERROR) << "ContextGroup::Initialize failed because too few " | 189     LOG(ERROR) << "ContextGroup::Initialize failed because too few " | 
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 308     program_manager_->Destroy(have_context); | 305     program_manager_->Destroy(have_context); | 
| 309     program_manager_.reset(); | 306     program_manager_.reset(); | 
| 310   } | 307   } | 
| 311 | 308 | 
| 312   if (shader_manager_ != NULL) { | 309   if (shader_manager_ != NULL) { | 
| 313     shader_manager_->Destroy(have_context); | 310     shader_manager_->Destroy(have_context); | 
| 314     shader_manager_.reset(); | 311     shader_manager_.reset(); | 
| 315   } | 312   } | 
| 316 | 313 | 
| 317   memory_tracker_ = NULL; | 314   memory_tracker_ = NULL; | 
| 318   stream_texture_manager_ = NULL; |  | 
| 319 } | 315 } | 
| 320 | 316 | 
| 321 IdAllocatorInterface* ContextGroup::GetIdAllocator(unsigned namespace_id) { | 317 IdAllocatorInterface* ContextGroup::GetIdAllocator(unsigned namespace_id) { | 
| 322   if (namespace_id >= arraysize(id_namespaces_)) | 318   if (namespace_id >= arraysize(id_namespaces_)) | 
| 323     return NULL; | 319     return NULL; | 
| 324 | 320 | 
| 325   return id_namespaces_[namespace_id].get(); | 321   return id_namespaces_[namespace_id].get(); | 
| 326 } | 322 } | 
| 327 | 323 | 
| 328 uint32 ContextGroup::GetMemRepresented() const { | 324 uint32 ContextGroup::GetMemRepresented() const { | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 378     GLenum pname, GLint min_required, uint32* v) { | 374     GLenum pname, GLint min_required, uint32* v) { | 
| 379   uint32 value = 0; | 375   uint32 value = 0; | 
| 380   GetIntegerv(pname, &value); | 376   GetIntegerv(pname, &value); | 
| 381   bool result = CheckGLFeatureU(min_required, &value); | 377   bool result = CheckGLFeatureU(min_required, &value); | 
| 382   *v = value; | 378   *v = value; | 
| 383   return result; | 379   return result; | 
| 384 } | 380 } | 
| 385 | 381 | 
| 386 }  // namespace gles2 | 382 }  // namespace gles2 | 
| 387 }  // namespace gpu | 383 }  // namespace gpu | 
| OLD | NEW | 
|---|