In order for a client to generate a new surface, it needs to be able to generate a new surface ID. Right not, it cannot do this.
We can add a client ID section to the overall surface ID. This will allow the client to generate a new surface ID by changing only the section it is allowed to change.
So what will the components of SurfaceId be then?
Right now SurfaceId = (FrameSinkId, LocalSurfaceId).
LocalSurfaceId = (local_id, nonce).
I was thinking:
LocalSurfaceId => (parent_id, child_id, nonce) instead? WDYT?
For synchronization purposes. The client ID portion of FrameSinkId is a fixed value for a particular client. The "Child ID" in LocalSurfaceId is a sequence number for synchronization that the child updates. Maybe child_sequence_number is a better name?
Comment 1 by fsamuel@google.com
, Nov 28 2017