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.
5 #ifndef CONTENT_BROWSER_COMPOSITOR_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_
6 #define CONTENT_BROWSER_COMPOSITOR_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "base/observer_list.h"
10 #include "content/browser/compositor/image_transport_factory.h"
13 class ContextProvider;
18 // An ImageTransportFactory that disables transport.
19 class NoTransportImageTransportFactory : public ImageTransportFactory {
21 NoTransportImageTransportFactory();
22 virtual ~NoTransportImageTransportFactory();
24 // ImageTransportFactory implementation.
25 virtual ui::ContextFactory* GetContextFactory() OVERRIDE;
26 virtual gfx::GLSurfaceHandle GetSharedSurfaceHandle() OVERRIDE;
27 virtual scoped_ptr<cc::SurfaceIdAllocator> CreateSurfaceIdAllocator()
29 virtual cc::SurfaceManager* GetSurfaceManager() OVERRIDE;
30 virtual GLHelper* GetGLHelper() OVERRIDE;
31 virtual void AddObserver(ImageTransportFactoryObserver* observer) OVERRIDE;
32 virtual void RemoveObserver(ImageTransportFactoryObserver* observer) OVERRIDE;
33 #if defined(OS_MACOSX)
34 virtual void OnSurfaceDisplayed(int surface_id) OVERRIDE {}
38 scoped_ptr<ui::ContextFactory> context_factory_;
39 scoped_refptr<cc::ContextProvider> context_provider_;
40 scoped_ptr<GLHelper> gl_helper_;
41 ObserverList<ImageTransportFactoryObserver> observer_list_;
43 DISALLOW_COPY_AND_ASSIGN(NoTransportImageTransportFactory);
46 } // namespace content
48 #endif // CONTENT_BROWSER_COMPOSITOR_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_