⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dirscracceng.h

📁 symbian平台上如何在屏幕上快速的显示图片
💻 H
字号:
/*
* ============================================================================
*  Name     : CDirScrAccEng from DirScrAccEng.h
*  Part of  : DirScrAcc
*  Created  : 06/11/2003 by Forum Nokia
*  Description:
*     Engine for drawing using Direct Screen Access.
*  Version  :
*  Copyright: Nokia Corporation
* ============================================================================
*/

#ifndef DIRSCRACCENG_H
#define DIRSCRACCENG_H

// INCLUDES
#include <w32std.h>
   
// FORWARD DECLARATIONS

class CFlagRenderer;

// ENUMERATIONS

enum DirScrAccEngPanics
    {
    DirScrAccEngAlreadyStarted = 1,
	DirScrAccEngAlreadyStopped
    };

// CLASS DECLARATION


class CDirScrAccEng : public CTimer,	public MDirectScreenAccess	
	{

public:

	// Construction & destruction
	static CDirScrAccEng* NewL 
		(
		RWsSession& aClient, 
		CWsScreenDevice& aScreenDevice, 
		RWindow& aWindow,
        TBool aUseFrameBuffer=EFalse	
		);

	~CDirScrAccEng();	

public:

	// Start and stop the drawing
	void StartDrawingL();
	void StopDrawing();

	// Are we drawing
	inline TBool Drawing(){return iDrawing;}

private:

	// Implement MDirectScreenAccess 
	void Restart(RDirectScreenAccess::TTerminationReasons aReason);
	void AbortNow(RDirectScreenAccess::TTerminationReasons aReason);

private:

	// Implement CTimer
	void RunL();
	void DoCancel();

private:

    // private constructors - use NewL to construct a CDirScrAccEng!
    CDirScrAccEng
        (
		RWsSession& aClient, 
		CWsScreenDevice& aScreenDevice, 
		RWindow& aWindow,
        TBool aUseFrameBuffer
        );

    void ConstructL();	

private:

	// Window server handling
	RWsSession& iClient;
	CWsScreenDevice& iScreenDevice;
	RWindow& iWindow;

	// Direct Screen Access
	CDirectScreenAccess* iDirectScreenAccess;
	CFbsBitGc* iGc;
	RRegion* iRegion;

	// Positional plus directional information
	TPoint iPosition;	

	// Are we drawing
	TBool iDrawing;

    CFlagRenderer* iRenderer;   // our renderer object
    TUint8* iScreenAddr;        // frame buffer address
    CFbsBitmap* iOffScreenBmp;  // offscreen bitmap for double-buffered drawing
    TRect iFlagRect;
    TInt  iFrameBufLen;         // length of the frame buffer in bytes

    TBool iUseFrameBuffer;
    
    TRawEvent iRedraw;	        // raw event for forcing the update of screen 
	};

#endif

// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -