| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 import "mojo/services/public/interfaces/geometry/geometry.mojom" | 5 import "mojo/services/public/interfaces/geometry/geometry.mojom" |
| 6 import "mojo/services/gles2/command_buffer.mojom" | 6 import "mojo/services/gles2/command_buffer.mojom" |
| 7 import "mojo/services/public/interfaces/surfaces/quads.mojom" | 7 import "mojo/services/public/interfaces/surfaces/quads.mojom" |
| 8 import "mojo/services/public/interfaces/surfaces/surface_id.mojom" | 8 import "mojo/services/public/interfaces/surfaces/surface_id.mojom" |
| 9 | 9 |
| 10 module mojo.surfaces { | 10 module mojo { |
| 11 | 11 |
| 12 enum ResourceFormat { | 12 enum ResourceFormat { |
| 13 RGBA_8888, | 13 RGBA_8888, |
| 14 RGBA_4444, | 14 RGBA_4444, |
| 15 BGRA_8888, | 15 BGRA_8888, |
| 16 LUMINANCE_8, | 16 LUMINANCE_8, |
| 17 RGB_565, | 17 RGB_565, |
| 18 ETC1, | 18 ETC1, |
| 19 }; | 19 }; |
| 20 | 20 |
| 21 struct Mailbox { | 21 struct Mailbox { |
| 22 int8[64] name; | 22 int8[64] name; |
| 23 }; | 23 }; |
| 24 | 24 |
| 25 struct MailboxHolder { | 25 struct MailboxHolder { |
| 26 Mailbox mailbox; | 26 Mailbox mailbox; |
| 27 uint32 texture_target; | 27 uint32 texture_target; |
| 28 uint32 sync_point; | 28 uint32 sync_point; |
| 29 }; | 29 }; |
| 30 | 30 |
| 31 struct TransferableResource { | 31 struct TransferableResource { |
| 32 uint32 id; | 32 uint32 id; |
| 33 ResourceFormat format; | 33 ResourceFormat format; |
| 34 uint32 filter; | 34 uint32 filter; |
| 35 mojo.Size size; | 35 Size size; |
| 36 MailboxHolder mailbox_holder; | 36 MailboxHolder mailbox_holder; |
| 37 bool is_repeated; | 37 bool is_repeated; |
| 38 bool is_software; | 38 bool is_software; |
| 39 }; | 39 }; |
| 40 | 40 |
| 41 struct ReturnedResource { | 41 struct ReturnedResource { |
| 42 uint32 id; | 42 uint32 id; |
| 43 uint32 sync_point; | 43 uint32 sync_point; |
| 44 int32 count; | 44 int32 count; |
| 45 bool lost; | 45 bool lost; |
| 46 }; | 46 }; |
| 47 | 47 |
| 48 struct Frame { | 48 struct Frame { |
| 49 TransferableResource[] resources; | 49 TransferableResource[] resources; |
| 50 Pass[] passes; | 50 Pass[] passes; |
| 51 }; | 51 }; |
| 52 | 52 |
| 53 interface SurfaceClient { | 53 interface SurfaceClient { |
| 54 SetIdNamespace(uint32 id); | 54 SetIdNamespace(uint32 id); |
| 55 ReturnResources(ReturnedResource[] resources); | 55 ReturnResources(ReturnedResource[] resources); |
| 56 }; | 56 }; |
| 57 | 57 |
| 58 [Client=SurfaceClient] | 58 [Client=SurfaceClient] |
| 59 interface Surface { | 59 interface Surface { |
| 60 CreateSurface(SurfaceId id, mojo.Size size); | 60 CreateSurface(SurfaceId id, Size size); |
| 61 SubmitFrame(SurfaceId id, Frame frame); | 61 SubmitFrame(SurfaceId id, Frame frame); |
| 62 DestroySurface(SurfaceId id); | 62 DestroySurface(SurfaceId id); |
| 63 | 63 |
| 64 CreateGLES2BoundSurface(mojo.CommandBuffer gles2_client, | 64 CreateGLES2BoundSurface(CommandBuffer gles2_client, |
| 65 SurfaceId id, | 65 SurfaceId id, |
| 66 mojo.Size size); | 66 Size size); |
| 67 }; | 67 }; |
| 68 | 68 |
| 69 } | 69 } |
| OLD | NEW |