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
3 // found in the LICENSE file.
5 import "mojo/services/public/interfaces/geometry/geometry.mojom"
6 import "mojo/services/gles2/command_buffer.mojom"
7 import "mojo/services/public/interfaces/surfaces/quads.mojom"
8 import "mojo/services/public/interfaces/surfaces/surface_id.mojom"
26 struct MailboxHolder {
28 uint32 texture_target;
32 struct TransferableResource {
34 ResourceFormat format;
37 MailboxHolder mailbox_holder;
42 struct ReturnedResource {
50 TransferableResource[] resources;
54 interface SurfaceClient {
55 ReturnResources(ReturnedResource[] resources);
58 [Client=SurfaceClient]
60 // The id is created by the client and must be unique and contain the
61 // connection's namespace in the upper 32 bits.
62 CreateSurface(SurfaceId id, Size size);
64 // The client can only submit frames to surfaces created with this connection.
65 SubmitFrame(SurfaceId id, Frame frame);
66 DestroySurface(SurfaceId id);
68 CreateGLES2BoundSurface(CommandBuffer gles2_client,