Post

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 🙂

This post is licensed under CC BY 4.0 by the author.