56 provides Window Server clients with functions for setting and getting the |
56 provides Window Server clients with functions for setting and getting the |
57 current display configuration, getting a list of available resolutions and |
57 current display configuration, getting a list of available resolutions and |
58 enabling display change event notifications (<codeph>EEventDisplayChanged</codeph>). |
58 enabling display change event notifications (<codeph>EEventDisplayChanged</codeph>). |
59 The following diagram shows the class hierarchy. </p> <fig id="GUID-F9D95387-151F-5725-8BDD-C44A3D333A97"> |
59 The following diagram shows the class hierarchy. </p> <fig id="GUID-F9D95387-151F-5725-8BDD-C44A3D333A97"> |
60 <title> Display control class diagram </title> |
60 <title> Display control class diagram </title> |
61 <image href="GUID-68E3609C-3429-5B1C-B8D9-C0EBBACEF357_d0e193491_href.png" placement="inline"/> |
61 <image href="GUID-68E3609C-3429-5B1C-B8D9-C0EBBACEF357_d0e188429_href.png" placement="inline"/> |
62 </fig> <p>Once you have obtained |
62 </fig> <p>Once you have obtained |
63 the <xref href="GUID-0C384D35-77DD-318E-AF3E-C9ED5ADD9D11.dita"><apiname>MDisplayControl</apiname></xref> interface, you can call <codeph>GetResolutions()</codeph> on |
63 the <xref href="GUID-0C384D35-77DD-318E-AF3E-C9ED5ADD9D11.dita"><apiname>MDisplayControl</apiname></xref> interface, you can call <codeph>GetResolutions()</codeph> on |
64 it. For example: </p> <codeblock id="GUID-C82D0166-0E29-5F90-8087-800EDDE2D895" xml:space="preserve">// Get available resolutions |
64 it. For example: </p> <codeblock id="GUID-C82D0166-0E29-5F90-8087-800EDDE2D895" xml:space="preserve">// Get available resolutions |
65 RArray<MDisplayControl::TResolution> resolutions; |
65 RArray<MDisplayControl::TResolution> resolutions; |
66 User::LeaveIfError(iDisplayControl->GetResolutions(resolutions)); |
66 User::LeaveIfError(iDisplayControl->GetResolutions(resolutions)); |
165 knowing the extent of both the application and the full UI area. The application |
165 knowing the extent of both the application and the full UI area. The application |
166 can use the <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface to get this information, |
166 can use the <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface to get this information, |
167 so that the virtual keyboard can be drawn within the full UI area but outside |
167 so that the virtual keyboard can be drawn within the full UI area but outside |
168 of the application's extent. </p> <fig id="GUID-55BD49C6-9A51-53A7-A587-29A151FACF6B"> |
168 of the application's extent. </p> <fig id="GUID-55BD49C6-9A51-53A7-A587-29A151FACF6B"> |
169 <title> Display mapping class diagram </title> |
169 <title> Display mapping class diagram </title> |
170 <image href="GUID-7293765E-2B1E-5F0D-B6A8-0E48729DC365_d0e193629_href.png" placement="inline"/> |
170 <image href="GUID-7293765E-2B1E-5F0D-B6A8-0E48729DC365_d0e188567_href.png" placement="inline"/> |
171 </fig> <p> </p> <p>The <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface is very |
171 </fig> <p> </p> <p>The <xref href="GUID-BA6FEFAE-8891-3286-A38F-2EA522D7A27E.dita"><apiname>MDisplayMapping</apiname></xref> interface is very |
172 flexible. UIDs are used to signify the application UI coordinate space, the |
172 flexible. UIDs are used to signify the application UI coordinate space, the |
173 full UI space, the composition/display coordinate space (which may be a different |
173 full UI space, the composition/display coordinate space (which may be a different |
174 scale to the UI coordinate space) and the Direct Screen Access (DSA) space |
174 scale to the UI coordinate space) and the Direct Screen Access (DSA) space |
175 (which may match the full UI space, or be offset relative to the application |
175 (which may match the full UI space, or be offset relative to the application |
180 composition/display space may enlarge (or sometimes reduce) the rectangle’s |
180 composition/display space may enlarge (or sometimes reduce) the rectangle’s |
181 size. </p> <p>For example, consider the following diagram, in which the outer |
181 size. </p> <p>For example, consider the following diagram, in which the outer |
182 rectangle represents the display area and the inner one represents the application |
182 rectangle represents the display area and the inner one represents the application |
183 space (screen mode). </p> <fig id="GUID-6935A7BE-C651-5582-8E2A-11A18CDD531F"> |
183 space (screen mode). </p> <fig id="GUID-6935A7BE-C651-5582-8E2A-11A18CDD531F"> |
184 <title>Display area and application extent </title> |
184 <title>Display area and application extent </title> |
185 <image href="GUID-09142C26-0AFA-510E-836D-010EE07A1549_d0e193658_href.png" placement="inline"/> |
185 <image href="GUID-09142C26-0AFA-510E-836D-010EE07A1549_d0e188596_href.png" placement="inline"/> |
186 </fig> <p>The display resolution is 1280 x 720, the application size is 176 |
186 </fig> <p>The display resolution is 1280 x 720, the application size is 176 |
187 x 208 and a virtual resolution of 426 x 240 has been introduced, which gives |
187 x 208 and a virtual resolution of 426 x 240 has been introduced, which gives |
188 a scaling factor of three in each direction. All pixels are approximately |
188 a scaling factor of three in each direction. All pixels are approximately |
189 square, for simplicity. The application area has been centered in the display, |
189 square, for simplicity. The application area has been centered in the display, |
190 giving an <i>X</i> offset of (426-176)/2 and a <i>Y</i> offset of (240-208)/2, |
190 giving an <i>X</i> offset of (426-176)/2 and a <i>Y</i> offset of (240-208)/2, |