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. 4 5 #ifndef UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ 6 #define UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ 7 8 #include "ui/compositor/compositor.h" 9 10 namespace base { 11 class Thread; 12 } 13 14 namespace webkit { 15 namespace gpu { 16 class ContextProviderInProcess; 17 } 18 } 19 20 namespace ui { 21 22 class InProcessContextFactory : public ContextFactory { 23 public: 24 InProcessContextFactory(); 25 virtual ~InProcessContextFactory(); 26 27 // ContextFactory implementation 28 virtual scoped_ptr<cc::OutputSurface> CreateOutputSurface( 29 Compositor* compositor, 30 bool software_fallback) OVERRIDE; 31 32 virtual scoped_refptr<Reflector> CreateReflector( 33 Compositor* mirrored_compositor, 34 Layer* mirroring_layer) OVERRIDE; 35 virtual void RemoveReflector(scoped_refptr<Reflector> reflector) OVERRIDE; 36 37 virtual scoped_refptr<cc::ContextProvider> SharedMainThreadContextProvider() 38 OVERRIDE; 39 virtual void RemoveCompositor(Compositor* compositor) OVERRIDE; 40 virtual bool DoesCreateTestContexts() OVERRIDE; 41 virtual cc::SharedBitmapManager* GetSharedBitmapManager() OVERRIDE; 42 virtual base::MessageLoopProxy* GetCompositorMessageLoop() OVERRIDE; 43 44 private: 45 scoped_ptr<base::Thread> compositor_thread_; 46 scoped_refptr<webkit::gpu::ContextProviderInProcess> 47 shared_main_thread_contexts_; 48 scoped_ptr<cc::SharedBitmapManager> shared_bitmap_manager_; 49 50 DISALLOW_COPY_AND_ASSIGN(InProcessContextFactory); 51 }; 52 53 } // namespace ui 54 55 #endif // UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ 56