The Window Server manages the use of the screen and input devices by applications and controls and co-ordinates access.
Symbian^4 has a new application and UI framework based on Qt
and Orbit. The introduction of the new framework has led to the CWindowGc
API and some other traditional Window Server functionality
becoming "legacy" features. By this we mean that although they are
supported, they are not used by Qt and Orbit applications. This is
shown in the following diagram.
Figure: The Window Server in Symbian^4
The key features of the Window Server in Symbian^4 are as follows:
The Window Server is a single central server, which manages the phone's screen and user input devices, which are shared resources for all running applications.
The Window Server controls the screen access, by maintaining a structure that manages the size, position and z-ordering of application windows.
The Window Server coordinates the input event streams, for example, by directing pointer and touch events to the appropriate application's window and directing keyboard events to the application that has focus. The support for pointers includes advanced features, such as multiple pointers and proximity and pressure coordinates.
The Symbian^4 application and UI framework has been designed for Qt and Orbit applications and enables these applications to render the UI content directly to an external surface using Khronos rendering API, such as OpenVG and OpenGL ES. However, this is mostly hidden from the application developer.
The term surface is used for a hardware-independent memory buffer for holding an image or part of a scene. An external surface is a surface that has been bound to a window.
Although drawing through the CWindowGc
API
is now considered a legacy feature, the Window Server continues to
support it. However, there are some changes in behavior of the UI
surface compared to Symbian^3. The UI surface is a special
surface onto which the Window Server renders CWindowGc
drawing.
The Window Server has a render stage framework, which supports customizable render stage plug-ins. These can be customized to perform transition effects (TFX).
Symbian^4 provides support for externally connected displays, such as TV-out, including High-Definition Multimedia Interface (HDMI) and composite video connectors, for which there are a range of resolutions that can change dynamically. Symbian^4 provides an optional feature that supports switching between resolutions at runtime and notifications to Window Server clients when there are changes to the resolution and connectedness.
Application developers use the client-side library to control windows in their applications and respond to key and pointer events.
Testers and application developers use the logging mechanism to log Window Server events when developing and testing their code.
Device creators can create render stage plug-ins.
Device creators use the wsini.ini file to configure the Window Server to suit the specific requirements of the particular device.