Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > ff187cb994c94c614ecc64c5a8528b1b > files > 4417

qt-doc-4.8.5-10.fc18.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- platform-notes.qdoc -->
  <title>Qt 4.8: Platform and Compiler Notes - Symbian</title>
  <link rel="stylesheet" type="text/css" href="style/style.css" />
  <script src="scripts/jquery.js" type="text/javascript"></script>
  <script src="scripts/functions.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="style/superfish.css" />
  <link rel="stylesheet" type="text/css" href="style/narrow.css" />
  <!--[if IE]>
<meta name="MSSmartTagsPreventParsing" content="true">
<meta http-equiv="imagetoolbar" content="no">
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
<![endif]-->

<script src="scripts/superfish.js" type="text/javascript"></script>
<script src="scripts/narrow.js" type="text/javascript"></script>

</head>
<body class="" onload="CheckEmptyAndLoadList();">
 <div class="header" id="qtdocheader">
    <div class="content"> 
    <div id="nav-logo">
      <a href="index.html">Home</a></div>
    <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
    <div id="narrowsearch"></div>
    <div id="nav-topright">
      <ul>
        <li class="nav-topright-home"><a href="http://qt.digia.com/">Qt HOME</a></li>
        <li class="nav-topright-dev"><a href="http://qt-project.org/">DEV</a></li>
        <li class="nav-topright-doc nav-topright-doc-active"><a href="http://qt-project.org/doc/">
          DOC</a></li>
        <li class="nav-topright-blog"><a href="http://blog.qt.digia.com/">BLOG</a></li>
      </ul>
    </div>
    <div id="shortCut">
      <ul>
        <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.8</a></span></li>
        <li class="shortCut-topleft-active"><a href="http://qt-project.org/doc/">ALL VERSIONS        </a></li>
      </ul>
     </div>
 <ul class="sf-menu" id="narrowmenu"> 
             <li><a href="#">API Lookup</a> 
                 <ul> 
                     <li><a href="classes.html">Class index</a></li> 
           <li><a href="functions.html">Function index</a></li> 
           <li><a href="modules.html">Modules</a></li> 
           <li><a href="namespaces.html">Namespaces</a></li> 
           <li><a href="qtglobal.html">Global Declarations</a></li> 
           <li><a href="qdeclarativeelements.html">QML elements</a></li> 
             </ul> 
             </li> 
             <li><a href="#">Qt Topics</a> 
                 <ul> 
                        <li><a href="qt-basic-concepts.html">Programming with Qt</a></li>  
                        <li><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>  
                        <li><a href="qt-gui-concepts.html">UI Design with Qt</a></li>  
                        <li><a href="supported-platforms.html">Supported Platforms</a></li>  
                        <li><a href="technology-apis.html">Qt and Key Technologies</a></li>  
                        <li><a href="best-practices.html">How-To's and Best Practices</a></li>  
              </ul> 
                 </li> 
                 <li><a href="#">Examples</a> 
                     <ul> 
                       <li><a href="all-examples.html">Examples</a></li> 
                       <li><a href="tutorials.html">Tutorials</a></li> 
                       <li><a href="demos.html">Demos</a></li> 
                       <li><a href="qdeclarativeexamples.html">QML Examples</a></li> 
                </ul> 
                     </li> 
                 </ul> 
    </div>
  </div>
  <div class="wrapper">
    <div class="hd">
      <span></span>
    </div>
    <div class="bd group">
      <div class="sidebar">
        <div class="searchlabel">
          Search index:</div>
        <div class="search" id="sidebarsearch">
          <form id="qtdocsearch" action="" onsubmit="return false;">
            <fieldset>
              <input type="text" name="searchstring" id="pageType" value="" />
 <div id="resultdialog"> 
 <a href="#" id="resultclose">Close</a> 
 <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p> 
 <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p> 
 <ul id="resultlist" class="all"> 
 </ul> 
 </div> 
            </fieldset>
          </form>
        </div>
        <div class="box first bottombar" id="lookup">
          <h2 title="API Lookup"><span></span>
            API Lookup</h2>
          <div  id="list001" class="list">
          <ul id="ul001" >
              <li class="defaultLink"><a href="classes.html">Class index</a></li>
              <li class="defaultLink"><a href="functions.html">Function index</a></li>
              <li class="defaultLink"><a href="modules.html">Modules</a></li>
              <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
              <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
              <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
            </ul> 
          </div>
        </div>
        <div class="box bottombar" id="topics">
          <h2 title="Qt Topics"><span></span>
            Qt Topics</h2>
          <div id="list002" class="list">
            <ul id="ul002" >
               <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li> 
               <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li> 
               <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li> 
               <li class="defaultLink"><a href="supported-platforms.html">Supported Platforms</a></li>  
               <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li> 
               <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li> 
            </ul>  
          </div>
        </div>
        <div class="box" id="examples">
          <h2 title="Examples"><span></span>
            Examples</h2>
          <div id="list003" class="list">
        <ul id="ul003">
              <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
              <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
              <li class="defaultLink"><a href="demos.html">Demos</a></li>
              <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
            </ul> 
          </div>
        </div>
      </div>
      <div class="wrap">
        <div class="toolbar">
          <div class="breadcrumb toolblock">
            <ul>
              <li class="first"><a href="index.html">Home</a></li>
              <!--  Breadcrumbs go here -->
<li>Platform and Compiler Notes - Symbian</li>
            </ul>
          </div>
          <div class="toolbuttons toolblock">
            <ul>
              <li id="smallA" class="t_button">A</li>
              <li id="medA" class="t_button active">A</li>
              <li id="bigA" class="t_button">A</li>
              <li id="print" class="t_button"><a href="javascript:this.print();">
                <span>Print</span></a></li>
            </ul>
        </div>
        </div>
        <div class="content mainContent">
<p class="naviNextPrevious headerNavi">
</p><p/>
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#source-compatibility">Source Compatibility</a></li>
<li class="level1"><a href="#binary-compatibility">Binary Compatibility</a></li>
<li class="level1"><a href="#supported-devices">Supported Devices</a></li>
<li class="level1"><a href="#functionality-support">Functionality Support</a></li>
<li class="level1"><a href="#compiler-notes">Compiler Notes</a></li>
<li class="level1"><a href="#known-issues">Known Issues</a></li>
<li class="level1"><a href="#required-capabilities">Required Capabilities</a></li>
<li class="level1"><a href="#multimedia-support">Multimedia Support</a></li>
<li class="level1"><a href="#hardware-accelerated-rendering">Hardware Accelerated Rendering</a></li>
<li class="level1"><a href="#opengl-support-in-symbian">OpenGL Support in Symbian</a></li>
<li class="level1"><a href="#ui-performance-in-s60-3rd-and-5th-edition-devices">UI Performance in S60 3rd and 5th Edition Devices</a></li>
</ul>
</div>
<h1 class="title">Platform and Compiler Notes - Symbian</h1>
<span class="subtitle"></span>
<!-- $$$platform-notes-symbian.html-description -->
<div class="descr"> <a name="details"></a>
<p>This page describes implementation details regarding the Qt for Symbian port. To get started with application development for Symbian devices, read the <a href="http://doc.qt.nokia.com/qtcreator/creator-developing-symbian.html">Connecting Symbian Devices</a> document.</p>
<a name="source-compatibility"></a>
<h2>Source Compatibility</h2>
<p>Qt for Symbian provides the same level of source compatibility guarantee as given for other platforms. That is, a program which compiles against a given version of Qt for Symbian will also compile against all future versions of the same major release.</p>
<a name="binary-compatibility"></a>
<h2>Binary Compatibility</h2>
<p>As with every supported platform, Qt strives to maintain application behavior and binary compatibility throughout the lifetime of the Qt 4.x major version and on the <a href="#supported-devices">Symbian devices that support Qt</a>. Symbian support in Qt SDK and Ovi Store were introduced with Qt 4.6&#x2e; Each Qt release contains bug fixes that might change the API behavior and thereby affect application compatibility.</p>
<p>In addition, Symbian devices have different input methods, such as different keyboard styles or touch input, screen sizes, memory, and CPU and GPU capabilities. Therefore, you must test applications on specific target devices to ensure compatibility. In order to build applications that are supported also on earlier devices, select the target in Qt SDK carefully. Generally, an earlier target (such as S60 5th Edition) is supported on a larger number of devices than a later target (such as Symbian Belle).</p>
<a name="supported-devices"></a><a name="supported-devices"></a>
<h2>Supported Devices</h2>
<p>The <a href="http://developer.qt.nokia.com/wiki/support_for_Symbian">Support for Symbian</a> document details the Qt support on different Symbian devices.</p>
<p>The <a href="http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian#Supported_Devices">Nokia Smart Installer for Symbian</a> document lists how Qt is supported on different Symbian devices through Smart Installer.</p>
<p>Qt versions are supported by Symbian devices as follows:</p>
<ul>
<li>Qt 4.6 is supported by S60 3rd Edition feature pack 1 and newer devices through <a href="http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian">Smart Installer</a>.</li>
<li>Qt 4.7&#x2e;3 is supported by S60 5th Edition and newer devices through <a href="http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian">Smart Installer</a>.</li>
</ul>
<p>Symbian devices have a pre-installed Qt support as follows:</p>
<ul>
<li>Symbian Anna: Qt 4.7&#x2e;3 in C: drive. Note that Qt 4.7&#x2e;4 is supported in Symbian Anna through <a href="http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian">Smart Installer</a>.</li>
<li>Symbian Belle: Qt 4.7&#x2e;4 in device firmware (ROM).</li>
</ul>
<a name="functionality-support"></a>
<h2>Functionality Support</h2>
<p>The following technologies and classes are not supported:</p>
<ul>
<li><a href="qtconcurrent.html">QtConcurrent</a></li>
<li><a href="qtdbus.html">QtDBus</a></li>
<li><a href="http://doc.qt.nokia.com/4.8/printing.html">Printing support</a></li>
<li><a href="qt3support.html">Qt3Support</a></li>
</ul>
<p>The following technologies have limited support:</p>
<table class="generic">
<thead><tr class="qt-style"><th >Module</th><th >Note</th></tr></thead>
<tr valign="top" class="odd"><td ><a href="qtsql.html">QtSql</a></td><td >The supported drivers are SQLite and QSYMSQL.</td></tr>
<tr valign="top" class="even"><td ><a href="qtmultimedia.html">QtMultimedia</a></td><td >For support details see <a href="#multimedia-support">Multimedia Support</a> section.</td></tr>
<tr valign="top" class="odd"><td ><a href="qtgui.html">QtGui</a></td><td ><a href="qtgui.html">QtGui</a>'s widgets are deprecated (i.e&#x2e; they are available but not recommended to use) in the Symbian port. It is recommended to use <a href="http://doc.qt.nokia.com/qt-components-symbian-1.1/symbian-components-functional.html">Qt Quick Components for Symbian</a> instead, because they provide better look and feel on Symbian devices.<p>Moreover, the following classes of <a href="qtgui.html">QtGui</a> <b>should not be used</b> in a Symbian application:</p>
<ul>
<li><a href="qfiledialog.html">QFileDialog</a> with the <tt>DontUseNativeDialog</tt> option</li>
<li><a href="qcolordialog.html">QColorDialog</a> with the <tt>DontUseNativeDialog</tt> option</li>
<li><a href="qfontdialog.html">QFontDialog</a></li>
<li><a href="qwizard.html">QWizard</a></li>
<li><a href="qcalendarwidget.html">QCalendarWidget</a></li>
<li><a href="qdatetimeedit.html">QDateTimeEdit</a></li>
<li><a href="qmdiarea.html">QMdiArea</a></li>
<li><a href="qdockwidget.html">QDockWidget</a></li>
<li><a href="qmdisubwindow.html">QMdiSubWindow</a></li>
<li><a href="qprintpreviewwidget.html">QPrintPreviewWidget</a></li>
</ul>
<p><a href="qscrollarea.html">QScrollArea</a>: The scrolling and focus handling of <a href="qscrollarea.html">QScrollArea</a>'s all scrollable widgets, for example <a href="qlistview.html">QListView</a>, differs from native Avkon list widgets' one. Native Avkon scrollable components support touch-gesture-based scrolling by dragging and flicking the UI component but this functionality is not implemented in Qt widgets. Scrolling by dragging and flicking works also in Qt Quick Components that implements the <a href="http://www.developer.nokia.com/Resources/Library/Symbian_Design_Guidelines/">Symbian design guidelines</a>.</p>
</td></tr>
</table>
<a name="compiler-notes"></a>
<h2>Compiler Notes</h2>
<p>For the application development the necessary compiler toolchain is included in <a href="http://qt.nokia.com/downloads">Qt SDK</a>. For instructions compiling Qt itself see the <a href="http://doc.qt.nokia.com/stable/install-symbian.html">Installing Qt for the Symbian platform</a> document.</p>
<a name="known-issues"></a>
<h2>Known Issues</h2>
<p>Known issues can be found by visiting the <a href="http://qt.gitorious.org/qt/pages/QtKnownIssues">wiki page</a> with an up-to-date list of known issues, and the list of bugs can be found by <a href="http://bugreports.qt-project.org/browse/QTBUG/component/19171">browsing</a> the S60 component in Qt's public task tracker, located at <a href="http://bugreports.qt-project.org/">http://bugreports.qt-project.org/</a>.</p>
<p>For information about mixing exceptions with Symbian leaves, see <a href="symbianexceptionsafety.html">Exception Safety with Symbian</a>.</p>
<a name="required-capabilities"></a>
<h2>Required Capabilities</h2>
<p>The Qt libraries are typically signed with <tt>All -TCB</tt> capabilites but that does not mean your Qt application needs to be signed with the same capabilities to function properly. The capabilities your application needs to function properly depends on which parts of Qt you use. In a Qt application Symbian capabilities are defined in the <a href="http://doc.qt.nokia.com/4.8/qmake-variable-reference.html#target-capability">TARGET.CAPABILITY</a> qmake variable in the project file. Here is an overview for which capabilities may be needed when using different modules:</p>
<table class="generic">
<thead><tr class="qt-style"><th >Module</th><th >Required Symbian Capability</th></tr></thead>
<tr valign="top" class="odd"><td ><a href="qtcore.html">QtCore</a></td><td ><tt>PowerMgmt</tt> if QProcess::kill(..&#x2e;) or QProcess::terminate(..&#x2e;) is called.</td></tr>
<tr valign="top" class="even"><td ><a href="qtcore.html">QtCore</a></td><td ><tt>AllFiles</tt> when <a href="http://wiki.forum.nokia.com/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability">accessing specific areas.</a></td></tr>
<tr valign="top" class="odd"><td ><a href="qtdeclarative.html">QtDeclarative</a></td><td ><tt>NetworkServices</tt> is automatically added for this module if no capabilities are explicitly specified.</td></tr>
<tr valign="top" class="even"><td ><a href="qtnetwork.html">QtNetwork</a></td><td ><tt>NetworkServices</tt> is automatically added for this module if no capabilities are explicitly specified.</td></tr>
<tr valign="top" class="odd"><td ><a href="qtnetwork.html">QtNetwork</a></td><td ><tt>ReadUserData</tt> is required to include all the phone's SSL certificates in the system's default CA certificate list (for example those added by the user or stored in the SIM card), without this capability only the CA certs built into the phone are used.</td></tr>
<tr valign="top" class="even"><td ><a href="qtmultimedia.html">QtMultimedia</a></td><td ><tt>UserEnvironment</tt> if <a href="qaudioinput.html">QAudioInput</a> is used.</td></tr>
<tr valign="top" class="odd"><td ><a href="qtwebkit.html">QtWebKit</a></td><td ><tt>NetworkServices</tt> is automatically added for this module if no capabilities are explicitly specified.</td></tr>
</table>
<p><b>Note:</b> Some modules rely on other modules. E.g&#x2e; QtWebkit and <a href="qtdeclarative.html">QtDeclarative</a> depend on <a href="qtnetwork.html">QtNetwork</a> and therefore any application that depends on these modules is also likely to need <tt>NetworkServices</tt> capability.</p>
<p>For more information see the documentation of the individual Qt classes. If a class does not mention Symbian capabilities, it requires none.</p>
<a name="multimedia-support"></a><a name="multimedia-support"></a>
<h2>Multimedia Support</h2>
<p>Qt Mobility provides a high-level API for multimedia functionality with <a href="http://doc.qt.nokia.com/qtmobility/multimedia.html">QtMultimediaKit</a>. In addition, Qt provides the low-level <a href="qtmultimedia.html">QtMultimedia</a> module that is internally used by the QtMultimediaKit. For more information on developing multimedia applications for Symbian devices, see <a href="http://www.developer.nokia.com/info/sw.nokia.com/id/4abf12e7-72d8-45ef-b1a2-46184abe18ba/Guide_for_Qt_Multimedia_Developers.html">Guide for Qt Multimedia Developers</a>.</p>
<p>Moreover, there is a third multimedia-related module called Phonon. Qt provides two backends for the Phonon module in Symbian:</p>
<p>MMF and</p>
<p>Helix.</p>
<p>Note that Phonon is a legacy module and the QtMultimediaKit module is replacing Phonon in Qt 5. Although Phonon is supported in Symbian for backwards compatibility and there is no plan to remove Phonon from Symbian any new applications should use QtMultimediaKit in Symbian using Qt 4.7 bundle. The QtMultimediaKit feature set is comparable to that in Phonon.</p>
<p>The following applies to Phonon:</p>
<ul>
<li>MMF Phonon backend supports video and sound playback through Symbian's Multimedia Framework, MMF. Phonon's video playback may show artifacts when the video is moved or resized (for instance, during device orientation changes from portrait to landscape and vice versa). This problem is present on S60 5th Edition and earlier versions, as well as in Symbian Anna devices.</li>
<li>The audio and video formats that Phonon supports depends on what support the platform provides for MMF. The emulator is known to have limited codec support.</li>
<li>In addition, there exists a backend for the Helix framework. However, since it is not shipped with Qt, its availability depends on the Symbian platform in use. If the MFF plugin fails to load, the Helix plugin, if present on the device, will be loaded instead.</li>
</ul>
<a name="hardware-accelerated-rendering"></a>
<h2>Hardware Accelerated Rendering</h2>
<p>The default graphics system on Symbian Anna is OpenVG, which uses OpenVG hardware to accelerate <a href="qpainter.html">QPainter</a> functions. There are a few exceptions, where Qt will use software rendering fallback.</p>
<p>Devices like the N8 and C7 only have 32Mb of GPU memory and limited support for EGL surface transparency. These devices can be identified by querying the<tt>GL_RENDERER</tt> or <tt>VG_RENDERER</tt> string which evaluates to <tt>VideoCore III</tt>. On these devices, Qt will use software rendering in cases listed below.</p>
<ul>
<li>Translucent windows</li>
<li>Dialogs</li>
<li>Popups</li>
</ul>
<a name="opengl-support-in-symbian"></a>
<h2>OpenGL Support in Symbian</h2>
<p>Qt 4.7 introduces the <a href="qtopengl.html">QtOpenGL</a> module. <a href="qtopengl.html">QtOpenGL</a> is supported on devices which support OpenGL ES 2.0&#x2e; Symbian platforms prior to Symbian Anna (and Symbian^3) are not supported.</p>
<p><a href="qglwidget.html">QGLWidget</a> usage as a <a href="qgraphicsview.html">QGraphicsView</a> viewport is not recommended on Symbian. The OpenVG graphics system is not able to manage OpenGL graphics resources. Also, a <a href="qglwidget.html">QGLWidget</a> object is not able to release its GPU resources when the application goes to the background. If OpenGL functionality is needed, <a href="http://doc.qt.nokia.com/4.7-snapshot/qapplication.html#setGraphicsSystem">OpenGL graphics system</a> usage is recommended. If an application decides to use <a href="qglwidget.html">QGLWidget</a>, then it is the application's responsibility to destroy and release <a href="qglwidget.html">QGLWidget</a> and related OpenGL resources when the application goes to the background. Otherwise, the <a href="http://www.developer.nokia.com/Community/Wiki/Graphics_memory_handling">Graphics Out Of Memory monitor</a> may decide to kill the application as it consumes GPU resources while in the background.</p>
<p><b>Note:</b> <a href="qglbuffer.html">QGLBuffer</a>, <a href="qglframebufferobject.html">QGLFramebufferObject</a>, <a href="qglpixelbuffer.html">QGLPixelBuffer</a>, <a href="qglshader.html">QGLShader</a>, and <a href="qglshaderprogram.html">QGLShaderProgram</a> are direct GPU resources and it is the application's responsibility to manage them.</p>
<a name="ui-performance-in-s60-3rd-and-5th-edition-devices"></a>
<h2>UI Performance in S60 3rd and 5th Edition Devices</h2>
<p>Qt uses the <a href="qpainter.html">QPainter</a> class to perform low-level painting on widgets and other paint devices. <a href="qpainter.html">QPainter</a> provides functions to draw complex shapes, aligned text and pixmaps. It can also do vector path clipping, coordinate transformations and Porter-Duff composition. If the underlying graphics architecture does not support all of these operations then Qt uses the raster graphics system for rendering.</p>
<p>In Symbian Anna (and Symbian^3) Qt uses hardware accelerated graphics as explained above. This is enabled by <a href="http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html">ScreenPlay Graphics Architecture</a> in these devices.</p>
<p>Most of the Symbian S60 3rd and 5th Edition devices have a graphics architecture that does not have native support for all functions provided by <a href="qpainter.html">QPainter</a>. In these <a href="http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html">non-ScreenPlay</a> devices Qt uses the raster graphics system by default that has a performance penalty compared to native Symbian rendering.</p>
<p>In order to be able to perform all functions provided by <a href="qpainter.html">QPainter</a>, the raster graphics system needs to have pixel level framebuffer access. To make this possible in non-ScreenPlay devices Qt has to create an additional offscreen buffer that is the target for all Qt rendering operations. Qt renders the widget tree to the offscreen buffer and the offscreen buffer is blitted to the framebuffer via Symbian Window Server.</p>
<p>The following table shows the rendering stacks of native Symbian and Qt in <a href="http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html">non-ScreenPlay devices</a>.</p>
<table class="generic">
<thead><tr class="qt-style"><th >Symbian</th><th >Qt</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/symbian-rendering-stack-non-screenplay.png" alt="" /></p></td><td ><p class="centerAlign"><img src="images/symbian-qt-rendering-stack-non-screenplay.png" alt="" /></p></td></tr>
</table>
<p>The following diagrams show a simplified sequence of drawing a pixmap in a non-ScreenPlay device.</p>
<table class="generic">
<thead><tr class="qt-style"><th >Symbian</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/symbian-draw-pixmap-sequence.png" alt="" /></p></td></tr>
</table>
<table class="generic">
<thead><tr class="qt-style"><th >Qt</th></tr></thead>
<tr valign="top" class="odd"><td ><p class="centerAlign"><img src="images/symbian-qt-draw-pixmap-sequence.png" alt="" /></p></td></tr>
</table>
<p>When compared to a native Symbian application, Qt does an additional blit to the offscreen buffer before drawing to the framebuffer. That is the performance penalty which needs to be paid to get all functionality provided by <a href="qpainter.html">QPainter</a> in non-ScreenPlay architecture.</p>
</div>
<!-- @@@platform-notes-symbian.html -->
<p class="naviNextPrevious footerNavi">
</p>
      </div>
    </div>
    </div> 
    <div class="ft">
      <span></span>
    </div>
  </div> 
  <div class="footer">
    <p>
      <acronym title="Copyright">&copy;</acronym> 2013 Digia Plc and/or its
      subsidiaries. Documentation contributions included herein are the copyrights of
      their respective owners.</p>
    <br />
    <p>
      The documentation provided herein is licensed under the terms of the
      <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation
      License version 1.3</a> as published by the Free Software Foundation.</p>
    <p>
      Documentation sources may be obtained from <a href="http://www.qt-project.org">
      www.qt-project.org</a>.</p>
    <br />
    <p>
      Digia, Qt and their respective logos are trademarks of Digia Plc 
      in Finland and/or other countries worldwide. All other trademarks are property
      of their respective owners. <a title="Privacy Policy"
      href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
  </div>

  <script src="scripts/functions.js" type="text/javascript"></script>
</body>
</html>