blob: a292ac7886051175cec5d8b5d9b40540d93da5d4 [file] [log] [blame]
// Copyright 2017 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 viz.mojom;
import "gpu/ipc/common/mailbox.mojom";
import "gpu/ipc/common/sync_token.mojom";
import "services/viz/public/interfaces/compositing/copy_output_result.mojom";
import "mojo/common/unguessable_token.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";
// See components/viz/common/frame_sinks/copy_output_request.h.
struct CopyOutputRequest {
CopyOutputResultFormat result_format;
// Set both to (1,1) for no scaling. Both must have positive X and Y values.
gfx.mojom.Vector2d scale_from;
gfx.mojom.Vector2d scale_to;
mojo.common.mojom.UnguessableToken? source;
gfx.mojom.Rect? area;
gfx.mojom.Rect? result_selection;
// DEPRECATED: To be removed once tab capture is moved into VIZ.
// http://crbug.com/754872
// If mailbox is present, then sync_token must also be.
gpu.mojom.Mailbox? mailbox;
gpu.mojom.SyncToken? sync_token;
CopyOutputResultSender result_sender;
};
// When the display compositor is ready to respond to the CopyOutputRequest,
// it uses this interface to send back the result.
interface CopyOutputResultSender {
SendResult(CopyOutputResult result);
};