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 UI_COMPOSITOR_TEST_DEFAULT_CONTEXT_FACTORY_H_ 6 #define UI_COMPOSITOR_TEST_DEFAULT_CONTEXT_FACTORY_H_ 7 8 #include "ui/compositor/compositor.h" 9 10 namespace webkit { 11 namespace gpu { 12 class ContextProviderInProcess; 13 } 14 } 15 16 namespace ui { 17 18 // The default factory that creates in-process contexts. 19 class DefaultContextFactory : public ContextFactory { 20 public: 21 DefaultContextFactory(); 22 virtual ~DefaultContextFactory(); 23 24 // ContextFactory implementation 25 virtual scoped_ptr<cc::OutputSurface> CreateOutputSurface( 26 Compositor* compositor, bool software_fallback) OVERRIDE; 27 28 virtual scoped_refptr<Reflector> CreateReflector( 29 Compositor* compositor, 30 Layer* layer) OVERRIDE; 31 virtual void RemoveReflector(scoped_refptr<Reflector> reflector) OVERRIDE; 32 33 virtual scoped_refptr<cc::ContextProvider> 34 OffscreenCompositorContextProvider() OVERRIDE; 35 virtual scoped_refptr<cc::ContextProvider> 36 SharedMainThreadContextProvider() OVERRIDE; 37 virtual void RemoveCompositor(Compositor* compositor) OVERRIDE; 38 virtual bool DoesCreateTestContexts() OVERRIDE; 39 40 bool Initialize(); 41 42 private: 43 scoped_refptr<webkit::gpu::ContextProviderInProcess> 44 offscreen_compositor_contexts_; 45 scoped_refptr<webkit::gpu::ContextProviderInProcess> 46 shared_main_thread_contexts_; 47 48 DISALLOW_COPY_AND_ASSIGN(DefaultContextFactory); 49 }; 50 51 } // namespace ui 52 53 #endif // UI_COMPOSITOR_TEST_DEFAULT_CONTEXT_FACTORY_H_ 54