Symbian3/PDK/Source/GUID-23E414B0-581B-5B6C-A449-8DA7AD8E1FA4.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
parent 9 59758314f811
child 14 578be2adaf3e
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-23E414B0-581B-5B6C-A449-8DA7AD8E1FA4"><title>Window Server Plugins Component Overview</title><shortdesc>The Window Server Plugins component provides render stage plug-ins for use in ScreenPlay. These reproduce the rendering behavior in Symbian OS v9.4. Device creators can use the supplied render stage plug-ins or use them as a reference when developing their own. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target audience</b>: Device creators. </p> <p>The Window Server Plugins component supplies two render stages, known as the Flicker Buffer and Display render stages. The following diagram shows their standard configuration. </p> <fig id="GUID-1B844F0F-E83C-5DD3-BCF0-2203C749A49F"><title>
          Standard render stage configuration 
        </title> <image href="GUID-6AAD3BB0-E536-57A2-AEFD-2E22BA2811B4_d0e257552_href.png" placement="inline"/></fig> <p>The render stage API has <codeph>Begin()</codeph> and <codeph>End()</codeph> functions, which bracket batches of draw operations. </p> <p>The Display render stage simply renders the draw operations it receives straight into the UI surface. </p> <p>The Flicker Buffer renders the draw operations it receives into an offscreen surface. When it receives the <codeph>End()</codeph> call, it calls the Display render stage, but passes in only a single draw operation—a blit of the offscreen surface into the UI surface. As its name suggests, the purpose of the Flicker Buffer render stage is to reduce flicker. Without the Flicker Buffer render stage, each draw operation from the redraw store playback would be rendered straight into the UI surface. </p> <p>For example, suppose that the redraw store playback consists of two draw operations—a blit of a skin bitmap and some text drawing over the top of it. Without the Flicker Buffer, the end user would first see the skin bitmap appear and would then see the text drawn over the top. With the Flicker Buffer render stage, the skin and the text appear at once. </p> <p>These render stages also implement the features required for <xref href="GUID-0EBE5733-A267-5F4A-85AD-87C3ECF80731.dita">dynamic resolution switching</xref>. For example, they allow virtual resolutions that are half the real resolutions, if configured to do so in the <xref href="GUID-1D529BDC-6665-58E2-AB3F-7023D8A84F69.dita">wsini.ini file</xref>. </p> </conbody><related-links><link href="GUID-3A2785D4-6185-50C3-8D7E-5D94CD2B7C98.dita"><linktext>Render Stages</linktext> </link> <link href="GUID-22093E74-EFE7-5642-93DE-1573E18F7C08.dita"><linktext>Window Server Rendering
                Loop</linktext> </link> <link href="GUID-57A777A3-5D67-5CBB-B224-B7AD422A451B.dita"><linktext>Windowing Collection</linktext> </link> </related-links></concept>