- add sources.
[platform/framework/web/crosswalk.git] / src / content / browser / aura / no_transport_image_transport_factory.h
1 // Copyright (c) 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 CONTENT_BROWSER_AURA_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_
6 #define CONTENT_BROWSER_AURA_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "content/browser/aura/image_transport_factory.h"
10
11 namespace cc {
12 class ContextProvider;
13 }
14
15 namespace content {
16
17 // An ImageTransportFactory that disables transport.
18 class NoTransportImageTransportFactory : public ImageTransportFactory {
19  public:
20   explicit NoTransportImageTransportFactory(
21       scoped_ptr<ui::ContextFactory> context_factory);
22   virtual ~NoTransportImageTransportFactory();
23
24   // ImageTransportFactory implementation.
25   virtual ui::ContextFactory* AsContextFactory() OVERRIDE;
26   virtual gfx::GLSurfaceHandle CreateSharedSurfaceHandle() OVERRIDE;
27   virtual void DestroySharedSurfaceHandle(gfx::GLSurfaceHandle surface)
28       OVERRIDE;
29   virtual scoped_refptr<ui::Texture> CreateTransportClient(
30       float device_scale_factor) OVERRIDE;
31   virtual scoped_refptr<ui::Texture> CreateOwnedTexture(
32       const gfx::Size& size,
33       float device_scale_factor,
34       unsigned int texture_id) OVERRIDE;
35   virtual GLHelper* GetGLHelper() OVERRIDE;
36   virtual uint32 InsertSyncPoint() OVERRIDE;
37   virtual void WaitSyncPoint(uint32 sync_point) OVERRIDE;
38   virtual void AddObserver(ImageTransportFactoryObserver* observer) OVERRIDE;
39   virtual void RemoveObserver(ImageTransportFactoryObserver* observer) OVERRIDE;
40
41  private:
42   scoped_ptr<ui::ContextFactory> context_factory_;
43   scoped_refptr<cc::ContextProvider> context_provider_;
44   scoped_ptr<GLHelper> gl_helper_;
45
46   DISALLOW_COPY_AND_ASSIGN(NoTransportImageTransportFactory);
47 };
48
49 }  // namespace content
50
51 #endif  // CONTENT_BROWSER_AURA_NO_TRANSPORT_IMAGE_TRANSPORT_FACTORY_H_