www.pudn.com > 2DGameAnimS60C_v1_0.zip > DoubleBufferedArea.cpp


//////////////////////////////////////////////////////////////////////// 
// 
// DoubleBufferedArea.cpp 
// 
// Copyright (c) 2003 Nokia Mobile Phones Ltd.  All rights reserved. 
// 
//////////////////////////////////////////////////////////////////////// 
 
#include "DoubleBufferedArea.h" 
 
 
// System includes 
#include      // CFbsBitmapDevice 
#include      // CFbsBitGc 
#include         // CFbsBitmap 
 
 
CDoubleBufferedArea* CDoubleBufferedArea::NewL(TSize aSize, TDisplayMode aDisplayMode) 
	{ 
	CDoubleBufferedArea* self = new (ELeave) CDoubleBufferedArea(); 
	CleanupStack::PushL(self); 
	self->ConstructL(aSize, aDisplayMode); 
	CleanupStack::Pop(); 
	return self; 
	} 
 
CDoubleBufferedArea* CDoubleBufferedArea::NewLC(TSize aSize, TDisplayMode aDisplayMode) 
	{ 
	CDoubleBufferedArea* self = new (ELeave) CDoubleBufferedArea(); 
	CleanupStack::PushL(self); 
	self->ConstructL(aSize, aDisplayMode); 
	return self; 
	} 
 
CDoubleBufferedArea::CDoubleBufferedArea() 
	{ 
	} 
 
 
CDoubleBufferedArea::~CDoubleBufferedArea() 
	{ 
	delete iAreaBitmap; 
    delete iAreaBitmapDevice; 
    delete iAreaBitmapContext; 
	} 
 
void CDoubleBufferedArea::ConstructL(TSize aSize, TDisplayMode aDisplayMode) 
	{ 
	//constructing offscreen play area: 
	iAreaBitmap = new (ELeave) CFbsBitmap(); 
    iAreaBitmap->Create(aSize, aDisplayMode); 
    iAreaBitmapDevice = CFbsBitmapDevice::NewL(iAreaBitmap); 
    iAreaBitmapDevice->CreateContext(iAreaBitmapContext); 
	} 
 
CFbsBitGc& CDoubleBufferedArea::GetDoubleBufferedAreaContext() const 
    { 
     return *iAreaBitmapContext; 
    } 
 
const CFbsBitmap& CDoubleBufferedArea::GetDoubleBufferedAreaBitmap() const 
	{ 
	return *iAreaBitmap; 
	} 
 
void CDoubleBufferedArea::ClearBufferedArea() 
	{ 
	iAreaBitmapContext->Clear(); 
	}