Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / content / browser / compositor / test / no_transport_image_transport_factory.h
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 CONTENT_BROWSER_COMPOSITOR_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_
6 #define CONTENT_BROWSER_COMPOSITOR_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "base/observer_list.h"
10 #include "content/browser/compositor/image_transport_factory.h"
11
12 namespace cc {
13 class ContextProvider;
14 }
15
16 namespace content {
17
18 // An ImageTransportFactory that disables transport.
19 class NoTransportImageTransportFactory : public ImageTransportFactory {
20  public:
21   NoTransportImageTransportFactory();
22   virtual ~NoTransportImageTransportFactory();
23
24   // ImageTransportFactory implementation.
25   virtual ui::ContextFactory* GetContextFactory() OVERRIDE;
26   virtual gfx::GLSurfaceHandle GetSharedSurfaceHandle() OVERRIDE;
27   virtual scoped_ptr<cc::SurfaceIdAllocator> CreateSurfaceIdAllocator()
28       OVERRIDE;
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 {}
35 #endif
36
37  private:
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_;
42
43   DISALLOW_COPY_AND_ASSIGN(NoTransportImageTransportFactory);
44 };
45
46 }  // namespace content
47
48 #endif  // CONTENT_BROWSER_COMPOSITOR_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_