Kaydet (Commit) a70d6e73 authored tarafından Michael Meeks's avatar Michael Meeks

vcl: create a ScaleContext to share copy/paste Bitmap scaling code.

Change-Id: I5a90b7c6065829d74c61b833f0551b8adc3f2711
üst 6786f4b5
...@@ -42,6 +42,35 @@ void generateMap(long nW, long nDstW, bool bHMirr, long* pMapIX, long* pMapFX) ...@@ -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, void scalePallete8bit(BitmapReadAccess* pAcc, BitmapWriteAccess* pWAcc,
long nStartX, long nEndX, long nStartY, long nEndY, long nStartX, long nEndX, long nStartY, long nEndY,
bool bVMirr, bool bHMirr) bool bVMirr, bool bHMirr)
...@@ -799,8 +828,8 @@ void scale24bitRGB2(BitmapReadAccess* pAcc, BitmapWriteAccess* pWAcc, ...@@ -799,8 +828,8 @@ void scale24bitRGB2(BitmapReadAccess* pAcc, BitmapWriteAccess* pWAcc,
} }
void scaleNonPalleteGeneral2(BitmapReadAccess* pAcc, BitmapWriteAccess* pWAcc, void scaleNonPalleteGeneral2(BitmapReadAccess* pAcc, BitmapWriteAccess* pWAcc,
long nStartX, long nEndX, long nStartY, long nEndY, long nStartX, long nEndX, long nStartY, long nEndY,
bool bVMirr, bool bHMirr) bool bVMirr, bool bHMirr)
{ {
boost::scoped_array<long> pMapIX(new long[pWAcc->Width()]); boost::scoped_array<long> pMapIX(new long[pWAcc->Width()]);
boost::scoped_array<long> pMapIY(new long[pWAcc->Height()]); boost::scoped_array<long> pMapIY(new long[pWAcc->Height()]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment