diff -r 000000000000 -r 5d03bc08d59c windowing/windowserver/stdgraphic/wsgraphicdrawerngacontext.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/windowing/windowserver/stdgraphic/wsgraphicdrawerngacontext.cpp Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,114 @@ +// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#define SYMBIAN_GRAPHICS_GCE + +#include "wsgraphicdrawercontext.h" +#include "stdgraphictestdrawer.h" +#include + +MWsGraphicDrawerContext* CWsGraphicDrawerNgaContext::NewL() + { + return new(ELeave) CWsGraphicDrawerNgaContext(); + } + +void CWsGraphicDrawerNgaContext::Destroy() + { + delete this; + } + +MWsClient& CWsGraphicDrawerNgaContext::Client(MWsGc& aGc) + { + return aGc.Client(); + } + +MWsScreen& CWsGraphicDrawerNgaContext::Screen(MWsGc& aGc) + { + return aGc.Screen(); + } + +const TTime& CWsGraphicDrawerNgaContext::Now(MWsGc& aGc) const + { + return aGc.Now(); + } + +void CWsGraphicDrawerNgaContext::ScheduleAnimation(MWsGc& aGc, const TRect& aRect,const TTimeIntervalMicroSeconds& aFromNow) + { + aGc.ScheduleAnimation(aRect, aFromNow); + } + +void CWsGraphicDrawerNgaContext::ScheduleAnimation(MWsGc& aGc, const TRect& aRect,const TTimeIntervalMicroSeconds& aFromNow,const TTimeIntervalMicroSeconds& aFreq,const TTimeIntervalMicroSeconds& aStop) + { + aGc.ScheduleAnimation(aRect, aFromNow, aFreq, aStop); + } + +void CWsGraphicDrawerNgaContext::SetGcOrigin(MWsGc& aGc, const TPoint& aOrigin) + { + aGc.SetGcOrigin(aOrigin); + } + +TInt CWsGraphicDrawerNgaContext::Push(MWsGc& aGc) const + { + MWsGraphicsContext* context = aGc.ObjectInterface(); + if (context) + { + return context->Push(); + } + return KErrNotSupported; + } + +void CWsGraphicDrawerNgaContext::Pop(MWsGc& aGc) const + { + MWsGraphicsContext* context = aGc.ObjectInterface(); + if (context) + { + context->Pop(); + } + } + +void CWsGraphicDrawerNgaContext::DrawBitmap(MWsGc& aGc, const TPoint& aDestPos, const CFbsBitmap* aSourceBitmap, const TRect& aSourceRect, const CFbsBitmap* aMaskBitmap) const + { + MWsGraphicsContext* context = aGc.ObjectInterface(); + if (context) + { + if (aMaskBitmap) + { + context->BitBltMasked(aDestPos, *aSourceBitmap, aSourceRect, *aMaskBitmap, EFalse); + } + else + { + context->BitBlt(aDestPos, *aSourceBitmap, aSourceRect); + } + } + } + +void CWsGraphicDrawerNgaContext::DrawFrameRate(MWsGc& aGc, const TRect& aRect, const CFrameRate& aFps) const + { + MWsGraphicsContext* context = aGc.ObjectInterface(); + if (context) + { + context->SetDrawMode(MWsGraphicsContext::EDrawModePEN); + context->SetPenStyle(MWsGraphicsContext::ENullPen); + context->SetBrushStyle(MWsGraphicsContext::ENullBrush); + + if ((aFps.CountSamples() > 1) && context->HasFont()) + { + TBuf<20> buf; + buf.AppendNum(aFps.Fps()); + context->SetPenColor(KRgbRed); + context->DrawText(buf,NULL,TPoint(aRect.iTl.iX,aRect.iBr.iY)); + } + } + }