When enabling new profile management programmatically, make sure to set the
[chromium-blink-merge.git] / mojo / cc / context_provider_mojo.h
blobeda6e43b2e62aaa64d8279cc1b28a1d203c3b7c5
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 #ifndef MOJO_CC_CONTEXT_PROVIDER_MOJO_H_
6 #define MOJO_CC_CONTEXT_PROVIDER_MOJO_H_
8 #include "cc/output/context_provider.h"
9 #include "mojo/public/c/gles2/gles2.h"
10 #include "mojo/public/cpp/system/core.h"
12 namespace mojo {
14 class ContextProviderMojo : public cc::ContextProvider {
15 public:
16 explicit ContextProviderMojo(ScopedMessagePipeHandle command_buffer_handle);
18 // cc::ContextProvider implementation.
19 virtual bool BindToCurrentThread() OVERRIDE;
20 virtual gpu::gles2::GLES2Interface* ContextGL() OVERRIDE;
21 virtual gpu::ContextSupport* ContextSupport() OVERRIDE;
22 virtual class GrContext* GrContext() OVERRIDE;
23 virtual Capabilities ContextCapabilities() OVERRIDE;
24 virtual bool IsContextLost() OVERRIDE;
25 virtual void VerifyContexts() OVERRIDE {}
26 virtual void DeleteCachedResources() OVERRIDE {}
27 virtual bool DestroyedOnMainThread() OVERRIDE;
28 virtual void SetLostContextCallback(
29 const LostContextCallback& lost_context_callback) OVERRIDE {}
30 virtual void SetMemoryPolicyChangedCallback(
31 const MemoryPolicyChangedCallback& memory_policy_changed_callback)
32 OVERRIDE {}
34 protected:
35 friend class base::RefCountedThreadSafe<ContextProviderMojo>;
36 virtual ~ContextProviderMojo();
38 private:
39 static void ContextLostThunk(void* closure) {
40 static_cast<ContextProviderMojo*>(closure)->ContextLost();
42 void ContextLost();
44 cc::ContextProvider::Capabilities capabilities_;
45 ScopedMessagePipeHandle command_buffer_handle_;
46 MojoGLES2Context context_;
49 } // namespace mojo
51 #endif // MOJO_CC_CONTEXT_PROVIDER_MOJO_H_