Symbian编程总结-图形图像篇-直接屏幕访问
本文章由楊芹勍原創,如需轉摘請注明出處。謝謝!
在Symbian OS中繪制圖形減少閃爍的方法有兩種:
CDirectScreenAccess類在SDK種的解釋如下:
Direct screen access is a way of drawing to the screen without using the window server. As this avoids client-server communication, it is much faster, and may be useful for games and video. Note that some interaction with the window server is needed in order to prevent the application from drawing over other application's data.
此外,使用CDirectScreenAccess還可以截獲系統的通知消息(如菜單彈出、電話撥入、信息收到等)的對話框彈出事件,從而避免不必要的刷新工作。
一、CDirectScreenAccess的簡單使用
CDirectScreenAccess使用起來非常簡單,下面的幾格步驟將介紹CDirectScreenAccess的使用方法:
void CTestDirectDrawAppView::DrawGraphics()
??? {
??? CFbsBitGc* gc = iDSA->Gc();
??? TRgb colorRed= AKN_LAF_COLOR(35);
??? gc->SetPenColor(colorRed);
??? gc->DrawRect(TRect(0, 0, 100, 100));
??? iDSA->ScreenDevice()->Update();
??? }
CEikonEnv* env = CEikonEnv::Static();
iDSA = CDirectScreenAccess::NewL(env->WsSession(), *(env->ScreenDevice()), this->Window(), *this);
iDSA->StartL();
DrawGraphics();
void Restart(RDirectScreenAccess::TTerminationReasons aReason);
void AbortNow(RDirectScreenAccess::TTerminationReasons aReason);
實現如下:
void CTestDirectDrawAppView::Restart(RDirectScreenAccess::TTerminationReasons aReason)
??? {
??? iDSA->StartL();
??? DrawGraphics();
??? }
void CTestDirectDrawAppView::AbortNow(RDirectScreenAccess::TTerminationReasons aReason)
??? {
??? iDSA->Cancel();
??? }
點擊此處下載源代碼
?
二、分析實現過程
1、普通的繪制過程
2、當有系統對話框通知時的繪制過程
轉載于:https://www.cnblogs.com/felixYeou/archive/2008/11/11/1331052.html
總結
以上是生活随笔為你收集整理的Symbian编程总结-图形图像篇-直接屏幕访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flavr—超级漂亮的jQuery扁平弹
- 下一篇: urlrewrite 保持 postur