applications/Symbian_MiniGUI_TestApp/grid.cpp
author johnathan.white@2718R8BGH51.accenture.com
Mon, 08 Mar 2010 18:45:03 +0000
changeset 46 b6935a90ca64
child 67 57a5a30dc911
permissions -rw-r--r--
Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer Add example minigui application with hooks to profiler (which writes results to S:\). Modified NGA framebuffer to run its own dfc queue at high priority
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     1
#include <w32std.h> 
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     2
#include "profiler.h"
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     3
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     4
const TSize KSize(64,60);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     5
const TInt KRow = 4;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     6
const TInt KCol = 5; 
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     7
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     8
void MainL()	
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
     9
	{	
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    10
	RWsSession ws;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    11
	ws.Connect();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    12
 	CWsScreenDevice* scr = new(ELeave) CWsScreenDevice(ws);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    13
	scr->Construct();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    14
 	CWindowGc* gc = new(ELeave) CWindowGc(scr);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    15
	gc->Construct();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    16
 	RWindowGroup grp(ws);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    17
	grp.Construct(0xc0decafe, ETrue);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    18
 	RWindow win(ws);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    19
	win.Construct(grp, 0xbeefcafe);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    20
	win.SetExtent(TPoint(20,160), TSize(320,240));
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    21
	win.Activate();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    22
 	win.Invalidate();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    23
	win.BeginRedraw();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    24
	gc->Activate(win);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    25
 	gc->SetPenStyle(CGraphicsContext::ENullPen);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    26
	gc->SetBrushStyle(CGraphicsContext::ESolidBrush);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    27
 	TBool color = EFalse;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    28
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    29
if (Profiler::Start() == KErrNotFound)
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    30
	{
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    31
	_LIT(KProfiler,"profiler");
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    32
	_LIT(KStart,"start -noui -drive=S");
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    33
	RProcess p;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    34
	if (p.Create(KProfiler,KStart) == KErrNone)
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    35
		{
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    36
		p.Resume();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    37
		p.Close();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    38
		}
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    39
	}
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    40
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    41
	for (TInt col=0; col<KCol; ++col)
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    42
		{
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    43
		color = !color;		
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    44
		for (TInt row=0; row<KRow; ++row)
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    45
			{
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    46
			TRect rect;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    47
			rect.iTl.iX = col * KSize.iWidth;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    48
			rect.iTl.iY = row * KSize.iHeight;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    49
			rect.SetSize(KSize);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    50
			color = !color;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    51
			gc->SetBrushColor(color? KRgbGray : KRgbBlack);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    52
			gc->DrawRect(rect);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    53
			}
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    54
	}
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    55
	gc->Deactivate();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    56
	win.EndRedraw();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    57
	ws.Flush();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    58
 	User::After(3000000);
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    59
 	win.Close();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    60
	grp.Close();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    61
	delete gc;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    62
	delete scr;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    63
	ws.Close();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    64
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    65
	Profiler::Stop();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    66
	Profiler::Close();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    67
	Profiler::Unload();
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    68
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    69
	} 
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    70
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    71
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    72
GLDEF_C TInt E32Main()	
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    73
{	
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    74
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    75
	CTrapCleanup* tc = CTrapCleanup::New();	
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    76
	if (!tc)
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    77
		{		
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    78
		return KErrNoMemory;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    79
		}
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    80
	TRAPD(err, MainL());
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    81
	delete tc;
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    82
 	return err;	
b6935a90ca64 Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
johnathan.white@2718R8BGH51.accenture.com
parents:
diff changeset
    83
}