Index: components/view_manager/public/interfaces/compositor_frame.mojom |
diff --git a/components/view_manager/public/interfaces/compositor_frame.mojom b/components/view_manager/public/interfaces/compositor_frame.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..aba98dcdc85c4f5ac27f9d06a909624fdd8ccf85 |
--- /dev/null |
+++ b/components/view_manager/public/interfaces/compositor_frame.mojom |
@@ -0,0 +1,53 @@ |
+// Copyright 2015 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 "ui/mojo/geometry/geometry.mojom"; |
+import "components/view_manager/public/interfaces/quads.mojom"; |
+ |
+enum ResourceFormat { |
+ RGBA_8888, |
+ RGBA_4444, |
+ BGRA_8888, |
+ ALPHA_8, |
+ LUMINANCE_8, |
+ RGB_565, |
+ ETC1, |
+}; |
+ |
+struct Mailbox { |
+ array<int8, 64> name; |
+}; |
+ |
+struct MailboxHolder { |
+ Mailbox mailbox; |
+ uint32 texture_target; |
+ uint32 sync_point; |
+}; |
+ |
+struct TransferableResource { |
+ uint32 id; |
+ ResourceFormat format; |
+ uint32 filter; |
+ Size size; |
+ MailboxHolder mailbox_holder; |
+ bool is_repeated; |
+ bool is_software; |
+}; |
+ |
+struct CompositorFrame { |
+ array<TransferableResource> resources; |
+ array<Pass> passes; |
+}; |
+ |
+// CompositorFrameReceiver is an interface for receiving CompositorFrame |
+// structs. This is a separate interface to allow CompositorFrames to be |
+// delivered from supplementary (not main) threads of a mojo app. |
+interface CompositorFrameReceiver { |
+ // After the submitted frame is drawn for the first time, the receiver will |
+ // respond to the SubmitFrame message. Clients should use this acknowledgement |
+ // to ratelimit frame submissions. |
+ SubmitCompositorFrame(CompositorFrame frame) => (); |
+}; |