Symbian3/PDK/Source/GUID-053BADC7-858B-5D83-8FEE-BFB6C29AFB73.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Wed, 16 Jun 2010 10:24:13 +0100
changeset 10 d4524d6a4472
parent 5 f345bda72bc4
child 14 578be2adaf3e
permissions -rw-r--r--
removal of PIPS 'antiword' example pending a decision on its license
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     6
<!-- Initial Contributors:
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     7
    Nokia Corporation - initial contribution.
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     8
Contributors: 
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     9
-->
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    10
<!DOCTYPE concept
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    12
<concept xml:lang="en" id="GUID-053BADC7-858B-5D83-8FEE-BFB6C29AFB73"><title>Render Stages Plug-Ins</title><shortdesc>This topic provides information about render stage plug-ins in the non-ScreenPlay variant. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">Non-ScreenPlay</xref>. <b>Target audience</b>: Device creators. </p> <p> <note>In the non-ScreenPlay variant, the render stage interfaces are
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    13
        at a prototype stage of development. </note>  </p> <p>For information about render stages in ScreenPlay, see <xref href="GUID-3A2785D4-6185-50C3-8D7E-5D94CD2B7C98.dita">ScreenPlay Render Stages</xref>. </p> <section><title>Introduction</title> <p>The primary use case for render stages is transition effects. During transition effects, we want to capture draw operations for transition participants into an offscreen target. Then over a series of frames, we want to perform some transformation of the draw operations, and reintroduce them into the scene. For example, for a disappearing menu, we want to capture the draw operations for the menu, and then perhaps play them back but with different offsets, so that the menu appears to slide off the screen. </p> <p>Render stages make it possible to redirect the drawing, so that we can capture the draw operations. They also make it possible to introduce new draw operations into the stream, so that we can play back the transition effect. </p> <p>The default render stage does neither of these things, simply rendering the draw ops to the default screen target as expected. </p> </section> <section><title>Using render stages </title> <p>The high level steps to creating and using render stages are shown here: </p> <ol id="GUID-B7908ADF-6C53-55C1-977A-3EC221C73F75"><li id="GUID-A3F4F82D-4ABF-537F-82A4-FBA0671D05C4"><p>Screen creates render stage chain at construction time </p> </li> <li id="GUID-3BFDAA17-6392-530A-9FB1-8D0BDF6C1B3C"><p>Render stage performs custom rendering </p> </li> </ol> </section> <section><title>1. Screen creates render stage chain at construction
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    14
          time</title> <p><b>Setup in WSINI.INI file </b> </p> <p>The render stages to be used are specified on a per screen basis. </p> <p>For example: </p> <p> <codeph>[SCREEN 1] </codeph>  </p> <p> <codeph>RENDERSTAGES FLICKERFREE STD</codeph>  </p> <p>If no render stages are specified, the default render stages will be used. </p> <p><b>Process </b> </p> <p>The following code is required: </p> <p> <codeph>CScreenRedraw::ConstructL()</codeph> - this constructs a <xref href="GUID-D5E0D138-2206-3DE6-9681-2E7C06E9C0FA.dita"><apiname>CScreenRedraw</apiname></xref> object </p> <p> <codeph>WsIniFile-&gt;FindVar(iScreenNumber, “RENDERSTAGES”) </codeph> - this returns the list of render stages to be used on this screen </p> <p> <b>For</b> each specified render stage, call <codeph>CWsPluginManager::FindNamedImplementation&lt;MWsRenderStageFactory&gt;()</codeph> </p> <p> <b>For</b> each plug-in in the list: </p> <ul><li id="GUID-F2466555-6BBA-53CC-B825-BBDED289E600"><p>Call <codeph>ResolveObjectInterface(“MWsRenderStageFactory”)</codeph> on the <xref href="GUID-28DEFD88-3AB5-3F94-9A26-27B240294950.dita"><apiname>CWsPlugin</apiname></xref> instance. If the plug-in is a render stage factory, it is required to “<codeph>return this</codeph> ”, otherwise “<codeph>return NULL</codeph> ”. </p> </li> <li id="GUID-B802F1C8-D2B1-513D-802C-75F1F093E183"><p>If an <xref href="GUID-DE3DA8CA-437D-33B8-A747-941810A48897.dita"><apiname>MWsRenderStageFactory</apiname></xref> pointer is returned, and the plug-in has the correct name, return the <xref href="GUID-DE3DA8CA-437D-33B8-A747-941810A48897.dita"><apiname>MWsRenderStageFactory</apiname></xref>. </p> </li> </ul> <p> <b>Endfor</b> (plug-ins) </p> <p>Call <codeph>MWsRenderStageFactory::CreateStageL() </codeph> - this calls into the plug-in’s render stage factory. The implementor of the SPI is required to return a <xref href="GUID-B89CEF40-0139-3E6F-803D-F74E2BCB029A.dita"><apiname>CWsRenderStage</apiname></xref> * which is pointing to an instance of a custom subclass. </p> <p>Connect the output of one stage to the input of the next </p> <p> <b>Endfor</b> (specified render stages) </p> </section> <section><title>2. Render stage performs custom rendering</title> <p><b>Process </b> </p> <p>The following code is required: </p> <p> <codeph>CScreenRedraw::OnAnimation()</codeph> - WSERV redraw scheduler causes rendering to occur </p> <p>Call <codeph>CWsRenderStage::Begin() </codeph> on the first render stage. This returns the <codeph>CFbsBitGc*</codeph> to be used for drawing </p> <p>Issue draw operations to the <codeph>CFbsBitGc*</codeph>  </p> <p>The render stage processes the draw operations </p> <p>Call <codeph>CWsRenderStage::End()</codeph> on the first render stage </p> <p> <note>Note that WSERV only talks to the first render stage. This may
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    15
          in turn talk to the second render stage and so on, but WSERV won’t know
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    16
          anything about this.</note>  </p> </section> </conbody><related-links><link href="GUID-39CFE2E2-9776-54EE-8E3B-8B85AFF1697A.dita"><linktext>Window Server Plug-in Framework in the
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    17
                Non-ScreenPlay Variant </linktext> </link> <link href="GUID-139F9E66-830D-5B94-8674-2F90152EBC4A.dita"><linktext> Fader Plug-ins</linktext> </link> <link href="GUID-434F690E-738A-51DF-80CC-8A6CC067DA6C.dita"><linktext>Miscellaneous Plug-in
1
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    18
                Interfaces</linktext> </link> <link href="GUID-E7F6DD98-9080-50E9-B071-56247EBBF570.dita"><linktext>Window Server Plugins Component</linktext> </link> <link href="GUID-3A2785D4-6185-50C3-8D7E-5D94CD2B7C98.dita"><linktext>Render Stages</linktext> </link> </related-links></concept>