亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dirscracceng.cpp

?? symbian平臺(tái)上如何在屏幕上快速的顯示圖片
?? CPP
字號(hào):
/*
* ============================================================================
*  Name     : CDirScrAccEng from DirScrAccEng.cpp
*  Part of  : DirScrAcc
*  Created  : 06/11/2003 by Forum Nokia
*  Description:
*     Engine for drawing using Direct Screen Access.
*  Version  :
*  Copyright: Nokia Corporation
* ============================================================================
*/

#include "DirScrAccEng.h"
#include "DirScrAccRenderer.h"

#include <eikenv.h>

// This number is for runnning in the device. Drawing would be too fast if the number were smaller.
// For the emulator this number is less relevant. Emulator knows only ticks that are 1/10 seconds. 
// Device ticks are 1/64 seconds.

const TInt KGenerationInterval = 10000;

_LIT(KDirScrAccTxt, "DirectScreenAccessDemo");

//
// class CDirScrAccEng
//
CDirScrAccEng::CDirScrAccEng(RWsSession& aClient, CWsScreenDevice& aScreenDevice, RWindow& aWindow, TBool aUseFrameBuffer)
: CTimer(CActive::EPriorityStandard),
	iClient(aClient),
	iScreenDevice(aScreenDevice),
	iWindow(aWindow),
    iDirectScreenAccess(0),
    iGc(0),
    iRegion(0),	
    iPosition(0,0),
    iDrawing(EFalse),
    iRenderer(0),	
    iScreenAddr(0),
    iOffScreenBmp(0),    
    iUseFrameBuffer(aUseFrameBuffer)
	{    
    iFlagRect.SetRect(iPosition, aWindow.Size());
    // calculate the (used) frame buffer size in bytes
    iFrameBufLen = iFlagRect.Width() * iFlagRect.Height() * 2;
	}

CDirScrAccEng* CDirScrAccEng::NewL(RWsSession& aClient, CWsScreenDevice& aScreenDevice, RWindow& aWindow, TBool aUseFrameBuffer)
    {
    CDirScrAccEng* self = new (ELeave) CDirScrAccEng(aClient, aScreenDevice, aWindow, aUseFrameBuffer);
    CleanupStack::PushL(self);
    self->ConstructL();
    CleanupStack::Pop(); // self;
    return self;
    }

CDirScrAccEng::~CDirScrAccEng()
	{
    if(IsActive())
	    Cancel();

	delete iDirectScreenAccess;	
    delete iRenderer;            
    delete iOffScreenBmp;    
	}

void CDirScrAccEng::ConstructL()
	{
	// contruct the timer
	CTimer::ConstructL();

	// Create the DSA object
	iDirectScreenAccess = CDirectScreenAccess::NewL(iClient, iScreenDevice, iWindow, *this);
	CActiveScheduler::Add(this);

    // create the offscreen bitmap
    iOffScreenBmp = new (ELeave) CFbsBitmap;
	iOffScreenBmp->Create(iScreenDevice.SizeInPixels(), EColor4K);

// for emulator, always use offscreen bitmap
#if defined(__WINS__)
    iUseFrameBuffer = EFalse;
#endif
    
    if(iUseFrameBuffer)        
        {
        // fetch screen buffer address
        TScreenInfoV01 screenInfo;
	    TPckg<TScreenInfoV01> sInfo(screenInfo);
	    UserSvr::ScreenInfo(sInfo);
         
        iScreenAddr = screenInfo.iScreenAddressValid ? (TUint8*)screenInfo.iScreenAddress : 0;
        User::LeaveIfNull(iScreenAddr);

        // skip the palette data in the beginning of frame buffer (16 entries in 12bit mode)
        iScreenAddr += 16 * 2;

        // initialise the raw redraw event (used when drawing directly to frame buffer)
        iRedraw.Set(TRawEvent::ERedraw);
        }

    // create our renderer
    iRenderer = CFlagRenderer::NewL(iFlagRect.Width(), iFlagRect.Height());
    
	}

// Start Drawing
void CDirScrAccEng::StartDrawingL()
	{
	if (iDrawing)
		User::Panic(KDirScrAccTxt, DirScrAccEngAlreadyStarted);
    
    // Initialise DSA

    // Trap the call to CDirectScreenAccess->StartL() to suppress system
    // error notes (e.g. active screen saver may cause problems)
	TRAPD(dsaErr, iDirectScreenAccess->StartL());
    if(dsaErr == KErrNone)
        {

	    // Get graphics context for it
	    iGc = iDirectScreenAccess->Gc();

	    // Get region that DSA can draw in
	    iRegion = iDirectScreenAccess->DrawingRegion();

	    // Set the display to clip to this region
	    iGc->SetClippingRegion(iRegion);

        iDrawing = ETrue;

        // request a timer event after a defined interval
        After(TTimeIntervalMicroSeconds32(KGenerationInterval));
        }
	}

// Stop Drawing
void CDirScrAccEng::StopDrawing()
	{
	if (!iDrawing)
		User::Panic(KDirScrAccTxt, DirScrAccEngAlreadyStopped);
	
	// Cancel timer and display
    // This is CActive::Cancel, which calls derived method DoCancel
	Cancel();
	iDrawing = EFalse;
	}
	
// Implement MDirectScreenAccess
void CDirScrAccEng::Restart(RDirectScreenAccess::TTerminationReasons /*aReason*/)
	{
	// Restart display
	// Note that this will result in the clipping region being updated
	// so that menus, overlaying dialogs, etc. will not be drawn over      
	StartDrawingL();    
	}

void CDirScrAccEng::AbortNow(RDirectScreenAccess::TTerminationReasons /*aReason*/)
	{
	// Cancel timer and display
	Cancel();
	iDrawing = EFalse;
	}

// Timer's RunL()
void CDirScrAccEng::RunL()
	{
	
    iRenderer->RenderNextFrameL((TUint8*)iOffScreenBmp->DataAddress());

    // blit the offscreen bitmap (if used) to screen
    if(!iUseFrameBuffer)
        {        
        iGc->BitBlt(iPosition, iOffScreenBmp, iFlagRect);
        // Force screen update: this is required for WINS, but may
	    // not be for all hardware. 
        // For Series 60 devices this is necessary, 
        // we can't access screen memory directly, 
        // rather we access a screen buffer.
        iDirectScreenAccess->ScreenDevice()->Update();
        }
    else
        {        
        // copy bitmap contents to frame buffer
        Mem::Copy(iScreenAddr, iOffScreenBmp->DataAddress(), iFrameBufLen);

        // Drawing to screen buffer (ScreenInfo) - force update
        // We do not use Graphics context, so we generate an event to get screen refreshed
        // As a side-effect, the backlight stays on        
        UserSvr::AddEvent(iRedraw);
        }        

	// Renew request
	After(TTimeIntervalMicroSeconds32(KGenerationInterval));

	}

// Timer's DoCancel()
void CDirScrAccEng::DoCancel()
	{
	// Cancel timer
	CTimer::DoCancel();

	// Cancel DSA
	iDirectScreenAccess->Cancel();    
	}

	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩制服丝袜av| 国产欧美日韩激情| 日韩av一区二区在线影视| 欧美日韩成人一区二区| 首页欧美精品中文字幕| 日韩精品专区在线| 粉嫩aⅴ一区二区三区四区五区| 欧美精品一区二区三区很污很色的 | 久久久欧美精品sm网站| 国产精品一区二区三区99| 中文字幕欧美区| 91视视频在线观看入口直接观看www | 一区二区三区在线视频观看58| 欧美在线免费观看亚洲| 日韩精品亚洲专区| 久久九九影视网| 一本一道久久a久久精品综合蜜臀| 亚洲国产色一区| 日韩一区二区麻豆国产| 高清国产一区二区三区| 一区二区高清在线| 精品久久久久av影院 | 国产精品九色蝌蚪自拍| 色综合久久久久网| 免费三级欧美电影| 最新久久zyz资源站| 欧美丝袜丝nylons| 韩国精品一区二区| 夜夜精品视频一区二区| 久久亚洲精品小早川怜子| 一本大道久久精品懂色aⅴ | 五月天亚洲婷婷| 国产精品麻豆网站| 日韩午夜在线观看视频| 色综合亚洲欧洲| 激情六月婷婷久久| 亚洲综合久久久久| 欧美国产欧美综合| 日韩免费在线观看| 91豆麻精品91久久久久久| 国产精品自拍在线| 日韩激情中文字幕| 亚洲六月丁香色婷婷综合久久| 欧美成人精品高清在线播放| 91成人免费网站| 国产成人超碰人人澡人人澡| 美女网站一区二区| 午夜精品一区二区三区三上悠亚| 国产日韩欧美综合在线| 日韩欧美精品在线视频| 在线精品国精品国产尤物884a | av电影天堂一区二区在线| 另类小说图片综合网| 亚洲va在线va天堂| 亚洲精品视频在线看| 国产亚洲精品资源在线26u| 制服丝袜中文字幕亚洲| 91成人在线观看喷潮| 97久久久精品综合88久久| 国产精品自产自拍| 经典三级一区二区| 麻豆91在线观看| 日本视频一区二区三区| 午夜精品久久久久久| 亚洲香肠在线观看| 亚洲二区在线视频| 亚洲午夜精品网| 亚洲精品一二三| 亚洲精品免费看| 亚洲精品自拍动漫在线| 日韩美女久久久| 亚洲黄色性网站| 一区二区三区欧美日| 一区二区三区欧美久久| 亚洲一二三四在线| 亚洲国产美国国产综合一区二区| 亚洲一区二区三区三| 亚洲国产视频直播| 性欧美大战久久久久久久久| 五月激情综合婷婷| 日韩福利视频导航| 久久草av在线| 国产一区二区免费在线| 国产91精品一区二区麻豆亚洲| 国产成人在线影院| 成人动漫av在线| 91官网在线观看| 制服丝袜一区二区三区| 精品福利一区二区三区| 国产欧美一区二区三区鸳鸯浴| 日本一区二区三区电影| 亚洲区小说区图片区qvod| 亚洲综合久久久| 免费在线观看一区| 国产成人一级电影| 一本到一区二区三区| 8x8x8国产精品| 日韩精品中文字幕一区| 国产精品三级视频| 亚洲国产一区二区在线播放| 欧美a一区二区| 国产美女精品在线| 91丨九色丨蝌蚪富婆spa| 欧美福利一区二区| 久久久精品欧美丰满| 亚洲欧美日韩电影| 麻豆一区二区99久久久久| 国产很黄免费观看久久| 日本韩国一区二区三区视频| 制服视频三区第一页精品| 欧美精品一区二区三区一线天视频| 欧美国产乱子伦 | 日本精品视频一区二区三区| 欧美一级在线视频| 国产色产综合产在线视频| 亚洲制服欧美中文字幕中文字幕| 美女免费视频一区| 一本色道综合亚洲| 久久亚洲精精品中文字幕早川悠里| 最新欧美精品一区二区三区| 蜜桃视频一区二区三区在线观看 | 国产麻豆精品久久一二三| 色噜噜狠狠色综合中国| 日韩欧美一二三| 一区二区三区精品| 国产激情视频一区二区三区欧美| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日韩一区二区麻豆国产| 亚洲综合色噜噜狠狠| 成人性生交大片免费看中文网站| 欧美精品高清视频| 国产精品二区一区二区aⅴ污介绍| 日日夜夜精品视频天天综合网| 不卡的av在线播放| 久久久青草青青国产亚洲免观| 亚洲一区二区免费视频| 成人污视频在线观看| 精品国产一区二区精华| 午夜国产精品一区| 色94色欧美sute亚洲线路一ni| 久久久久88色偷偷免费| 免费高清在线视频一区·| 色8久久精品久久久久久蜜| 国产精品欧美一区二区三区| 麻豆精品一区二区综合av| 欧美日韩精品三区| 夜色激情一区二区| 99精品桃花视频在线观看| 久久久噜噜噜久久中文字幕色伊伊| 视频一区二区三区在线| 欧美午夜免费电影| 亚洲欧美一区二区三区国产精品 | 国产成人免费在线| 精品久久久久久久久久久院品网| 亚州成人在线电影| 欧洲精品视频在线观看| 亚洲免费电影在线| 99精品视频在线观看免费| 国产精品网站在线| 成人国产亚洲欧美成人综合网| 久久久综合九色合综国产精品| 秋霞午夜av一区二区三区| 69成人精品免费视频| 日韩激情在线观看| 日韩欧美久久一区| 精品无码三级在线观看视频| 欧美一区二区三区免费大片| 蜜桃一区二区三区四区| 欧美电视剧免费观看| 韩国av一区二区三区四区| 精品粉嫩aⅴ一区二区三区四区| 狠狠色综合播放一区二区| 久久久久久**毛片大全| 高清不卡一二三区| 国产精品电影一区二区| 一本色道久久综合狠狠躁的推荐 | 麻豆精品在线看| 精品国产一区二区三区久久久蜜月| 看电影不卡的网站| 国产亚洲欧美在线| 大陆成人av片| 亚洲三级电影网站| 欧美人狂配大交3d怪物一区| 人人狠狠综合久久亚洲| 久久久.com| 99久久精品免费看国产免费软件| 亚洲欧美区自拍先锋| 欧美精品 国产精品| 免费日本视频一区| 国产精品无码永久免费888| 在线看国产一区二区| 蜜桃av一区二区| 国产亚洲精品bt天堂精选| 99精品桃花视频在线观看| 天天做天天摸天天爽国产一区| 日韩女优av电影在线观看| 成人免费av资源| 日韩精品亚洲专区| 国产亚洲一二三区| 欧美日韩三级在线|