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
13namespace cc {
14class CompositorFrame;
15}
16
17namespace mojo {
18
19class ApplicationConnection;
20
21namespace examples {
22
23// Simple example of a surface embedder that embeds two other surfaces.
24class 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_
47