diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2014-10-14 19:16:21 -0300 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2014-10-14 20:13:54 -0300 |
commit | a70d6e731850432c0254e7245e7209323d654f7d (patch) | |
tree | 037adf82b02da1bd57ae3d478c5eb9d1806a4a67 /vcl/source/bitmap | |
parent | 6786f4b5954fc617ba6188deb5526b1f092faa22 (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.cxx | 33 |
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()]); |