summaryrefslogtreecommitdiff
path: root/vcl/source/bitmap
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2014-10-14 19:16:21 -0300
committerMichael Meeks <michael.meeks@collabora.com>2014-10-14 20:13:54 -0300
commita70d6e731850432c0254e7245e7209323d654f7d (patch)
tree037adf82b02da1bd57ae3d478c5eb9d1806a4a67 /vcl/source/bitmap
parent6786f4b5954fc617ba6188deb5526b1f092faa22 (diff)
vcl: create a ScaleContext to share copy/paste Bitmap scaling code.
Change-Id: I5a90b7c6065829d74c61b833f0551b8adc3f2711
Diffstat (limited to 'vcl/source/bitmap')
-rw-r--r--vcl/source/bitmap/bitmapscalesuper.cxx33
1 files changed, 31 insertions, 2 deletions
diff --git a/vcl/source/bitmap/bitmapscalesuper.cxx b/vcl/source/bitmap/bitmapscalesuper.cxx
index 070747b9cf9d..dc5404c713f4 100644
--- a/vcl/source/bitmap/bitmapscalesuper.cxx
+++ b/vcl/source/bitmap/bitmapscalesuper.cxx
@@ -42,6 +42,35 @@ void generateMap(long nW, long nDstW, bool bHMirr, long* pMapIX, long* pMapFX)
}
}
+struct ScaleContext {
+ BitmapReadAccess *mpSrc; // was pAcc
+ BitmapWriteAccess *mpDest; // was pWAcc
+ long mnSrcW, mnDestW;
+ long mnSrcH, mnDestH;
+ bool mbHMirr, mbVMirr;
+ boost::scoped_array<long> mpMapIX;
+ boost::scoped_array<long> mpMapIY;
+ boost::scoped_array<long> mpMapFX;
+ boost::scoped_array<long> mpMapFY;
+ ScaleContext( BitmapReadAccess *pSrc,
+ BitmapWriteAccess *pDest,
+ long nSrcW, long nDestW,
+ long nSrcH, long nDestH,
+ bool bHMirr, bool bVMirr)
+ : mpSrc( pSrc ), mpDest( pDest )
+ , mnSrcW( nSrcW ), mnDestW( nDestH )
+ , mnSrcH( nSrcH ), mnDestH( nDestH )
+ , mbHMirr( bHMirr ), mbVMirr( bVMirr )
+ , mpMapIX( new long[ nDestW ] )
+ , mpMapIY( new long[ nDestH ] )
+ , mpMapFX( new long[ nDestW ] )
+ , mpMapFY( new long[ nDestH ] )
+ {
+ generateMap(nSrcW, nDestW, bHMirr, mpMapIX.get(), mpMapFX.get());
+ generateMap(nSrcH, nDestH, bVMirr, mpMapIY.get(), mpMapFY.get());
+ }
+};
+
void scalePallete8bit(BitmapReadAccess* pAcc, BitmapWriteAccess* pWAcc,
long nStartX, long nEndX, long nStartY, long nEndY,
bool bVMirr, bool bHMirr)
@@ -799,8 +828,8 @@ void scale24bitRGB2(BitmapReadAccess* pAcc, BitmapWriteAccess* pWAcc,
}
void scaleNonPalleteGeneral2(BitmapReadAccess* pAcc, BitmapWriteAccess* pWAcc,
- long nStartX, long nEndX, long nStartY, long nEndY,
- bool bVMirr, bool bHMirr)
+ long nStartX, long nEndX, long nStartY, long nEndY,
+ bool bVMirr, bool bHMirr)
{
boost::scoped_array<long> pMapIX(new long[pWAcc->Width()]);
boost::scoped_array<long> pMapIY(new long[pWAcc->Height()]);