// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MOJO_EXAMPLES_AURA_DEMO_DEMO_CONTEXT_FACTORY_H_ #define MOJO_EXAMPLES_AURA_DEMO_DEMO_CONTEXT_FACTORY_H_ #include "ui/compositor/compositor.h" namespace webkit { namespace gpu { class ContextProviderInProcess; } } namespace mojo { namespace examples { class WindowTreeHostMojo; // The default factory that creates in-process contexts. class DemoContextFactory : public ui::ContextFactory { public: explicit DemoContextFactory(WindowTreeHostMojo* rwhm); virtual ~DemoContextFactory(); // ContextFactory implementation virtual scoped_ptr CreateOutputSurface( ui::Compositor* compositor, bool software_fallback) OVERRIDE; virtual scoped_refptr CreateReflector( ui::Compositor* compositor, ui::Layer* layer) OVERRIDE; virtual void RemoveReflector(scoped_refptr reflector) OVERRIDE; virtual scoped_refptr OffscreenCompositorContextProvider() OVERRIDE; virtual scoped_refptr SharedMainThreadContextProvider() OVERRIDE; virtual void RemoveCompositor(ui::Compositor* compositor) OVERRIDE; virtual bool DoesCreateTestContexts() OVERRIDE; bool Initialize(); private: scoped_refptr offscreen_compositor_contexts_; scoped_refptr shared_main_thread_contexts_; WindowTreeHostMojo* rwhm_; DISALLOW_COPY_AND_ASSIGN(DemoContextFactory); }; } // namespace examples } // namespace mojo #endif // MOJO_EXAMPLES_AURA_DEMO_DEMO_CONTEXT_FACTORY_H_