graphicsdeviceinterface/directgdiadaptation/swsrc/swdirectgdiengine.cpp
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/directgdiadaptation/swsrc/swdirectgdiengine.cpp	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,86 @@
+// Copyright (c) 2007-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:
+//
+
+#include "swdirectgdiengine.h"
+#include <bitdraworigin.h>
+#include <bitdrawinterfaceid.h>
+
+/**
+Sets a new pen array
+
+@param aPenArray The new array.
+*/ 
+void CSwDirectGdiEngine::SetPenArray(TInt* aPenArray)
+	{
+	delete[] iPenArray;
+	iPenArray = aPenArray;
+	}
+
+/**
+Destroys the current pen array.
+*/ 
+void CSwDirectGdiEngine::ResetPenArray()
+	{
+	delete[] iPenArray;
+	iPenArray = NULL;
+	}
+
+/**
+Truncates the given rectangle.
+
+@param aRect The rectangle to truncate.
+ */ 
+void CSwDirectGdiEngine::TruncateRect(TRect& aRect)
+	{
+	TInt width = iDrawDevice->SizeInPixels().iWidth << 4;
+	TInt height = iDrawDevice->SizeInPixels().iHeight << 4;
+
+	aRect.iTl.iX = Min(aRect.iTl.iX,width);
+	aRect.iTl.iY = Min(aRect.iTl.iY,height);
+	aRect.iBr.iX = Min(aRect.iBr.iX,width);
+	aRect.iBr.iY = Min(aRect.iBr.iY,height);
+
+	width = (-width);
+	height = (-height);
+
+	aRect.iTl.iX = Max(aRect.iTl.iX,width);
+	aRect.iTl.iY = Max(aRect.iTl.iY,height);
+	aRect.iBr.iX = Max(aRect.iBr.iX,width);
+	aRect.iBr.iY = Max(aRect.iBr.iY,height);
+	}
+
+/**
+@see MDirectGdiEngine::GetInterface()
+*/
+TInt CSwDirectGdiEngine::GetInterface(TUid aInterfaceId, TAny*& aInterface)
+	{
+	aInterface = NULL;
+	TInt err = KErrNotSupported;
+	
+	// Extension switch
+	switch (aInterfaceId.iUid)
+		{
+		case KDrawDeviceOriginInterfaceID:
+			{
+			aInterface= (MDrawDeviceOrigin*)this;
+			err=KErrNone;
+			}
+		break;
+		default:;
+		}
+		
+	return err;
+	}
+