--- a/imageeditorengine/filters/FilterDraw/Src/cfilterdraw.cpp Fri Jan 29 13:53:17 2010 +0200
+++ b/imageeditorengine/filters/FilterDraw/Src/cfilterdraw.cpp Thu Jun 03 18:57:10 2010 +0800
@@ -1,30 +1,30 @@
/*
-* Copyright (c) 2010 Ixonos Plc.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "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:
-* Ixonos Plc
-*
-* Description:
-* Draw filter for Draw UI plugin.
-*
-*/
-
+ * Copyright (c) 2010 Ixonos Plc.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "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:
+ * Ixonos Plc
+ *
+ * Description:
+ * Draw filter for Draw UI plugin.
+ *
+ */
#include <fbs.h>
#include <bitdev.h>
#include <e32math.h>
#include "cfilterdraw.h"
-const TInt KDrawBitmapWidth(640);
-const TInt KDrawBitmapHeight(480);
+const TInt KDrawBitmapWidth(480);
+const TInt KDrawBitmapHeight(640);
+TUint32* CFilterDraw::iData = NULL;
// ---------------------------------------------------------------------------
// Create
// ---------------------------------------------------------------------------
@@ -33,7 +33,7 @@
{
CFilterDraw* ptr = NULL;
TRAP_IGNORE( ptr = NewL() );
- return (TInt)((MImageFilter*)ptr);
+ return (TInt) ((MImageFilter*) ptr);
}
// ---------------------------------------------------------------------------
@@ -42,7 +42,7 @@
//
CFilterDraw* CFilterDraw::NewL()
{
- return new( ELeave )CFilterDraw();
+ return new (ELeave) CFilterDraw();
}
// ---------------------------------------------------------------------------
@@ -51,22 +51,44 @@
//
CFilterDraw::~CFilterDraw()
{
+ if(iData)
+ {
delete[] iData;
+ iData = NULL;
+ }
iReadyToRender = EFalse;
// Close all paths
- for( TInt i(0); i<iPaths.Count(); i++ )
+ for (TInt i(0); i < iPaths.Count(); i++)
{
iPaths[i].Close();
}
- iPaths.Close();
+ iPaths.Close();
+
+ for (TInt j(0); j < iUndoPaths.Count(); j++)
+ {
+ iUndoPaths[j].Close();
+ }
+ iUndoPaths.Close();
+
+ if(iMask)
+ {
+ delete iMask;
+ iMask =NULL;
+ }
+ if(iBitmap)
+ {
+ delete iBitmap;
+ iBitmap =NULL;
+ }
}
// ---------------------------------------------------------------------------
// CFilterDraw
// ---------------------------------------------------------------------------
//
-CFilterDraw::CFilterDraw():iData(NULL),
- iBitmapSize(KDrawBitmapWidth, KDrawBitmapHeight)
+CFilterDraw::CFilterDraw() :
+ iBitmapSize(KDrawBitmapWidth, KDrawBitmapHeight), iCanRedo(
+ EFalse)
{
}
@@ -97,55 +119,63 @@
TSize CFilterDraw::ViewPortSize()
{
ASSERT(iChild);
- return iChild->ViewPortSize();
+ return iChild->ViewPortSize();
}
// ---------------------------------------------------------------------------
// GetBlockL
// ---------------------------------------------------------------------------
//
-TBlock* CFilterDraw::GetBlockL( const TRect& aRect )
+TBlock* CFilterDraw::GetBlockL(const TRect& aRect)
{
- ASSERT(iChild);
- TBlock* pB = iChild->GetBlockL( aRect );
- if( !pB ) return NULL;
- TUint32* pD = pB->iData;
-
- if( iData && iReadyToRender )
- {
- // Factor between real and viewed image
- TReal realToViewedFactorWidth;
- TReal realToViewedFactorHeight;
- RealToViewedFactories(realToViewedFactorWidth, realToViewedFactorHeight);
- const TInt width( iBitmapSize.iWidth ); // Data bitmap width
+ ASSERT(iChild);
+ TBlock* pB = iChild->GetBlockL(aRect);
+ if (!pB)
+ return NULL;
+ TUint32* pD = pB->iData;
+
+ if (iData && iReadyToRender)
+ {
+ // Factor between real and viewed image
+ TReal realToViewedFactorWidth;
+ TReal realToViewedFactorHeight;
+ RealToViewedFactories(realToViewedFactorWidth, realToViewedFactorHeight);
+ const TInt width(iBitmapSize.iWidth); // Data bitmap width
- for( TInt y(pB->iRect.iTl.iY); y<pB->iRect.iBr.iY; ++y )
- {
- TInt realY(y / Scale() + 0.5);
- TInt viewY(realY / realToViewedFactorHeight + 0.5);
- for( TInt x(pB->iRect.iTl.iX); x<pB->iRect.iBr.iX; ++x )
- {
- TInt realX(x / Scale() + 0.5);
- TInt viewX(realX / realToViewedFactorWidth + 0.5);
+ for (TInt y(pB->iRect.iTl.iY); y < pB->iRect.iBr.iY; ++y)
+ {
+ TInt realY(y / Scale() + 0.5);
+ TInt viewY(realY / realToViewedFactorHeight + 0.5);
+ for (TInt x(pB->iRect.iTl.iX); x < pB->iRect.iBr.iX; ++x)
+ {
+ TInt realX(x / Scale() + 0.5);
+ TInt viewX(realX / realToViewedFactorWidth + 0.5);
- TUint32 color = iData[ width*viewY + viewX ];
- if( (color & 0xff000000) )
- {
- *pD = color;
- }
-
- *pD++;
- }
- }
- }
- return pB;
+ if( viewY >= KDrawBitmapHeight)
+ {
+ viewY--;
+ }
+ if(iData[width * viewY + viewX])
+ {
+ TUint32 color = iData[width * viewY + viewX];
+ if ((color & 0xff000000))
+ {
+ *pD = color;
+ }
+ }
+ *pD++;
+ }
+ }
+ }
+
+ return pB;
}
// ---------------------------------------------------------------------------
// SetParent
// ---------------------------------------------------------------------------
//
-void CFilterDraw::SetParent( MImageFilter* aParent )
+void CFilterDraw::SetParent(MImageFilter* aParent)
{
ASSERT(aParent);
iParent = aParent;
@@ -155,7 +185,7 @@
// SetChild
// ---------------------------------------------------------------------------
//
-void CFilterDraw::SetChild( MImageFilter* aChild )
+void CFilterDraw::SetChild(MImageFilter* aChild)
{
ASSERT(aChild);
iChild = aChild;
@@ -165,120 +195,163 @@
// CmdL
// ---------------------------------------------------------------------------
//
-TInt CFilterDraw::CmdL( const TDesC16& aCmd )
+TInt CFilterDraw::CmdL(const TDesC16& aCmd)
{
+ TInt bbb(0);
+ bbb = iPaths.Count();
ASSERT(iChild);
- TLex lex (aCmd);
- TPoint position(0,0);
- // Factor between real and viewed image
- TReal realToViewedFactorWidth;
- TReal realToViewedFactorHeight;
- RealToViewedFactories(realToViewedFactorWidth, realToViewedFactorHeight);
-
+ TLex lex(aCmd);
+ TPoint position(0, 0);
+ // Factor between real and viewed image
+ TReal realToViewedFactorWidth;
+ TReal realToViewedFactorHeight;
+ RealToViewedFactories(realToViewedFactorWidth, realToViewedFactorHeight);
+
// Handle parameters
- while( !lex.Eos() )
+ while (!lex.Eos())
{
+ RDebug::RawPrint(aCmd);
TPtrC token = lex.NextToken();
- if( token.Compare( _L("x") ) == 0 )
+ TInt pathCount(0);
+ pathCount = iPaths.Count();
+
+ if (token.Compare(_L("x")) == 0)
{
+ iCanRedo = EFalse;
+ for (TInt j(0); j < iUndoPaths.Count(); j++)
+ {
+ iUndoPaths[j].Close();
+ }
+ iUndoPaths.Close();
iReadyToRender = EFalse;
- TReal relscale = Scale();
- TInt param = 0;
- lex.Inc ();
- lex.Val (param);
+ TReal relscale = Scale();
+ TInt param = 0;
+ lex.Inc();
+ lex.Val(param);
// Coordinates on data bitmap
- position.iX = (TReal(param) / relscale) / realToViewedFactorWidth + 0.5;
+ position.iX = (TReal(param) / relscale) / realToViewedFactorWidth + 0.5;
}
- else if( token.Compare( _L("y") ) == 0 )
+ else if (token.Compare(_L("y")) == 0)
{
- TReal relscale = Scale();
- TInt param = 0;
- lex.Inc ();
- lex.Val (param);
- position.iY = (TReal(param) / relscale) / realToViewedFactorHeight + 0.5;
- RDebug::Print(_L("CFilterDraw::CmdL x:%d y:%d Scale:%g Rw:%d Rh:%d Vpw:%d Vph:%d Rtvw:%g Rtvh:%g"),
- position.iX,
- position.iY,
- relscale,
- Rect().Size().iWidth,
- Rect().Size().iHeight,
- ViewPortSize().iWidth,
- ViewPortSize().iHeight,
- realToViewedFactorWidth,
- realToViewedFactorHeight);
-
- if(!iPaths.Count())
+ TReal relscale = Scale();
+ TInt param = 0;
+ lex.Inc();
+ lex.Val(param);
+ position.iY = (TReal(param) / relscale) / realToViewedFactorHeight + 0.5;
+ RDebug::Print(
+ _L("CFilterDraw::CmdL x:%d y:%d Scale:%g Rw:%d Rh:%d Vpw:%d Vph:%d Rtvw:%g Rtvh:%g"),
+ position.iX, position.iY, relscale, Rect().Size().iWidth,
+ Rect().Size().iHeight, ViewPortSize().iWidth,
+ ViewPortSize().iHeight, realToViewedFactorWidth,
+ realToViewedFactorHeight);
+
+ if (!iPaths.Count())
{
RDrawPath newPath;
- User::LeaveIfError( newPath.Append(position) );
- User::LeaveIfError( iPaths.Append( newPath ) );
+ User::LeaveIfError(newPath.Append(position));
+ User::LeaveIfError(iPaths.Append(newPath));
}
else
- {
- ASSERT(iPaths.Count());
- RDrawPath& lastPath = iPaths[iPaths.Count()-1];
- User::LeaveIfError( lastPath.Append(position) );
+ {
+ ASSERT(iPaths.Count());
+ RDrawPath& lastPath = iPaths[iPaths.Count() - 1];
+ User::LeaveIfError(lastPath.Append(position));
}
}
- else if( token.Compare( _L("color") ) == 0 )
+ else if (token.Compare(_L("color")) == 0)
{
TUint32 color(0);
lex.Inc();
- lex.Val( color, EDecimal );
+ lex.Val(color, EDecimal);
TRgb rgb(color);
- TUint32 colorValue =
- ( rgb.Red() << 16 ) + ( rgb.Green() << 8 ) + rgb.Blue();
- ASSERT( iPaths.Count() );
- RDrawPath& lastPath = iPaths[iPaths.Count()-1];
- lastPath.SetColor( TRgb(colorValue) );
- }
- else if( token.Compare( _L("size") ) == 0 )
+ TUint32 colorValue = (rgb.Red() << 16) + (rgb.Green() << 8) + rgb.Blue();
+ ASSERT( iPaths.Count() );
+ RDrawPath& lastPath = iPaths[iPaths.Count() - 1];
+ lastPath.SetColor(TRgb(colorValue));
+ }
+ else if (token.Compare(_L("size")) == 0)
{
TInt size(0);
- lex.Inc ();
+ lex.Inc();
lex.Val(size);
// Scale line size to match bitmap scale
TInt sizew( (TReal(size) / realToViewedFactorWidth) + 0.5 );
TInt sizeh( (TReal(size) / realToViewedFactorHeight) + 0.5 );
-
- if( !sizew )
- {
- sizew++;
- }
- if( !sizeh )
- {
- sizeh++;
- }
-
- if(iPaths.Count())
+
+ if (!sizew)
+ {
+ sizew++;
+ }
+ if (!sizeh)
{
- RDrawPath& lastPath = iPaths[iPaths.Count()-1];
- lastPath.SetSize( TSize(sizew, sizeh) );
+ sizeh++;
+ }
+
+ if (iPaths.Count())
+ {
+ RDrawPath& lastPath = iPaths[iPaths.Count() - 1];
+ lastPath.SetSize(TSize(sizew, sizeh));
}
}
- else if( token.Compare( _L("lastItem") ) == 0 )
- {
- ASSERT(iPaths.Count());
-
- RDrawPath& lastPath = iPaths[iPaths.Count()-1];
- RDebug::Print(_L("CFilterDraw::CmdL lastItem count:%d size:%d r:%d g:%d b:%d"),
- iPaths.Count(), lastPath.Size().iHeight,
- lastPath.Color().Red(),
- lastPath.Color().Green(),
- lastPath.Color().Blue()
- );
+ else if (token.Compare(_L("lastItem")) == 0)
+ {
+ ASSERT(iPaths.Count());
+
+ RDrawPath& lastPath = iPaths[iPaths.Count() - 1];
+ RDebug::Print(
+ _L("CFilterDraw::CmdL lastItem count:%d size:%d r:%d g:%d b:%d"),
+ iPaths.Count(), lastPath.Size().iHeight,
+ lastPath.Color().Red(), lastPath.Color().Green(),
+ lastPath.Color().Blue());
- RDrawPath newPath;
- User::LeaveIfError( iPaths.Append( newPath ) );
- }
- else if( token.Compare( _L("done") ) == 0 )
- {
- LoadFrameL();
- iReadyToRender = ETrue;
- }
+ RDrawPath newPath;
+ User::LeaveIfError(iPaths.Append(newPath));
+ }
+ else if (token.Compare(_L("done")) == 0)
+ {
+ LoadFrameL();
+ iReadyToRender = ETrue;
+ }
+ //Undo functionality
+ else if (token.Compare(_L("Undo")) == 0)
+ {
+ TInt count(0);
+ count = iPaths.Count();
+ count = iUndoPaths.Count();
+
+ if (iPaths.Count() > 1)
+ {
+ TInt count = iPaths.Count();
+ iUndoPaths.Append(iPaths[iPaths.Count() - 2]);
+ iPaths.Remove(iPaths.Count() - 2);
+ iCanRedo = ETrue;
+ }
+ count = iPaths.Count();
+ count = iUndoPaths.Count();
+ }
+ //Redo functionality
+ else if (token.Compare(_L("redone")) == 0)
+ {
+ TInt count(0);
+ count = iPaths.Count();
+ count = iUndoPaths.Count();
+
+ if (iCanRedo)
+ {
+ if (iUndoPaths.Count())
+ {
+ if (iPaths.Count() >= 1)
+ {
+ iPaths.Insert(iUndoPaths[iUndoPaths.Count() - 1],iPaths.Count() - 1);
+ iUndoPaths.Remove(iUndoPaths.Count() - 1);
+ }
+ }
+ }
+ count = iPaths.Count();
+ count = iUndoPaths.Count();
+ }
}
-
- return KErrNone;
+ return KErrNone;
}
// ---------------------------------------------------------------------------
@@ -295,131 +368,129 @@
// ---------------------------------------------------------------------------
//
void CFilterDraw::LoadFrameL()
- {
- RDebug::Print(_L("CFilterDraw::LoadFrameL w:%d h:%d"),
- iBitmapSize.iWidth,
- iBitmapSize.iHeight);
+ {
+ RDebug::Print(_L("CFilterDraw::LoadFrameL w:%d h:%d"), iBitmapSize.iWidth,
+ iBitmapSize.iHeight);
+
+ TInt xxx(0);
+ xxx = iPaths.Count();
+ // Create a bitmap big enough to hold the drawed lines
+ CFbsBitmap* bitmap = new (ELeave) CFbsBitmap();
+ CleanupStack::PushL(bitmap);
+ User::LeaveIfError(bitmap->Create(iBitmapSize, EColor16MA));
- // Create a bitmap big enough to hold the drawed lines
- CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
- CleanupStack::PushL( bitmap );
- User::LeaveIfError( bitmap->Create( iBitmapSize, EColor16MA ) );
-
// create mask
- CFbsBitmap* mask = new (ELeave) CFbsBitmap();
- CleanupStack::PushL( mask );
- User::LeaveIfError( mask->Create(iBitmapSize,EColor16MA) );
+ CFbsBitmap* mask = new (ELeave) CFbsBitmap();
+ CleanupStack::PushL(mask);
+ User::LeaveIfError(mask->Create(iBitmapSize, EColor16MA));
- CFbsBitmapDevice* maskDevice = CFbsBitmapDevice::NewL( mask );
- CleanupStack::PushL( maskDevice );
+ CFbsBitmapDevice* maskDevice = CFbsBitmapDevice::NewL(mask);
+ CleanupStack::PushL(maskDevice);
- CFbsBitGc * maskContext(NULL);
- User::LeaveIfError( maskDevice->CreateContext(maskContext) );
- CleanupStack::PushL(maskContext);
- maskContext->SetPenStyle(CGraphicsContext::ESolidPen);
+ CFbsBitGc * maskContext(NULL);
+ User::LeaveIfError(maskDevice->CreateContext(maskContext));
+ CleanupStack::PushL(maskContext);
+ maskContext->SetPenStyle(CGraphicsContext::ESolidPen);
maskContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
maskContext->SetBrushColor(KRgbBlack);
-
- // Create bitmap device and context
- CFbsBitmapDevice * bitmapDevice = CFbsBitmapDevice::NewL (bitmap);
- CleanupStack::PushL (bitmapDevice);
+
+ // Create bitmap device and context
+ CFbsBitmapDevice * bitmapDevice = CFbsBitmapDevice::NewL(bitmap);
+ CleanupStack::PushL(bitmapDevice);
// Create bitmap graphics context
- CFbsBitGc * bitmapContext(NULL);
- User::LeaveIfError (bitmapDevice->CreateContext (bitmapContext));
- CleanupStack::PushL (bitmapContext);
-
+ CFbsBitGc * bitmapContext(NULL);
+ User::LeaveIfError(bitmapDevice->CreateContext(bitmapContext));
+ CleanupStack::PushL(bitmapContext);
+
TDisplayMode dmode = bitmap->DisplayMode();
-
- for(TInt pathNumber(0); pathNumber<iPaths.Count(); pathNumber++)
- {
- RDrawPath path = iPaths[pathNumber];
- bitmapContext->SetPenStyle (CGraphicsContext::ESolidPen);
- bitmapContext->SetBrushStyle (CGraphicsContext::ESolidBrush);
+
+ for (TInt pathNumber(0); pathNumber < iPaths.Count(); pathNumber++)
+ {
+ RDrawPath path = iPaths[pathNumber];
+ bitmapContext->SetPenStyle(CGraphicsContext::ESolidPen);
+ bitmapContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
bitmapContext->SetPenColor(path.Color());
bitmapContext->SetPenSize(path.Size());
- maskContext->SetPenSize(path.Size());
+ maskContext->SetPenSize(path.Size());
- RDebug::Print(_L("CFilterDraw::LoadFrameL ps:%dx%d S:%g"),
- path.Size().iWidth,
- path.Size().iHeight,
- Scale());
-
+ RDebug::Print(_L("CFilterDraw::LoadFrameL ps:%dx%d S:%g"),
+ path.Size().iWidth, path.Size().iHeight, Scale());
+
CArrayFix<TPoint>* pointArray = NULL;
RDrawPath2PointArray(path, pointArray);
- bitmapContext->DrawPolyLine( pointArray );
- maskContext->DrawPolyLine( pointArray );
+ bitmapContext->DrawPolyLine(pointArray);
+ maskContext->DrawPolyLine(pointArray);
delete pointArray;
- }
-
- // Create memory buffer to hold rendered image data
-
- if( !iData )
- {
- iData = new (ELeave) TUint32 [iBitmapSize.iWidth * iBitmapSize.iHeight];
- }
- Mem::FillZ(iData,
- iBitmapSize.iWidth * iBitmapSize.iHeight * sizeof (TUint32));
+ }
- TBitmapUtil bm (bitmap);
- bm.Begin(TPoint(0,0));
- TBitmapUtil maskbm (mask);
- maskbm.Begin(TPoint(0,0));
- TRgb rgb(0);
- // Find drawed lines from bitmap
- for (TInt y(0); y < iBitmapSize.iHeight - 1; y++ )
- {
- for (TInt x(0); x < iBitmapSize.iWidth - 1; x++ )
- {
- // Check mask first
- maskbm.SetPos(TPoint(x,y));
- if( maskbm.GetPixel() == KRgbBlack.Internal() )
- {
- bm.SetPos(TPoint(x,y));
- rgb = bm.GetPixel();
- iData[(iBitmapSize.iWidth*y)+x] =
- ( rgb.Red() << 16 ) + ( rgb.Green() << 8 ) + rgb.Blue() |
- 0xff000000;
- }
- }
- }
+ // Create memory buffer to hold rendered image data
+
+ if (!iData)
+ {
+ iData = new (ELeave) TUint32[iBitmapSize.iWidth * iBitmapSize.iHeight];
+ Mem::FillZ(iData, iBitmapSize.iWidth * iBitmapSize.iHeight
+ * sizeof(TUint32));
+ }
+
+ TBitmapUtil bm(bitmap);
+ bm.Begin(TPoint(0, 0));
+ TBitmapUtil maskbm(mask);
+ maskbm.Begin(TPoint(0, 0));
+ TRgb rgb(0);
+
+ // Find drawed lines from bitmap
+ for (TInt y(0); y < iBitmapSize.iHeight - 1; y++)
+ {
+ for (TInt x(0); x < iBitmapSize.iWidth - 1; x++)
+ {
+ // Check mask first
+ maskbm.SetPos(TPoint(x, y));
+ if (maskbm.GetPixel() == KRgbBlack.Internal())
+ {
+ bm.SetPos(TPoint(x, y));
+ rgb = bm.GetPixel();
+ iData[(iBitmapSize.iWidth * y) + x] = (rgb.Red() << 16)
+ + (rgb.Green() << 8) + rgb.Blue() | 0xff000000;
+ }
+ }
+ }
+
bm.End();
maskbm.End();
// bitmapContext, bitmapDevice, maskContext, maskDevice, mask, bitmap
- CleanupStack::PopAndDestroy(6, bitmap);
- RDebug::Print(_L("CFilterDraw::LoadFrameL - end"));
+ CleanupStack::PopAndDestroy(6, bitmap);
+ RDebug::Print(_L("CFilterDraw::LoadFrameL - end"));
}
-
+
// ---------------------------------------------------------------------------
// RDrawPath2PointArray
// ---------------------------------------------------------------------------
//
-void CFilterDraw::RDrawPath2PointArray(
- const RDrawPath& aPath, CArrayFix<TPoint>*& aArrayPtr) const
- {
- // if allocation fails just do nothing. +1 if count is zero
- aArrayPtr = new CArrayFixFlat<TPoint> ( aPath.Count() + 1 );
- if (aArrayPtr)
- {
- for( TInt i(0); i<aPath.Count(); i++ )
- {
- TPoint item = aPath[i];
- TRAP_IGNORE( aArrayPtr->AppendL( item ) );
- }
- }
- }
+void CFilterDraw::RDrawPath2PointArray(const RDrawPath& aPath,
+ CArrayFix<TPoint>*& aArrayPtr) const
+ {
+ // if allocation fails just do nothing. +1 if count is zero
+ aArrayPtr = new CArrayFixFlat<TPoint> (aPath.Count() + 1);
+ if (aArrayPtr)
+ {
+ for (TInt i(0); i < aPath.Count(); i++)
+ {
+ TPoint item = aPath[i];
+ TRAP_IGNORE( aArrayPtr->AppendL( item ) );
+ }
+ }
+ }
// ---------------------------------------------------------------------------
// RealToViewedFactories
// ---------------------------------------------------------------------------
//
void CFilterDraw::RealToViewedFactories(TReal& aWidth, TReal& aHeight)
- {
- // Factor between real and viewed image
- aWidth = TReal(ViewPortSize().iWidth) /
- TReal(iBitmapSize.iWidth);
- aHeight = TReal(ViewPortSize().iHeight) /
- TReal(iBitmapSize.iHeight);
- }
+ {
+ // Factor between real and viewed image
+ aWidth = TReal(ViewPortSize().iWidth) / TReal(iBitmapSize.iWidth);
+ aHeight = TReal(ViewPortSize().iHeight) / TReal(iBitmapSize.iHeight);
+ }