blob: 72d3c9d299326d78ba4697b404de46bec1ed0fda [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module mojo;
import "geometry/public/interfaces/geometry.mojom";
import "gpu/public/interfaces/command_buffer.mojom";
import "input_events/public/interfaces/input_events.mojom";
import "surfaces/public/interfaces/surface_id.mojom";
struct ViewportMetrics {
Size size;
float device_pixel_ratio = 1.0;
};
[Client=NativeViewportClient]
interface NativeViewport {
// TODO(sky): having a create function is awkward. Should there be a factory
// to create the NativeViewport that takes the size?
Create(Size size) => (uint64 native_viewport_id);
Show();
Hide();
Close();
SetSize(Size size);
SubmittedFrame(SurfaceId surface_id);
SetEventDispatcher(NativeViewportEventDispatcher dispatcher);
};
interface NativeViewportEventDispatcher {
OnEvent(Event event) => ();
};
interface NativeViewportClient {
// OnMetricsAvailable() is sent at least once after the callback from Create()
// is called.
OnMetricsChanged(ViewportMetrics metrics);
OnDestroyed();
};