Symbian3/PDK/Source/GUID-22E46647-D677-5A47-A7E0-E1E0AE736B27.dita
changeset 1 25a17d01db0c
child 3 46218c8b8afa
equal deleted inserted replaced
0:89d6a7a84779 1:25a17d01db0c
       
     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-22E46647-D677-5A47-A7E0-E1E0AE736B27" xml:lang="en"><title>DirectGDI
       
    13 Adaptation Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>The DirectGDI Adaptation component, together with the DirectGDI Interface
       
    15 component, forms the DirectGDI adaptation layer. The DirectGDI Interface component
       
    16 defines the interfaces that the adaptations must implement and the DirectGDI
       
    17 Adaptation component consists of the two DirectGDI implementations that are
       
    18 provided in the Graphics package. </p>
       
    19 <p><b>Target audience</b>: Device creators. </p>
       
    20 <note type="note">DirectGDI is deprecated in Symbian^3.</note>
       
    21 <p>The <xref href="GUID-A2E07A3C-B3A8-50B9-BD60-F1F01795FA24.dita">DirectGDI component</xref> provides
       
    22 a framework that enables graphics hardware acceleration and interleaved rendering.
       
    23 This framework provides an API for client applications and a Hardware Adaptation
       
    24 Interface (HAI), which defines interfaces that must be implemented by device
       
    25 and hardware manufacturers in order to provide the API functionality. The
       
    26 framework has a dependency on the <xref href="GUID-82B0B4B9-6BC2-5BEF-B3B0-D57AC57F8D8A.dita">Graphics
       
    27 Resource Component</xref>. </p>
       
    28 <p>The Graphics package includes two DirectGDI adaptations: </p>
       
    29 <ul>
       
    30 <li id="GUID-B0C72AE2-2A06-59AD-98AA-BCE881ECD460"><p>A purely software adaptation
       
    31 that uses existing components to draw to the screen in a similar manner to
       
    32 BitGDI. This is suitable for use in phones that do not include graphics acceleration
       
    33 hardware. </p> </li>
       
    34 <li id="GUID-FB34D088-0046-5A1B-9C23-39D11C448ECD"><p>A hardware adaptation
       
    35 that uses OpenVG and EGL APIs on the H4 platform. This is provided for reference
       
    36 purposes and there is no requirement that the implementation use OpenVG. Hardware
       
    37 manufacturers can in fact use any third-party rendering system that is suitable
       
    38 for use with the target hardware. </p> </li>
       
    39 </ul>
       
    40 <p>The following diagram shows the generic DirectGDI API and implementation,
       
    41 with one software and two hardware implementations. Although shown on the
       
    42 same diagram, in fact only one implementation can exist on the same phone.
       
    43 A configuration at ROM build time decides which implementation is used. </p>
       
    44 <fig id="GUID-E4CD5B76-03E0-5F4C-8C65-C2F2B52969F5">
       
    45 <title>           DirectGDI architecture          </title>
       
    46 <image href="GUID-912643B5-0B8D-5836-B864-9A2DBAC86B00_d0e240364_href.png" placement="inline"/>
       
    47 </fig>
       
    48 <p>Notice that all three of the implementations implement the common <xref href="GUID-97E3E8DD-A2DA-3961-96E3-41AEAFFDD275.dita"><apiname>MDirectGdiEngine</apiname></xref> interface.
       
    49 Also notice that the hardware implementation uses asynchronous calls to the
       
    50 graphic acceleration hardware driver. This means that the CPU can continue
       
    51 with other processing while the GPU is busy processing the rendering request.
       
    52 This improves the parallelism between the CPU and the GPU. </p>
       
    53 <p>The software implementation does not use asynchronous calls, because the
       
    54 rendering is performed by the CPU. </p>
       
    55 <section id="GUID-134818CD-B113-4AE1-8C48-CDF9CB38C46E"><title>Generic layer</title> <p>The
       
    56 following figure shows the classes in the DirectGDI generic layer (which is
       
    57 shaded green). Classes that are provided by other components are shown in
       
    58 red. Classes that cross the generic layer boundary have some parts that cannot
       
    59 be modified (such as a fixed API), but have other parts that can be modified. </p> <fig id="GUID-1A830274-D596-586A-B469-0CB7619FB391">
       
    60 <title>              The DirectGDI generic layer classes            </title>
       
    61 <image href="GUID-26B3BB7B-53CC-518F-85DA-CBAAD52DCE1C_d0e240389_href.png" placement="inline"/>
       
    62 </fig> </section>
       
    63 </conbody><related-links>
       
    64 <link href="GUID-A2E07A3C-B3A8-50B9-BD60-F1F01795FA24.dita"><linktext>DirectGDI
       
    65 Component</linktext></link>
       
    66 <link href="GUID-7B511CC2-CE38-5888-AF12-3568BEB416A6.dita"><linktext>DirectGDI
       
    67 Interface Component</linktext></link>
       
    68 <link href="GUID-EBE2D1D3-3A99-54BF-B5C0-08E9267F5750.dita"><linktext>Creating
       
    69 a DirectGDI Adaptation</linktext></link>
       
    70 </related-links></concept>