Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / test / test_in_process_context_provider.h
1 // Copyright 2013 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.
4
5 #ifndef CC_TEST_TEST_IN_PROCESS_CONTEXT_PROVIDER_H_
6 #define CC_TEST_TEST_IN_PROCESS_CONTEXT_PROVIDER_H_
7
8 #include "cc/output/context_provider.h"
9 #include "cc/test/test_gpu_memory_buffer_manager.h"
10 #include "cc/test/test_image_factory.h"
11 #include "skia/ext/refptr.h"
12
13 class GrContext;
14
15 namespace gpu {
16 class GLInProcessContext;
17 }
18
19 namespace cc {
20
21 scoped_ptr<gpu::GLInProcessContext> CreateTestInProcessContext();
22 scoped_ptr<gpu::GLInProcessContext> CreateTestInProcessContext(
23     TestGpuMemoryBufferManager* gpu_memory_buffer_manager,
24     TestImageFactory* image_factory);
25
26 class TestInProcessContextProvider : public ContextProvider {
27  public:
28   TestInProcessContextProvider();
29
30   bool BindToCurrentThread() override;
31   gpu::gles2::GLES2Interface* ContextGL() override;
32   gpu::ContextSupport* ContextSupport() override;
33   class GrContext* GrContext() override;
34   Capabilities ContextCapabilities() override;
35   bool IsContextLost() override;
36   void VerifyContexts() override;
37   void DeleteCachedResources() override;
38   bool DestroyedOnMainThread() override;
39   void SetLostContextCallback(
40       const LostContextCallback& lost_context_callback) override;
41   void SetMemoryPolicyChangedCallback(
42       const MemoryPolicyChangedCallback& memory_policy_changed_callback)
43       override;
44
45  protected:
46   friend class base::RefCountedThreadSafe<TestInProcessContextProvider>;
47   ~TestInProcessContextProvider() override;
48
49  private:
50   TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
51   TestImageFactory image_factory_;
52   scoped_ptr<gpu::GLInProcessContext> context_;
53   skia::RefPtr<class GrContext> gr_context_;
54 };
55
56 }  // namespace cc
57
58 #endif  // CC_TEST_TEST_IN_PROCESS_CONTEXT_PROVIDER_H_