1 // Copyright 2015 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.
7 import "ui/mojo/geometry/geometry.mojom";
8 import "components/mus/public/interfaces/quads.mojom";
20 // See src/cc/resources/returned_resource.h.
21 struct ReturnedResource {
28 // See src/gpu/command_buffer/common/mailbox.h.
33 // See src/gpu/command_buffer/common/mailbox_holder.h.
34 struct MailboxHolder {
36 uint32 texture_target;
40 // A TransferableResource is a graphics resource such as a texture or a bitmap
41 // in shared memory (software mode) that is shared between the View Manager and
42 // a client. This data structure is used to manage reuse of
43 // the memory once it is no longer needed by the View Manager and GPU service.
44 struct TransferableResource {
45 // |id| is an integer that uniquely identifies this resource in the client so
46 // that the View Manager can return this resource back to the client.
48 ResourceFormat format;
51 MailboxHolder mailbox_holder;
56 // See cc/output/compositor_frame_metadata.h.
57 struct CompositorFrameMetadata {
58 float device_scale_factor;
61 // See src/cc/output/compositor_frame.h.
62 struct CompositorFrame {
63 CompositorFrameMetadata metadata;
64 array<TransferableResource> resources;
68 // A Surface is an interface for receiving CompositorFrame structs. This is a
69 // separate interface to allow CompositorFrames to be delivered from
70 // supplementary (not main) threads of a mojo app.
72 // After the submitted frame is drawn for the first time, the receiver will
73 // respond to the SubmitFrame message. Clients should use this acknowledgement
74 // to ratelimit frame submissions.
75 SubmitCompositorFrame(CompositorFrame frame) => ();
78 interface SurfaceClient {
79 ReturnResources(array<ReturnedResource> resources);