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

vcl: re-factor scaling to use a single fn. pointer based invocation.

Change-Id: Ide61808dbfa82ce67794150f44b6bac4f3c8e302
üst 618c0f8f
...@@ -923,47 +923,39 @@ bool BitmapScaleSuper::filter(Bitmap& rBitmap) ...@@ -923,47 +923,39 @@ bool BitmapScaleSuper::filter(Bitmap& rBitmap)
pReadAccess->Height(), pReadAccess->Height(),
pWriteAccess->Height(), pWriteAccess->Height(),
bVMirr, bHMirr ); bVMirr, bHMirr );
void (*scaleRangeFn)(ScaleContext &rCtx, long nStartY, long nEndY);
bool bScaleUp = fScaleX >= fScaleThresh && fScaleY >= fScaleThresh;
if( pReadAccess->HasPalette() ) if( pReadAccess->HasPalette() )
{ {
if( pReadAccess->GetScanlineFormat() == BMP_FORMAT_8BIT_PAL ) switch( pReadAccess->GetScanlineFormat() )
{ {
if( fScaleX >= fScaleThresh && fScaleY >= fScaleThresh ) case BMP_FORMAT_8BIT_PAL:
scalePallete8bit(aContext, nStartY, nEndY); scaleRangeFn = bScaleUp ? scalePallete8bit : scalePallete8bit2;
else break;
scalePallete8bit2(aContext, nStartY, nEndY); default:
} scaleRangeFn = bScaleUp ? scalePalleteGeneral
else : scalePalleteGeneral2;
{ break;
if( fScaleX >= fScaleThresh && fScaleY >= fScaleThresh )
scalePalleteGeneral(aContext, nStartY, nEndY);
else
scalePalleteGeneral2(aContext, nStartY, nEndY);
} }
} }
else else
{ {
if( pReadAccess->GetScanlineFormat() == BMP_FORMAT_24BIT_TC_BGR ) switch( pReadAccess->GetScanlineFormat() )
{
if( fScaleX >= fScaleThresh && fScaleY >= fScaleThresh )
scale24bitBGR(aContext, nStartY, nEndY);
else
scale24bitBGR2(aContext, nStartY, nEndY);
}
else if( pReadAccess->GetScanlineFormat() == BMP_FORMAT_24BIT_TC_RGB )
{
if( fScaleX >= fScaleThresh && fScaleY >= fScaleThresh )
scale24bitRGB(aContext, nStartY, nEndY);
else
scale24bitRGB2(aContext, nStartY, nEndY);
}
else
{ {
if( fScaleX >= fScaleThresh && fScaleY >= fScaleThresh ) case BMP_FORMAT_24BIT_TC_BGR:
scaleNonPalleteGeneral(aContext, nStartY, nEndY); scaleRangeFn = bScaleUp ? scale24bitBGR : scale24bitBGR2;
else break;
scaleNonPalleteGeneral2(aContext, nStartY, nEndY); case BMP_FORMAT_24BIT_TC_RGB:
scaleRangeFn = bScaleUp ? scale24bitRGB : scale24bitRGB2;
break;
default:
scaleRangeFn = bScaleUp ? scaleNonPalleteGeneral
: scaleNonPalleteGeneral2;
break;
} }
} }
scaleRangeFn( aContext, nStartY, nEndY );
bRet = true; bRet = true;
} }
......
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