The Non-ScreenPlay Graphics Architecture

ScreenPlay provides improved support for graphics hardware
acceleration and some other new features. However, it is possible
to use the Symbian platform without enabling ScreenPlay. This is called
the non-ScreenPlay variant (sometimes referred to as the non-NGA variant). This topic provides an introduction to the graphics architecture
when ScreenPlay is not enabled.

The following diagram shows the non-ScreenPlay architecture. It
includes the components in the Graphics package and some closely related
components in other packages.

Figure: The Symbian non-ScreenPlay graphics architecture

The software model is as follows:

The Hardware
Adaptation Layer (HAL) consists of the frame buffer and basic attributes.
All processes have equal access to the frame buffer and can both read
and write to it.

The Screen Driver
provides simple pixel, scan-line and bitmap operations. The Screen
Driver has the same interface for both bitmaps and the frame buffer.
Hardware manufacturers can adapt the Screen Driver to suit the available
hardware.

The BitGDI component
provides support for higher-level geometric primitives and text. The
BitGDI component is implemented in terms of Screen Driver operations.
All BitGDI rendering operations are synchronous.

The Window Server
multiplexes access to the screen and provides a BitGDI-like interface.

The Window Server
provides Direct Screen Access (DSA) support for applications that
require high frame rates (such as video and games) to bypass the Window
Server and write to the frame buffer directly. However, some interaction
with the Window Server is needed to prevent the application from drawing
over other application's data.

In addition, the non-ScreenPlay architecture provides support for
EGL, OpenGL and OpenVG.

The following diagram shows the rendering stack in the non-ScreenPlay
variant.

Figure: The rendering stack in the non-ScreenPlay variant

Although DSA provides a solution for applications that require
high frame rates, the non-ScreenPlay architecture has limitations
when used on graphics accelerated hardware and non-uniform memory
models. The architecture may require the copying of buffers between
CPU and GPU memory as shown in the following diagram. ScreenPlay provides
a solution that requires less copying of buffers in this type of use
case.