DirectScreenAccess: Adding support for SE Satio and Vivaz
I got quite many complaints about gpsp crashing with Sony Ericsson Satio and Vivaz. I didn’t have any clue what’s wrong with gpsp, until I found this thread in the SE Support forums. http://developer.sonyericsson.com/community/thread/50103
It turns out that the Sony Ericsson Satio and Vivaz seems to have similar issues with the Blit as Samsung i8910 with a twist: The Sony Ericsson phones just crashes when creating a CDirectScreenBitmap in different size than (0,0,360,640). We are in luck here, since I already have a blit fix that I can re-used for SE phones too!
The SE support also says that the ScreenDevice->update() must be called before the screen is actually updated. Therefore we must add that into the blit method.
1
2
3
4
5
6
7
TAcceleratedBitmapInfo bitmapInfo;
iDSBitmap->BeginUpdate(bitmapInfo);
bitmapdata = (TUint8*) bitmapInfo.iAddress;
bitmapBlit( (TUint8*) g_screenptr, bitmapdata);
iDSBitmap->EndUpdate(iStatus);
SetActive();
iDirectScreenAccess->ScreenDevice()->Update(); <-- Added this line to make the drawing visible!
The update command is also required for Symbian^3 based devices, see the DSA Migration guide in forum.nokia. So this update might also give Symbian^3 support for the gpsp 🙂