1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef MOJO_EXAMPLES_SURFACES_APP_EMBEDDER_H_
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define MOJO_EXAMPLES_SURFACES_APP_EMBEDDER_H_
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/memory/scoped_ptr.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "cc/surfaces/surface_id.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "mojo/services/public/interfaces/surfaces/surfaces.mojom.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/gfx/size.h"
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace cc {
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass CompositorFrame;
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace mojo {
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass ApplicationConnection;
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace examples {
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Simple example of a surface embedder that embeds two other surfaces.
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass Embedder {
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public:
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  explicit Embedder(Surface* surface);
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ~Embedder();
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void SetSurfaceId(cc::SurfaceId id) { id_ = id; }
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void ProduceFrame(cc::SurfaceId child_one,
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    cc::SurfaceId child_two,
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    const gfx::Size& child_size,
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    const gfx::Size& size,
3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                    int offset);
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private:
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  cc::SurfaceId id_;
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  Surface* surface_;
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(Embedder);
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch};
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace examples
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace mojo
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif  // MOJO_EXAMPLES_SURFACES_APP_EMBEDDER_H_
47