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 |