Graphics Resource Services Collection Overview

This topic provides an introduction to the Graphics Resource Services collection.

Target audience: Device creators.

Note: The Graphics Resource component is deprecated in Symbian^3 and will be removed in Symbian^4 (S^4). However, a new Graphics Resource Interface component is planned for S^4. This new component will provide a similar but reduced API that is optimized for sharing images across processes.

In ScreenPlay, a graphics resource is a data buffer that is suitable for use by graphics acceleration hardware. The requirement for the data buffer to be capable of hardware acceleration imposes certain restrictions on the way that it is implemented and used. An image is a particular type of data buffer—a two-dimensional (2D) pixel buffer. Symbian documentation has traditionally called 2D pixel buffers bitmaps. However, they are called images in this context in order to avoid confusion with the existing CFbsBitmap class.

Another important concept when working with the Graphics Resource components is rendering pipeline. This is a set of primitives that perform rendering and usually (but not necessarily) implement a pipeline model. The Graphics Resource components do not define the rendering pipeline. However, when you create a graphics resource, particularly an image, you need to specify its usage in terms of the rendering pipeline it is to be used with. Typical examples of rendering pipelines are DirectGDI, OpenVG and OpenGLES.


The Graphics Resource collection provides the following functionality:

  • The creation and sharing of hardware acceleration-capable two-dimensional (2D) pixel buffers

    The Graphics Resource collection provides functions to create 2D pixel buffers of fixed size in such a way that they can be shared between several user-side processes and the device drivers of the graphics acceleration hardware if present.

    As mentioned above these 2D pixel buffers are called images. They are encapsulated by the RSgImage class.

  • Interoperability with the composition components

    The Graphics Resource collection provides functions to create surfaces that can be used by the composition components. A surface is identified by a unique ID called the surface ID.

    Interoperability with the composition components is encapsulated by the RSgImageCollection class. This class enables the retrieval of the surface ID for passing in calls to the Surface Manager and Surface Update Server. RSgImageCollection provides an alternative view of the surface as a collection of images that are accessible through RSgImage handles.

  • Support for new types of graphics resources

    The Graphics Resource collection also provides an abstraction so that device creators can add new types of graphics resources—for example, for handling vector data.

    Symbian provides the RSgDrawable class for this purpose. Symbian provides only one concrete type of graphics resource—the image (2D pixel buffer). However, device creators can create additional types of resources.

  • Extensibility and adaptability

    The Graphics Resource collection consists of a thin generic layer and an adaptation layer. Symbian provides a product-quality reference implementation of the adaptation layer. Device creators can extend, modify or replace this implementation to suit specific graphics hardware.

In addition, the Graphics Resource collection provides a number of image compatibility guarantees.

Note: Although the DirectGDI component depends on the Graphics Resource components, the Graphics Resource components do not depend on DirectGDI. The Graphics Resource components can be used in isolation from DirectGDI—for example, by a render stage that does not use DirectGDI.


Graphics Resource collection consists of the following components: