cc: Initialize eviction_priority_queue_is_up_to_date_ in TileManager
[chromium-blink-merge.git] / mojo / cc / context_provider_mojo.cc
blob16c6f8c6ac2bc2a84e17287b827a84e797da9497
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "mojo/cc/context_provider_mojo.h"
7 #include "base/logging.h"
8 #include "mojo/public/cpp/environment/environment.h"
10 namespace mojo {
12 ContextProviderMojo::ContextProviderMojo(
13 ScopedMessagePipeHandle command_buffer_handle)
14 : command_buffer_handle_(command_buffer_handle.Pass()),
15 context_lost_(false) {
18 bool ContextProviderMojo::BindToCurrentThread() {
19 DCHECK(command_buffer_handle_.is_valid());
20 context_ = MojoGLES2CreateContext(command_buffer_handle_.release().value(),
21 &ContextLostThunk,
22 this,
23 Environment::GetDefaultAsyncWaiter());
24 return !!context_;
27 gpu::gles2::GLES2Interface* ContextProviderMojo::ContextGL() {
28 if (!context_)
29 return NULL;
30 return static_cast<gpu::gles2::GLES2Interface*>(
31 MojoGLES2GetGLES2Interface(context_));
34 gpu::ContextSupport* ContextProviderMojo::ContextSupport() {
35 if (!context_)
36 return NULL;
37 return static_cast<gpu::ContextSupport*>(
38 MojoGLES2GetContextSupport(context_));
41 class GrContext* ContextProviderMojo::GrContext() { return NULL; }
43 cc::ContextProvider::Capabilities ContextProviderMojo::ContextCapabilities() {
44 return capabilities_;
47 bool ContextProviderMojo::IsContextLost() {
48 return context_lost_;
50 bool ContextProviderMojo::DestroyedOnMainThread() { return !context_; }
52 ContextProviderMojo::~ContextProviderMojo() {
53 if (context_)
54 MojoGLES2DestroyContext(context_);
57 void ContextProviderMojo::ContextLost() {
58 context_lost_ = true;
61 } // namespace mojo