|
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-F64E6551-670E-5E12-8103-DE504D3EC94F" xml:lang="en"><title>The |
|
13 Non-ScreenPlay Graphics Architecture</title><shortdesc>ScreenPlay provides improved support for graphics hardware acceleration |
|
14 and some other new features. However, it is possible to use the Symbian platform |
|
15 without enabling ScreenPlay. This is called the non-ScreenPlay variant (sometimes |
|
16 referred to as the <b>non-NGA</b> variant). This topic provides an introduction |
|
17 to the graphics architecture when ScreenPlay is <b>not</b> enabled. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
18 <p>The following diagram shows the non-ScreenPlay architecture. It includes |
|
19 the components in the Graphics package and some closely related components |
|
20 in other packages. </p> |
|
21 <fig id="GUID-060B8747-36A8-5F2A-BE82-0F637381673A"> |
|
22 <title>The Symbian Foundation non-ScreenPlay graphics architecture </title> |
|
23 <image href="GUID-1EC68F99-C383-5D3A-BAE9-52AF530F8445_d0e191485_href.png" placement="inline"/> |
|
24 </fig> |
|
25 <p>The software model is as follows: </p> |
|
26 <ul> |
|
27 <li id="GUID-8BDB2015-C8FD-51EC-AB19-A55C55DD6D4B"><p>The Hardware Adaptation |
|
28 Layer (HAL) consists of the frame buffer and basic attributes. All processes |
|
29 have equal access to the frame buffer and can both read and write to it. </p> </li> |
|
30 <li id="GUID-06209922-9276-5843-95ED-CCE01A96A67C"><p>The Screen Driver provides |
|
31 simple pixel, scan-line and bitmap operations. The Screen Driver has the same |
|
32 interface for both bitmaps and the frame buffer. Hardware manufacturers can |
|
33 adapt the Screen Driver to suit the available hardware. </p> </li> |
|
34 <li id="GUID-333C52F6-5B6C-5212-8286-B344749550B5"><p>The BitGDI component |
|
35 provides support for higher-level geometric primitives and text. The BitGDI |
|
36 component is implemented in terms of Screen Driver operations. All BitGDI |
|
37 rendering operations are synchronous. </p> </li> |
|
38 <li id="GUID-B542796F-47AE-5B8A-976A-446315EC6550"><p>The Window Server multiplexes |
|
39 access to the screen and provides a BitGDI-like interface. </p> </li> |
|
40 <li id="GUID-81912D86-0CF6-5399-84FF-904E15BA8B50"><p>The Window Server provides |
|
41 Direct Screen Access (DSA) support for applications that require high frame |
|
42 rates (such as video and games) to bypass the Window Server and write to the |
|
43 frame buffer directly. However, some interaction with the Window Server is |
|
44 needed to prevent the application from drawing over other application's data. </p> </li> |
|
45 </ul> |
|
46 <p>In addition, the non-ScreenPlay architecture provides support for EGL, |
|
47 OpenGL and OpenVG. </p> |
|
48 <p>The following diagram shows the rendering stack in the non-ScreenPlay variant. </p> |
|
49 <fig id="GUID-4A245007-BE0A-5DD6-A3D5-CAD9A16E0540"> |
|
50 <title>The rendering stack in the non-ScreenPlay variant</title> |
|
51 <image href="GUID-A51AB0B8-A13D-52D0-BEF8-435F76B30941_d0e191530_href.png" placement="inline"/> |
|
52 </fig> |
|
53 |
|
54 <p>Although DSA provides a solution for applications that require high frame |
|
55 rates, the non-ScreenPlay architecture has limitations when used on graphics |
|
56 accelerated hardware and non-uniform memory models. The architecture may require |
|
57 the copying of buffers between CPU and GPU memory as shown in the following |
|
58 diagram. ScreenPlay provides a solution that requires less copying of buffers |
|
59 in this type of use case. </p> |
|
60 <fig id="GUID-0EAF51D1-173E-52E2-8E28-C5FB7F6F9BD0"> |
|
61 <title> Example non-uniform memory, non-ScreenPlay hardware model </title> |
|
62 <image href="GUID-AB35BA46-87DB-59F0-9342-75550AD338B7_d0e191542_href.png" placement="inline"/> |
|
63 </fig> |
|
64 </conbody><related-links> |
|
65 <link href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita"><linktext>The ScreenPlay |
|
66 Architecture</linktext></link> |
|
67 <link href="GUID-EF62BF88-3687-505D-8BD7-EEDF36246E56.dita"><linktext>Graphics |
|
68 Hardware Acceleration</linktext></link> |
|
69 <link href="GUID-99BC101A-9466-59EE-B5C9-7622BAF6E6FF.dita"><linktext>Graphics |
|
70 Concepts</linktext></link> |
|
71 </related-links></concept> |