| 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 17 matching lines...) Expand all Loading... |
| 28 namespace gles2 { | 28 namespace gles2 { |
| 29 | 29 |
| 30 ContextGroup::ContextGroup( | 30 ContextGroup::ContextGroup( |
| 31 const scoped_refptr<MailboxManager>& mailbox_manager, | 31 const scoped_refptr<MailboxManager>& mailbox_manager, |
| 32 const scoped_refptr<MemoryTracker>& memory_tracker, | 32 const scoped_refptr<MemoryTracker>& memory_tracker, |
| 33 const scoped_refptr<ShaderTranslatorCache>& shader_translator_cache, | 33 const scoped_refptr<ShaderTranslatorCache>& shader_translator_cache, |
| 34 const scoped_refptr<FeatureInfo>& feature_info, | 34 const scoped_refptr<FeatureInfo>& feature_info, |
| 35 const scoped_refptr<SubscriptionRefSet>& subscription_ref_set, | 35 const scoped_refptr<SubscriptionRefSet>& subscription_ref_set, |
| 36 const scoped_refptr<ValueStateMap>& pending_valuebuffer_state, | 36 const scoped_refptr<ValueStateMap>& pending_valuebuffer_state, |
| 37 bool bind_generates_resource) | 37 bool bind_generates_resource) |
| 38 : context_type_(kContextTypeUndefined), | 38 : context_type_(CONTEXT_TYPE_UNDEFINED), |
| 39 mailbox_manager_(mailbox_manager), | 39 mailbox_manager_(mailbox_manager), |
| 40 memory_tracker_(memory_tracker), | 40 memory_tracker_(memory_tracker), |
| 41 shader_translator_cache_(shader_translator_cache), | 41 shader_translator_cache_(shader_translator_cache), |
| 42 subscription_ref_set_(subscription_ref_set), | 42 subscription_ref_set_(subscription_ref_set), |
| 43 pending_valuebuffer_state_(pending_valuebuffer_state), | 43 pending_valuebuffer_state_(pending_valuebuffer_state), |
| 44 enforce_gl_minimums_(base::CommandLine::ForCurrentProcess()->HasSwitch( | 44 enforce_gl_minimums_(base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 45 switches::kEnforceGLMinimums)), | 45 switches::kEnforceGLMinimums)), |
| 46 bind_generates_resource_(bind_generates_resource), | 46 bind_generates_resource_(bind_generates_resource), |
| 47 max_vertex_attribs_(0u), | 47 max_vertex_attribs_(0u), |
| 48 max_texture_units_(0u), | 48 max_texture_units_(0u), |
| (...skipping 26 matching lines...) Expand all Loading... |
| 75 GLint value = 0; | 75 GLint value = 0; |
| 76 glGetIntegerv(pname, &value); | 76 glGetIntegerv(pname, &value); |
| 77 *var = value; | 77 *var = value; |
| 78 } | 78 } |
| 79 | 79 |
| 80 // static | 80 // static |
| 81 ContextGroup::ContextType ContextGroup::GetContextType( | 81 ContextGroup::ContextType ContextGroup::GetContextType( |
| 82 unsigned webgl_version) { | 82 unsigned webgl_version) { |
| 83 switch (webgl_version) { | 83 switch (webgl_version) { |
| 84 case 0: | 84 case 0: |
| 85 return kContextTypeOther; | 85 return CONTEXT_TYPE_OTHER; |
| 86 case 1: | 86 case 1: |
| 87 return kContextTypeWebGL1; | 87 return CONTEXT_TYPE_WEBGL1; |
| 88 case 2: | 88 case 2: |
| 89 return kContextTypeWebGL2; | 89 return CONTEXT_TYPE_WEBGL2; |
| 90 default: | 90 default: |
| 91 return kContextTypeUndefined; | 91 return CONTEXT_TYPE_UNDEFINED; |
| 92 } | 92 } |
| 93 } | 93 } |
| 94 | 94 |
| 95 bool ContextGroup::Initialize( | 95 bool ContextGroup::Initialize( |
| 96 GLES2Decoder* decoder, | 96 GLES2Decoder* decoder, |
| 97 ContextGroup::ContextType context_type, | 97 ContextGroup::ContextType context_type, |
| 98 const DisallowedFeatures& disallowed_features) { | 98 const DisallowedFeatures& disallowed_features) { |
| 99 if (context_type == kContextTypeUndefined) { | 99 if (context_type == CONTEXT_TYPE_UNDEFINED) { |
| 100 LOG(ERROR) << "ContextGroup::Initialize failed because of unknown " | 100 LOG(ERROR) << "ContextGroup::Initialize failed because of unknown " |
| 101 << "context type."; | 101 << "context type."; |
| 102 return false; | 102 return false; |
| 103 } | 103 } |
| 104 if (context_type_ == kContextTypeUndefined) { | 104 if (context_type_ == CONTEXT_TYPE_UNDEFINED) { |
| 105 context_type_ = context_type; | 105 context_type_ = context_type; |
| 106 } else if (context_type_ != context_type) { | 106 } else if (context_type_ != context_type) { |
| 107 LOG(ERROR) << "ContextGroup::Initialize failed because the type of " | 107 LOG(ERROR) << "ContextGroup::Initialize failed because the type of " |
| 108 << "the context does not fit with the group."; | 108 << "the context does not fit with the group."; |
| 109 return false; | 109 return false; |
| 110 } | 110 } |
| 111 | 111 |
| 112 // If we've already initialized the group just add the context. | 112 // If we've already initialized the group just add the context. |
| 113 if (HaveContexts()) { | 113 if (HaveContexts()) { |
| 114 decoders_.push_back(base::AsWeakPtr<GLES2Decoder>(decoder)); | 114 decoders_.push_back(base::AsWeakPtr<GLES2Decoder>(decoder)); |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 GLuint client_id, GLuint* service_id) const { | 445 GLuint client_id, GLuint* service_id) const { |
| 446 Buffer* buffer = buffer_manager_->GetBuffer(client_id); | 446 Buffer* buffer = buffer_manager_->GetBuffer(client_id); |
| 447 if (!buffer) | 447 if (!buffer) |
| 448 return false; | 448 return false; |
| 449 *service_id = buffer->service_id(); | 449 *service_id = buffer->service_id(); |
| 450 return true; | 450 return true; |
| 451 } | 451 } |
| 452 | 452 |
| 453 } // namespace gles2 | 453 } // namespace gles2 |
| 454 } // namespace gpu | 454 } // namespace gpu |
| OLD | NEW |