This page was last modified 05:50, 7 July 2007.
使用UserSvr::ScreenInfo()获取显示内存的方法在S60第三版中已经废弃
From Forum Nokia Wiki
- 设备, 软件 版本:
S60 3rd Edition
S60 3rd Edition, FP1
Contents |
概述
UserSvr::ScreenInfo()提供了地址访问LCD显示帧缓冲。 但使用这个方法来直接绘制屏幕在S60第三版设备上已经不再适用了,可以认为是被废弃了。
详细描述
通过调用UserSvr::ScreenInfo()获得TScreenInfoV01::iScreenAddress地址,可以直接在显示器的帧缓冲进行绘制,在修改完帧缓冲后,显示器需要强制来更新一下。
在S60第三版之前,我们可以通过如下方式进行重绘:
TRawEvent redraw; redraw.Set( TRawEvent::ERedraw ); UserSvr::AddEvent( redraw );
在S60第三版上,这个方法就无法立即生效了。屏幕只在街道数据超过范围的通知时才被更新。
解决方案
开发者可以使用CDirectScreenBitmap类进行屏幕直接访问,从而取代通过UserSvr::ScreenInfo()来获取帧缓冲的方法。要获取更多信息,可以参考文档
S60 Platform: Scalable Screen-Drawing How-To
另一种解决方案是,仍然使用老的绘制方法,并通过指定数据超过范围以强制更新屏幕
void CFbsScreenDevice::Update( const TRegion &aRegion );
参考链接
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| fast pixel access to frame buffer ? | rs_chikin | General Symbian C++ | 1 | 2003-10-22 15:42 |
| DirectDraw Nokia 9210 | Nokia_Archive | General Symbian C++ | 1 | 2002-06-02 04:25 |
| slow update, while blitting!!! | rs_chikin | General Symbian C++ | 5 | 2003-04-25 11:51 |
| Direct Screen Access | General Symbian C++ | 1 | 2003-02-26 19:27 | |
| linear framebuffer | artblanc | General Symbian C++ | 5 | 2003-06-25 10:42 |
