Window Server Plugins Component Overview

The Window Server Plugins component provides render stage plug-ins for use in ScreenPlay. These reproduce the rendering behavior in Symbian OS v9.4. Device creators can use the supplied render stage plug-ins or use them as a reference when developing their own.

Variant: ScreenPlay. Target audience: Device creators.

The Window Server Plugins component supplies two render stages, known as the Flicker Buffer and Display render stages. The following diagram shows their standard configuration.

Figure 1. Standard render stage configuration

The render stage API has Begin() and End() functions, which bracket batches of draw operations.

The Display render stage simply renders the draw operations it receives straight into the UI surface.

The Flicker Buffer renders the draw operations it receives into an offscreen surface. When it receives the End() call, it calls the Display render stage, but passes in only a single draw operation—a blit of the offscreen surface into the UI surface. As its name suggests, the purpose of the Flicker Buffer render stage is to reduce flicker. Without the Flicker Buffer render stage, each draw operation from the redraw store playback would be rendered straight into the UI surface.

For example, suppose that the redraw store playback consists of two draw operations—a blit of a skin bitmap and some text drawing over the top of it. Without the Flicker Buffer, the end user would first see the skin bitmap appear and would then see the text drawn over the top. With the Flicker Buffer render stage, the skin and the text appear at once.

These render stages also implement the features required for dynamic resolution switching. For example, they allow virtual resolutions that are half the real resolutions, if configured to do so in the wsini.ini file.