Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / mojo / examples / surfaces_app / embedder.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 MOJO_EXAMPLES_SURFACES_APP_EMBEDDER_H_
6 #define MOJO_EXAMPLES_SURFACES_APP_EMBEDDER_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "cc/surfaces/surface_id.h"
10 #include "mojo/services/public/interfaces/surfaces/surfaces.mojom.h"
11 #include "ui/gfx/size.h"
12
13 namespace cc {
14 class CompositorFrame;
15 }
16
17 namespace mojo {
18
19 class ApplicationConnection;
20
21 namespace examples {
22
23 // Simple example of a surface embedder that embeds two other surfaces.
24 class Embedder {
25  public:
26   explicit Embedder(Surface* surface);
27   ~Embedder();
28
29   void SetSurfaceId(cc::SurfaceId id) { id_ = id; }
30   void ProduceFrame(cc::SurfaceId child_one,
31                     cc::SurfaceId child_two,
32                     const gfx::Size& child_size,
33                     const gfx::Size& size,
34                     int offset);
35
36  private:
37   cc::SurfaceId id_;
38   Surface* surface_;
39
40   DISALLOW_COPY_AND_ASSIGN(Embedder);
41 };
42
43 }  // namespace examples
44 }  // namespace mojo
45
46 #endif  // MOJO_EXAMPLES_SURFACES_APP_EMBEDDER_H_