summaryrefslogtreecommitdiff
path: root/vcl/source/gdi/salmisc.cxx
diff options
context:
space:
mode:
authorHerbert Dürr <hdu@apache.org>2013-07-22 09:50:08 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-07-24 08:55:26 +0100
commit794a1f8e685216d6bbf5f753b04138a2711ce62d (patch)
tree22d567ea6822d7d9edc468f4d326f56049092fa0 /vcl/source/gdi/salmisc.cxx
parentfc67191ba272607655a9167b23054a7821cdd808 (diff)
Resolves: #i122796# fix half-pixel offset in StretchAndConvert...
image scaling (cherry picked from commit ec3d48418f1cbad40153b3e4fdc2497ebf0e7d59) Change-Id: Idc4bf7acc30c24a788be79c3686155e924afb28c
Diffstat (limited to 'vcl/source/gdi/salmisc.cxx')
-rw-r--r--vcl/source/gdi/salmisc.cxx12
1 files changed, 6 insertions, 6 deletions
diff --git a/vcl/source/gdi/salmisc.cxx b/vcl/source/gdi/salmisc.cxx
index 9720c6420920..3cbb4f4ae66c 100644
--- a/vcl/source/gdi/salmisc.cxx
+++ b/vcl/source/gdi/salmisc.cxx
@@ -391,12 +391,12 @@ BitmapBuffer* StretchAndConvert(
}
// horizontal mapping table
- if( nDstDX != nSrcDX )
+ if( (nDstDX != nSrcDX) && (nDstDX != 0) )
{
- const double fFactorX = ( nDstDX > 1 ) ? (double) ( nSrcDX - 1 ) / ( nDstDX - 1 ) : 0.0;
+ const double fFactorX = (double)nSrcDX / nDstDX;
for( i = 0L; i < nDstDX; i++ )
- pMapX[ i ] = nSrcX + FRound( i * fFactorX );
+ pMapX[ i ] = nSrcX + static_cast<int>( i * fFactorX );
}
else
{
@@ -405,12 +405,12 @@ BitmapBuffer* StretchAndConvert(
}
// vertical mapping table
- if( nDstDY != nSrcDY )
+ if( (nDstDY != nSrcDY) && (nDstDY != 0) )
{
- const double fFactorY = ( nDstDY > 1 ) ? (double) ( nSrcDY - 1 ) / ( nDstDY - 1 ) : 0.0;
+ const double fFactorY = (double)nSrcDY / nDstDY;
for( i = 0L; i < nDstDY; i++ )
- pMapY[ i ] = nSrcY + FRound( i * fFactorY );
+ pMapY[ i ] = nSrcY + static_cast<int>( i * fFactorY );
}
else
{