Location:
fbs.h
Link against: fbscli.lib
TBitmapUtil
Supported from 5.0
Provides fast read/write access to the image data of a bitmap.
Functionality includes getting and setting the individual pixels of a bitmap. Common to this is the concept of the current pixel position. This is held as member data and is changed by using various efficient functions. For example, incrementing the position’s x- or y co-ordinate is much quicker than setting a completely new position. This efficiency issue is important as these functions are used as part of the frequently used blitting DDA — used for creating stretched or compressed versions of bitmaps.
Due to the defragmentation process that is used to compress the FBSRV heap, bitmaps may be moved in memory at any time — including whilst the bitmaps’ contents are being manipulated. Therefore, operations to lock and unlock the heap — preventing and allowing the heap to be compressed — are provided. The use of these functions, surrounding any calls to the other member functions maximises the simplicity and efficiency of these functions.
Note that this class does not support bitmaps whose display mode is
EColor16M
. If the bitmap is EColor16M
, then its data
can be read/written directly, by calling
CFbsBitmap::DataAddress()
to get a pointer to the
data area.
Defined in TBitmapUtil
:
Begin()
, DecXPos()
, DecYPos()
, End()
, GetPixel()
, IncXPos()
, IncYPos()
, SetPixel()
, SetPos()
, TBitmapUtil()
TBitmapUtil(CFbsBitmap* aBitmap);
Constructs a TBitmapUtil
object for the specified
bitmap.
|
void Begin(const TPoint& aPosition);
Sets the current pixel position to the specified position and locks the heap.
This function must be called before using any of the other
functions provided by this class, otherwise damage to data may occur. It must
also be matched by a subsequent call to End()
.
|
|
void Begin(const TPoint& aPosition,const TBitmapUtil& aUtil);
Sets the current pixel position to the specified position when the heap is already locked.
The function assumes that the heap has already been locked by
the specified TBitMapUtil
object associated with another
bitmap.
|
|
void End();
Unlocks the heap.
There must be exactly one call to End()
for each
previous call to Begin()
for a given TBitmapUtil
object. Failure to call End()
may result in the device
locking.
TUint32 GetPixel() const;
Gets the value of the pixel at the current pixel position.
In normal usage, the value returned will immediately be used as
the parameter to a call to SetPixel()
. To remove the overhead of
constructing a TRgb
, the function uses a TUint32
rather than a TRgb
to hold an RGB value.
|
void SetPixel(TUint32 aValue);
Sets the value of the pixel at the current pixel position.
To remove the overhead of constructing a TRgb
, the
function uses a TUint32
rather than a TRgb
to hold an
RGB value.
|
void SetPixel(const TBitmapUtil& aSource);
Sets the value of the pixel at the current pixel position to
that returned by aSource.GetPixel()
.
|
void SetPos(const TPoint& aPosition);
Sets a new current pixel position.
|