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.
5 #ifndef CC_TEST_TEST_IN_PROCESS_CONTEXT_PROVIDER_H_
6 #define CC_TEST_TEST_IN_PROCESS_CONTEXT_PROVIDER_H_
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"
16 class GLInProcessContext
;
21 scoped_ptr
<gpu::GLInProcessContext
> CreateTestInProcessContext();
22 scoped_ptr
<gpu::GLInProcessContext
> CreateTestInProcessContext(
23 TestGpuMemoryBufferManager
* gpu_memory_buffer_manager
,
24 TestImageFactory
* image_factory
);
26 class TestInProcessContextProvider
: public ContextProvider
{
28 TestInProcessContextProvider();
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
)
46 friend class base::RefCountedThreadSafe
<TestInProcessContextProvider
>;
47 ~TestInProcessContextProvider() override
;
50 TestGpuMemoryBufferManager gpu_memory_buffer_manager_
;
51 TestImageFactory image_factory_
;
52 scoped_ptr
<gpu::GLInProcessContext
> context_
;
53 skia::RefPtr
<class GrContext
> gr_context_
;
58 #endif // CC_TEST_TEST_IN_PROCESS_CONTEXT_PROVIDER_H_