Index: mojo/services/public/interfaces/surfaces/surfaces.mojom |
diff --git a/mojo/services/public/interfaces/surfaces/surfaces.mojom b/mojo/services/public/interfaces/surfaces/surfaces.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6bb38b7e0b3e46374f84af47de85905cc3f36bcc |
--- /dev/null |
+++ b/mojo/services/public/interfaces/surfaces/surfaces.mojom |
@@ -0,0 +1,57 @@ |
+// 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. |
+ |
+import "../geometry/geometry.mojom" |
+import "quads.mojom" |
+import "surface_id.mojom" |
+ |
+module mojo.surfaces { |
+ |
+enum ResourceFormat { |
+ RGBA_8888, |
+ RGBA_4444, |
+ BGRA_8888, |
+ LUMINANCE_8, |
+ RGB_565, |
+ ETC1, |
+}; |
+ |
+struct Mailbox { |
+ // Should have exactly 64 entries. |
+ int8[] name; |
+}; |
+ |
+struct MailboxHolder { |
+ Mailbox mailbox; |
+ uint32 texture_target; |
+ uint32 sync_point; |
+}; |
+ |
+struct TransferableResource { |
+ uint32 id; |
+ ResourceFormat format; |
+ uint32 filter; |
+ mojo.Size size; |
+ MailboxHolder mailbox_holder; |
+ bool is_repeated; |
+ bool is_software; |
+}; |
+ |
+struct Frame { |
+ TransferableResource[] resources; |
+ Pass[] passes; |
+}; |
+ |
+interface SurfaceClient { |
+ ReturnResources(TransferableResource[] resources); |
+}; |
+ |
+[client=SurfaceClient] |
+interface Surface { |
+ CreateSurface(SurfaceId id, mojo.Size size); |
+ SubmitFrame(SurfaceId id, Frame frame); |
+ DestroySurface(SurfaceId id); |
+}; |
+ |
+} |