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 10namespace base { 11class Thread; 12} 13 14namespace webkit { 15namespace gpu { 16class ContextProviderInProcess; 17} 18} 19 20namespace ui { 21 22class 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