|
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> |