|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-E56EB25C-9B94-5486-9492-5151FDF79B6C" xml:lang="en"><title>Global |
|
13 Surface Updates</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <p>Global surface updates are surface updates that are submitted to all displays |
|
15 rather than just one display. By using global surface updates, the Video Renderer |
|
16 can update surfaces on all displays including ones that it is not aware of. |
|
17 When the Video Renderer sends a global surface update, the update is broadcast |
|
18 by the Graphics <xref href="GUID-81A0A2E9-4BB9-58BF-B2D3-08098E7E9C7C.dita">Surface |
|
19 Update</xref> component to all Composition Implementations present in the |
|
20 system. Each Composition Implementation determines whether the surface is |
|
21 displayed on its associated screen and if so, forces an update. For more information, |
|
22 see <xref href="GUID-D2ECF215-B53C-5659-BA86-5B658C0C2D2F.dita">Global Surface |
|
23 Updates</xref> in the Graphics Guide. </p> |
|
24 <p>The Video Renderer registers and unregisters surfaces with the Window Server |
|
25 for all available displays. When the client calls <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>CVideoRenderer::CreateSurfaceL()</apiname></xref>, |
|
26 the Video Renderer creates the surface and then registers it with each display. |
|
27 When the client calls <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>CVideoRenderer::DestroySurfaceL()</apiname></xref>, |
|
28 the Video Renderer unregisters the surface with each display and then destroys |
|
29 it. The following sequence diagram shows how the Video Renderer registers |
|
30 and unregisters surfaces: </p> |
|
31 <fig id="GUID-B9190405-76E6-557D-A1F7-03ADDB8E456D"> |
|
32 <title> Surface registration </title> |
|
33 <image href="GUID-D729593E-C131-5F67-BF0C-6C9AD847C9F9_d0e328353_href.png" placement="inline"/> |
|
34 </fig> |
|
35 <p>The Video Renderer uses the global constant <codeph>KAllScreens</codeph> (provided |
|
36 by the Surface Update component) to ensure all displays are updated with new |
|
37 data. The following sequence diagram shows the Video Renderer passing <codeph>KAllScreens</codeph> in |
|
38 the call to <xref href="GUID-AFEC8287-41C9-36BB-B0F7-ECC034D34DC6.dita"><apiname>RSurfaceUpdateSession::SubmitUpdate()</apiname></xref>: </p> |
|
39 <fig id="GUID-4CA7A049-1B60-5CB5-956A-DDDFF0A5E3B1"> |
|
40 <title> Data flow between client, Video Renderer and Surface Update |
|
41 client-side API </title> |
|
42 <image href="GUID-3C8FD050-1CD4-5AFB-ACB7-4264536BB300_d0e328376_href.png" placement="inline"/> |
|
43 </fig> |
|
44 </conbody><related-links> |
|
45 <link href="GUID-98FBEA7E-78BA-5A64-90D6-4641418003B4.dita"><linktext>Video Renderer |
|
46 Component</linktext></link> |
|
47 <link href="GUID-63CB6C7E-44EC-5D0B-A37D-FE78F7D76592.dita"><linktext>Graphics |
|
48 Composition Collection</linktext></link> |
|
49 </related-links></concept> |