diff -r 48780e181b38 -r 578be2adaf3e Symbian3/PDK/Source/GUID-E6E6A439-B3CC-5FEA-9148-2DB5F37003F2.dita --- a/Symbian3/PDK/Source/GUID-E6E6A439-B3CC-5FEA-9148-2DB5F37003F2.dita Tue Jul 20 12:00:49 2010 +0100 +++ b/Symbian3/PDK/Source/GUID-E6E6A439-B3CC-5FEA-9148-2DB5F37003F2.dita Fri Aug 13 16:47:46 2010 +0100 @@ -23,7 +23,7 @@ EndBitmap()
If the extended bitmap rasterizer DLL has a cache of previously rasterized extended bitmaps, calls to
An extended bitmap rasterizer DLL cache contains the previously rasterized content for the most recently used extended bitmaps. Typically the extended bitmap rasterizer DLL adds new bitmaps to the cache when
It is possible for an extended bitmap to be deleted before its cached information is deleted from the cache. It is therefore important that the cache does not store pointers to the data that was used to create the pre-rasterized content.
There are two approaches that can be used to manage the cache:
Remove the oldest items when a maximum cache size is reached.
Associate the extended bitmap rasterizer DLL with a
It is recommended that you use both mechanisms in order to optimize memory usage. The example extended bitmap rasterizer DLL does this. It maintains a list of recently used bitmaps, with the most recently used one being first in the list. If the size of the cache exceeds the set maximum, the oldest bitmaps are removed until the size is within limits again. The example extended bitmap rasterizer DLL also uses a
Memory
The example extended bitmap rasterizer DLL allocates and frees memory during
A possible solution is to pre-allocate a memory pool from which the extended bitmap rasterizer DLL can use areas of memory. This reduces the number of allocations. However, this solution may be unsuitable for some scenarios, such as when memory usage is more important than performance.
The Symbian platform provides a simple example extended bitmap rasterizer, which you can use as a reference when you are creating your own. The source code is located in the
This extended bitmap rasterizer DLL handles a tricolor flag. The data comprises the flag's three colors and the direction (horizontal or vertical) of the stripes as shown in the following picture.
When
Calls to
Calling
Because an extended bitmap rasterizer DLL is optional, there is a stub implementation for platform security reasons. When a functional extended bitmap rasterizer DLL is not present, the stub implementation is compiled into a DLL and is installed in the ROM in order to prevent a SIS file installing a rogue DLL with the same name.
The MMP file
The DLL must have the name
Use UIDs 0x1000008D (which indicates a static interface DLL) and 0x10285EAE (which is a unique identifier that indicates that this is an extended bitmap rasterizer DLL).
The DLL must have all capabilities except TCB (Trusted Computing Base).
Use the
Here is a snippet from the stub implementation's MMP file:
When
Calls to
Calling
Because an extended bitmap rasterizer DLL is optional, there is a stub implementation for platform security reasons. When a functional extended bitmap rasterizer DLL is not present, the stub implementation is compiled into a DLL and is installed in the ROM in order to prevent a SIS file installing a rogue DLL with the same name.
The MMP file
The DLL must have the name
Use UIDs 0x1000008D (which indicates a static interface DLL) and 0x10285EAE (which is a unique identifier that indicates that this is an extended bitmap rasterizer DLL).
The DLL must have all capabilities except TCB (Trusted Computing Base).
Use the
Here is a snippet from the stub implementation's MMP file: