• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
SetSurfaceId(cc::SurfaceId id)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_
47