Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.

Archived:Accessing display memory with UserSvr::ScreenInfo() is deprecated from S60 3rd Edition onwards (Known Issue)

From Wiki
Jump to: navigation, search

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

UserSvr::ScreenInfo() provides an address to the LCD display frame buffer. However, using this method of drawing directly to the screen does not work properly on S60 3rd Edition devices, and is considered as deprecated.

Article Metadata
Platform(s): S60 3rd Edition
S60 3rd Edition, FP1
S60 3rd Edition FP1
S60 3rd Edition (initial release)
Created: User:Technical writer 1 (30 Aug 2007)
Last edited: hamishwillee (15 Jun 2012)


The address TScreenInfoV01::iScreenAddress, obtained by calling the UserSvr::ScreenInfo() function, can be used for drawing directly to the frame buffer of a display. After modifying the frame buffer, the display still needs to be forced to update itself.

Prior to S60 3rd Edition, this could be done by generating a redraw event:

TRawEvent redraw;
redraw.Set( TRawEvent::ERedraw );
UserSvr::AddEvent( redraw );

On S60 3rd Edition devices this does not have any immediate effect; the screen is updated only after notifying the screen device about the out of date region(s).


Instead of retrieving the frame buffer address with UserSvr::ScreenInfo(), developers should start using CDirectScreenBitmap class for direct screen access. For more information, see the document S60 Platform: Scalable Screen-Drawing How-To.

As a workaround solution, it is still possible to use the old drawing method and force the screen to update itself by specifying the out of date region with

void CFbsScreenDevice::Update( const TRegion &aRegion );
This page was last modified on 15 June 2012, at 06:28.
37 page views in the last 30 days.