This topic provides an introduction to the Graphics Resource Services collection.
Target audience: Device creators.
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:
Graphics Resource Component. This is the generic layer.
Graphics Resource Adaptation component. This is the adaptation layer, which device creators can extend, modify or replace.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.