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