author | Gareth Stockwell <gareth.stockwell@accenture.com> |
Fri, 22 Oct 2010 11:38:29 +0100 | |
branch | bug235_bringup_0 |
changeset 206 | c170e304623f |
parent 0 | 5d03bc08d59c |
permissions | -rw-r--r-- |
// Copyright (c) 2006-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: // This module implements the class for a 24 bpp unpack color screen. // // /** @file */ #include <hal.h> #include <e32std.h> #include <bitdraw.h> #include "scdraw.h" void CDrawUTwentyFourBppScreenBitmap::SetSize(const TSize& aSize) { CDrawBitmap::SetSize(aSize); __ASSERT_DEBUG(iSize == aSize, User::Invariant()); iLongWidth = iScanLineWords; } void CDrawUTwentyFourBppScreenBitmap::SetDisplayMode(CFbsDrawDevice* aDrawDevice) { CopyOldSettings(aDrawDevice); InitScreen(); } TInt CDrawUTwentyFourBppScreenBitmap::HorzTwipsPerThousandPixels() const { if (iSize.iWidth == 0) return 0; TInt displayMode; TInt r = HAL::Get(iScreenNo, HAL::EDisplayMode, displayMode); if (r != KErrNone) return 0; TInt width = displayMode; r = HAL::Get(iScreenNo, HAL::EDisplayXTwips, width); if (r != KErrNone) return 0; return (width * 1000) / iSize.iWidth; } TInt CDrawUTwentyFourBppScreenBitmap::VertTwipsPerThousandPixels() const { if (iSize.iHeight == 0) return 0; TInt displayMode; TInt r = HAL::Get(iScreenNo, HAL::EDisplayMode, displayMode); if (r != KErrNone) return 0; TInt height = displayMode; r = HAL::Get(iScreenNo, HAL::EDisplayYTwips, height); if (r != KErrNone) return 0; return (height * 1000) / iSize.iHeight; } TInt CDrawUTwentyFourBppScreenBitmap::InitScreen() { return KErrNone; } TInt CDrawUTwentyFourBppScreenBitmap::ConstructScreenL(TInt aScreenNo, TAny* aBitmapAddress, TSize aSize) { iScreenNo = aScreenNo; TInt displayMode; TInt ret = HAL::Get(aScreenNo, HALData::EDisplayMode, displayMode); if (ret != KErrNone) return ret; TInt linepitchInBytes = displayMode; ret = HAL::Get(aScreenNo,HALData::EDisplayOffsetBetweenLines,linepitchInBytes); if (ret != KErrNone) return ret; iScanLineWords = linepitchInBytes / 4; ret = CDrawUTwentyFourBppBitmap::Construct(aSize); if (ret != KErrNone) return ret; TInt offsetToFirstPixel = displayMode; ret = HAL::Get(aScreenNo,HALData::EDisplayOffsetToFirstPixel, offsetToFirstPixel); if (ret != KErrNone) return ret; iBits = (TUint32*)((TUint32)aBitmapAddress + offsetToFirstPixel); return KErrNone; } void CDrawUTwentyFourBppScreenBitmap::OrientationsAvailable(TBool aOrientation[4]) { aOrientation[EOrientationNormal] = ETrue; aOrientation[EOrientationRotated90] = ETrue; aOrientation[EOrientationRotated180] = ETrue; aOrientation[EOrientationRotated270] = ETrue; } TBool CDrawUTwentyFourBppScreenBitmap::SetOrientation(TOrientation aOrientation) { iOrientation = aOrientation ; return ETrue ; }