|
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-4A6DC7BC-4FE9-4557-8992-0EA5ACD59A4D" xml:lang="en"><title>EGL Multithreading |
|
13 Requirements</title><shortdesc>This topic provides EGL implementers with information about the |
|
14 EGL multithreading requirements on the Symbian platform.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
15 <p><b>Target audience</b>: Device creators.</p> |
|
16 <section id="GUID-E44AB766-ED1D-49EC-8D74-AE141B2406E7"><title>Introduction</title><p>This |
|
17 topic provides clarifications to the following sections of the EGL specification:</p><ul> |
|
18 <li>2.3 Direct Rendering and Address Spaces</li> |
|
19 <li>3.7 Rendering Context</li> |
|
20 <li>3.7.3 Binding Contexts and Drawables</li> |
|
21 </ul><p>For links to the relevant EGL specifications, see <xref href="GUID-A5914CFF-6F86-53E8-9928-36D3379835B1.dita">EGL |
|
22 Interface Overview</xref>.</p></section> |
|
23 <section id="GUID-9E17E402-DA10-4DC3-AB97-E03135310C28"><title>Number of threads |
|
24 per process</title><p>An EGL implementation must support an unlimited number |
|
25 of threads per process. On Symbian all threads within a process share the |
|
26 same virtual address space. EGL objects that are used by multiple threads |
|
27 in a process are therefore used within the address space in which they are |
|
28 created, as required by the EGL specification. </p><p>With one exception, |
|
29 all EGL functions and handles must be able to be used and shared |
|
30 between all of the threads within the same process. The exception is the EGL |
|
31 window surface as explained in <xref href="GUID-894AB487-C127-532D-852B-37CB0DEA1440.dita">Symbian-Specific |
|
32 Behavior</xref>. </p><p>There is a graphics resource cost associated with |
|
33 each additional thread that uses EGL. Typically only one thread within a process |
|
34 uses EGL. While usage by eight threads within a process should be possible, |
|
35 it is exceptional and has not been encountered in practice. Therefore you |
|
36 may want to optimize your implementation for between one and eight threads. |
|
37 </p></section> |
|
38 <section id="GUID-D379EFA3-D88B-4626-8F2C-18FF82BB0E47"><title>Number of current |
|
39 contexts</title><p>An EGL implementation should not place arbitrary restrictions |
|
40 on the number of contexts that can be made current, other than the restrictions |
|
41 that are explicitly stated in the specification. For example, <codeph>eglMakeCurrent()</codeph> should |
|
42 not fail with <codeph>EGL_BAD_ACCESS</codeph> when a client attempts to make |
|
43 multiple OpenVG contexts current to separate threads, simply because the implementation |
|
44 has a limit to the number of contexts that can be current at the same time. </p></section> |
|
45 </conbody><related-links> |
|
46 <link href="GUID-F094A9FA-D253-5D33-B625-A2AA0B1CE447.dita"><linktext>EGL Implementer's |
|
47 Guide</linktext></link> |
|
48 </related-links></concept> |