Archived:Documentation change and binary incompatibility issue with TAcceleratedBitmapInfo.iPixelShift (Known Issue)
TAcceleratedBitmapInfo.iPixelShift has been incorrectly documented in S60 3rd Edition MR and FP1 SDKs as:
"The number of bits needed to represent one pixel in the bitmap."
However, the correct definition of TAcceleratedBitmapInfo.iPixelShift should be:
"The shift required to obtain the number of bits needed to represent one pixel in the bitmap. The number of bits per pixel is calculated as 1 << iPixelShift"
Some S60 3rd Edition devices have been noticed to be using components which still conform to the erroneous definition mentioned above. The erroneous implementation returns 32 as TAcceleratedBitmapInfo.iPixelShift, whereas the correct value should be 5.
Applications relying on the incorrect return value may not work correctly with the new implementation existing in some S60 3rd Edition devices.
At least the following devices are affected by the incorrect scheme (TAcceleratedBitmapInfo.iPixelShift returns 32):
- Nokia 3250
- Nokia E60
- Nokia E70
- Nokia N80
- Nokia N75
Whereas these devices have been confirmed to use the correct scheme (TAcceleratedBitmapInfo.iPixelShift returns 5):
- Nokia N95
Note: This behaviour may change when a device is updated with a new software version. Applications using TAcceleratedBitmapInfo.iPixelShift value should accommodate to both situations.