| Index: gpu/command_buffer/service/context_group.cc
|
| diff --git a/gpu/command_buffer/service/context_group.cc b/gpu/command_buffer/service/context_group.cc
|
| index 98ebbdbd033b0e93339a1395fcb08dde3193e89d..bd8af8fd4d59624514e81a72611857875d30c548 100644
|
| --- a/gpu/command_buffer/service/context_group.cc
|
| +++ b/gpu/command_buffer/service/context_group.cc
|
| @@ -35,7 +35,8 @@ ContextGroup::ContextGroup(
|
| const scoped_refptr<SubscriptionRefSet>& subscription_ref_set,
|
| const scoped_refptr<ValueStateMap>& pending_valuebuffer_state,
|
| bool bind_generates_resource)
|
| - : mailbox_manager_(mailbox_manager),
|
| + : context_type_(kContextTypeUndefined),
|
| + mailbox_manager_(mailbox_manager),
|
| memory_tracker_(memory_tracker),
|
| shader_translator_cache_(shader_translator_cache),
|
| subscription_ref_set_(subscription_ref_set),
|
| @@ -76,9 +77,38 @@ static void GetIntegerv(GLenum pname, uint32* var) {
|
| *var = value;
|
| }
|
|
|
| +// static
|
| +ContextGroup::ContextType ContextGroup::GetContextType(
|
| + unsigned webgl_version) {
|
| + switch (webgl_version) {
|
| + case 0:
|
| + return kContextTypeOther;
|
| + case 1:
|
| + return kContextTypeWebGL1;
|
| + case 2:
|
| + return kContextTypeWebGL2;
|
| + default:
|
| + return kContextTypeUndefined;
|
| + }
|
| +}
|
| +
|
| bool ContextGroup::Initialize(
|
| GLES2Decoder* decoder,
|
| + ContextGroup::ContextType context_type,
|
| const DisallowedFeatures& disallowed_features) {
|
| + if (context_type == kContextTypeUndefined) {
|
| + LOG(ERROR) << "ContextGroup::Initialize failed because of unknown "
|
| + << "context type.";
|
| + return false;
|
| + }
|
| + if (context_type_ == kContextTypeUndefined) {
|
| + context_type_ = context_type;
|
| + } else if (context_type_ != context_type) {
|
| + LOG(ERROR) << "ContextGroup::Initialize failed because the type of "
|
| + << "the context does not fit with the group.";
|
| + return false;
|
| + }
|
| +
|
| // If we've already initialized the group just add the context.
|
| if (HaveContexts()) {
|
| decoders_.push_back(base::AsWeakPtr<GLES2Decoder>(decoder));
|
|
|