COpenFontRasterizer Class Reference

class COpenFontRasterizer : public CBase

The Open Font rasterizer plug-in Interface Definition class.

This interface allows the implementation of an Open Font rasterizer plug-in, which can then be dynamically loaded at run time by the ECOM plug-in framework. The plug-in implementation is instantiated by calling NewL(), passing the implementation UID so that ECOM can instantiate the correct implementation.

The rasterizer interface declares a single pure virtual functions, which the plug-in derived from this interface must implement. The function reads font files, and creates a COpenFontFile object if the font file is of the right type.

Writing derived classes:

Open font rasterizers should derive from this class and implement the NewFontFileL() function.

Derived classes should also define the factory function. It is a static function which takes no arguments. It creates a COpenFontRasterizer derived object on the heap, and returns it to the caller. This factory function, together with the implementation UID will form the TImplementationProxy used by the ECOM framework to instatiate the plug-in.

The rasterizer class may also need to store an 'engine context'. This is an object derived from COpenFontRasterizerContext, which provides functions that make it easier to write the glyph bitmap during rasterization.

Inherits from

Constructor & Destructor Documentation

~COpenFontRasterizer()

~COpenFontRasterizer()[inline, virtual]

Default destructor

Member Functions Documentation

ExtendedInterface(TUid, TAny *&)

IMPORT_C voidExtendedInterface(TUidaUid,
TAny *&aParam
)[virtual]

Parameters

TUid aUid
TAny *& aParam

NewFontFileL(TInt, const TDesC &, RFs &)

COpenFontFile *NewFontFileL(TIntaUid,
const TDesC &aFileName,
RFs &aFileSession
)[pure virtual]

Creates a COpenFontFile derived object for loading font files in the new format.

This function is called by the framework during font and bitmap server startup. It creates a font file object for font files in the \resource\fonts directory on all drives, using the default search path. The first font of a given name overrides subsequent ones. The directory search path is soft to hard: Y:, X:, W:, ..., C:, B:, A:, Z:. Files may also be added dynamically after startup using CWsScreenDevice::AddFile(), which indirectly calls this function.

Implementations of this function should examine the file aFileName, and if it is of the correct type attempt to create a COpenFontFile derived object to load it. The caller is responsible for deleting the object. The function must return NULL if it cannot recognise the file, and it may also leave if there is an error.

A pointer to a new COpenFontFile derived object, or NULL if the file type is not recognised.

CWsScreenDevice::AddFile()

Parameters

TInt aUidAn ID to be used for the file. UIDs are required by the font framework, so the font store allocates them for non Symbian OS-native font files. This ID persists until the font is unloaded, e.g. if the device is rebooted.
const TDesC & aFileNameThe full path and filename of the file from which the COpenFontFile object is created, if the file is the correct type.
RFs & aFileSessionThe file session owned by the Font and Bitmap server. This file session should be used for any file access. If COpenFontFile objects need to keep files open, aFileSession should be stored in a place that is accessible to them.

NewL(TUid)

COpenFontRasterizer *NewL(TUidaInterfaceImplUid)[static, inline]

Uses ECOM plug-in framework to instantiate the Open Font rasterizer interface implementation given its implementation UID.

COpenFontRasterizer* A pointer to a COpenFontRasterizer object.

Parameters

TUid aInterfaceImplUidThe UID of the interface implementation required

Member Data Documentation

TUid iDtor_ID_Key

TUid iDtor_ID_Key[private]