| // 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. | 
 |  | 
 | module mojo; | 
 |  | 
 | // A surface ID is composed of two parts, a local part and a namespace. The | 
 | // local part is allocated by the client using any scheme that avoids | 
 | // duplicates. The namespace is allocated by the service and will be different | 
 | // for each client (aka each connection to mojo.Surface). | 
 | // | 
 | // The special id_namespace value 0 is equivalent to the namespace of the | 
 | // client. This can be used to create, destroy and submit frames to | 
 | // surfaces before learning the namespace and to reference other surfaces | 
 | // owned by the same client. The actual id namespace must be used to pass | 
 | // surface ids to other clients for them to reference. | 
 | struct SurfaceId { | 
 |   uint32 local; | 
 |   uint32 id_namespace; | 
 | }; |