diff -r 000000000000 -r 40261b775718 mmplugins/imagingplugins/imagedisplay/plugins/mng/PixelConsumer.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmplugins/imagingplugins/imagedisplay/plugins/mng/PixelConsumer.inl Tue Feb 02 01:56:55 2010 +0200 @@ -0,0 +1,156 @@ +// Copyright (c) 2004-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: +// + +/** + @file + @internalTechnology +*/ + +inline +CPixelConsumerBase::CPixelConsumerBase(TInt aPixelSize) +:iPixelSize(aPixelSize) + { + } + +inline +void CPixelConsumerBase::GetBuffer() + { + iNeedBufferFlush = ETrue; + ASSERT(iFrameBuffer); + } + +inline +TBool CPixelConsumerBase::Enabled() const + { + return iEnabled; + } + +inline +void CPixelConsumerBase::SetEnabled(TBool aEnabled) + { + iEnabled = aEnabled; + } + +inline +const TRect& CPixelConsumerBase::ClippingRect() const + { + return iClippingRect; + } + + +inline +void CPixelConsumerBase::SetPos(const TPoint& aPosition) + { + iCurrentPos = aPosition; + } + +inline +void CPixelConsumerBase::SetOrigin(const TPoint& aOrigin) + { + iOrigin = aOrigin; + } + +inline +void CPixelConsumerBase::SetAlphaEnabledBitmap(TBool aEnabled) + { + ASSERT(iPixelSize == KRgbaPixelSize); + iAlphaEnabled = aEnabled; + } + +inline +TInt CPixelConsumerBase::PixelSize() const + { + return iPixelSize; + } + +inline +CRgbPixelConsumer::CRgbPixelConsumer(TInt aPixelSize) +:CPixelConsumerBase(aPixelSize) + { + ASSERT(KRedShift==16 && KGreenShift==8 && KBlueShift==0 && KAlphaShift==24); + } + +inline +TUint CRgbPixelConsumer::GetPixel(const TUint8* aPtr) const + { + return TUint(*aPtr) | TUint(aPtr[1]<<8) | TUint(aPtr[2]<<16); + } + +inline +void CRgbPixelConsumer::SetAlphaConsumer(CAlphaPixelConsumer* aAlphaConsumer) + { + iAlphaConsumer = aAlphaConsumer; + } + +inline +TUint CRgbPixelConsumer::GetPixel(const TPoint& aPosition) const + { + const TPoint RealPos = iOrigin + aPosition; + if (Contains(iRealOutputRect, RealPos)) + { + const TUint8* ptr=iFrameBuffer+KRgbPixelSize*(RealPos.iY*iFrameSize.iWidth+RealPos.iX); + return GetPixel(ptr); + } + return 0; + } + +inline +void CAlphaPixelConsumer::FillBy(TUint aAlpha) + { + GetBuffer(); + Mem::Fill(iFrameBuffer, iFrameBufferSize, aAlpha); + } + +inline +CAlphaPixelConsumer::CAlphaPixelConsumer() +:CPixelConsumerBase(KAlphaPixelSize) + { + } + +inline +TUint CAlphaPixelConsumer::GetPixel(const TPoint& aPosition) const + { + const TPoint RealPos = iOrigin + aPosition; + if (Contains(iRealOutputRect, RealPos)) + { + return *(iFrameBuffer + RealPos.iY*iFrameSize.iWidth + RealPos.iX ); + } + return 0; + } + +inline +TUint CAlphaPixelConsumer::GetPixel(TInt aBufferOffset) const + { + ASSERT(aBufferOffset < iFrameBufferSize); + return TUint( iFrameBuffer[aBufferOffset] ); + } + +inline +void CAlphaPixelConsumer::SetPixel(TRgbaColour aPixelAlpha) + { + const TPoint RealPos = iOrigin + iCurrentPos; + + TUint8* ptr=iFrameBuffer + RealPos.iY*iFrameSize.iWidth + RealPos.iX ; + *ptr=TUint8(aPixelAlpha & 0xff); + } + +inline +void CAlphaPixelConsumer::SetPixelByBufferOffset(TInt aPixelOffset, TRgbaColour aPixelAlpha) + { + ASSERT(aPixelOffset < iFrameBufferSize); + iFrameBuffer[aPixelOffset] = TUint8(aPixelAlpha & 0xff); + } + +