summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2014-12-15 18:36:32 +0100
committerLuboš Luňák <l.lunak@collabora.com>2014-12-15 18:38:09 +0100
commit9dc134a6df9255b4ca294cd2e9b88026624e6125 (patch)
tree1ae7402f0e613cd449c19f4fdba46d3370d86165
parent72d8747ad95dbde1d3511b0fe48cd72999a43faf (diff)
do not hardcode what specific "generic" bitmap scaling operations use
I.e. make it possible for the opengl backend to decide to use a different scaling algorithm. Change-Id: I36e76de071797129c7636b3048c93bc6e5d93aca
-rw-r--r--include/vcl/bitmap.hxx23
-rw-r--r--vcl/opengl/scale.cxx4
-rw-r--r--vcl/qa/cppunit/graphicfilter/filters-test.cxx2
-rw-r--r--vcl/source/gdi/bitmap3.cxx2
4 files changed, 16 insertions, 15 deletions
diff --git a/include/vcl/bitmap.hxx b/include/vcl/bitmap.hxx
index 80b76e4fb1c1..26a221c6a226 100644
--- a/include/vcl/bitmap.hxx
+++ b/include/vcl/bitmap.hxx
@@ -35,18 +35,17 @@
#define BMP_SCALE_NONE 0x00000000UL
-#define BMP_SCALE_FAST 0x00000001UL
-#define BMP_SCALE_INTERPOLATE 0x00000002UL
-#define BMP_SCALE_SUPER 0x00000003UL
-#define BMP_SCALE_LANCZOS 0x00000004UL
-#define BMP_SCALE_BICUBIC 0x00000005UL
-#define BMP_SCALE_BILINEAR 0x00000006UL
-#define BMP_SCALE_BOX 0x00000007UL
-
-// Aliases, try to use these two (or BMP_SCALE_FAST/BMP_SCALE_NONE),
-// use a specific algorithm only if you really need to.
-#define BMP_SCALE_BESTQUALITY BMP_SCALE_LANCZOS
-#define BMP_SCALE_DEFAULT BMP_SCALE_SUPER
+// Try to preferably use these.
+#define BMP_SCALE_DEFAULT 0x00000001UL
+#define BMP_SCALE_FAST 0x00000002UL
+#define BMP_SCALE_BESTQUALITY 0x00000003UL
+// Specific algorithms, use only if you really need to.
+#define BMP_SCALE_INTERPOLATE 0x00000004UL
+#define BMP_SCALE_SUPER 0x00000005UL
+#define BMP_SCALE_LANCZOS 0x00000006UL
+#define BMP_SCALE_BICUBIC 0x00000007UL
+#define BMP_SCALE_BILINEAR 0x00000008UL
+#define BMP_SCALE_BOX 0x00000009UL
#define BMP_DITHER_NONE 0x00000000UL
diff --git a/vcl/opengl/scale.cxx b/vcl/opengl/scale.cxx
index 4703c1f34098..01a9963d9e7d 100644
--- a/vcl/opengl/scale.cxx
+++ b/vcl/opengl/scale.cxx
@@ -203,13 +203,13 @@ bool OpenGLSalBitmap::ImplScale( const double& rScaleX, const double& rScaleY, s
{
return ImplScaleFilter( rScaleX, rScaleY, GL_LINEAR );
}
- else if( nScaleFlag == BMP_SCALE_SUPER )
+ else if( nScaleFlag == BMP_SCALE_SUPER || nScaleFlag == BMP_SCALE_DEFAULT )
{
const Lanczos3Kernel aKernel;
return ImplScaleConvolution( rScaleX, rScaleY, aKernel );
}
- else if( nScaleFlag == BMP_SCALE_LANCZOS )
+ else if( nScaleFlag == BMP_SCALE_LANCZOS || nScaleFlag == BMP_SCALE_BESTQUALITY )
{
const Lanczos3Kernel aKernel;
diff --git a/vcl/qa/cppunit/graphicfilter/filters-test.cxx b/vcl/qa/cppunit/graphicfilter/filters-test.cxx
index 48b1045f14b7..0b04dbf0e9ef 100644
--- a/vcl/qa/cppunit/graphicfilter/filters-test.cxx
+++ b/vcl/qa/cppunit/graphicfilter/filters-test.cxx
@@ -62,7 +62,7 @@ bool VclFiltersTest::load(const OUString &,
void VclFiltersTest::testScaling()
{
- for (unsigned int i = BMP_SCALE_FAST; i <= BMP_SCALE_BOX; i++)
+ for (unsigned int i = BMP_SCALE_NONE + 1; i <= BMP_SCALE_BOX; i++)
{
Bitmap aBitmap( Size( 413, 409 ), 24 );
BitmapEx aBitmapEx( aBitmap );
diff --git a/vcl/source/gdi/bitmap3.cxx b/vcl/source/gdi/bitmap3.cxx
index 1a7e1cf6df3d..38816e480b37 100644
--- a/vcl/source/gdi/bitmap3.cxx
+++ b/vcl/source/gdi/bitmap3.cxx
@@ -927,6 +927,7 @@ bool Bitmap::Scale( const double& rScaleX, const double& rScaleY, sal_uInt32 nSc
break;
}
case BMP_SCALE_SUPER:
+ case BMP_SCALE_DEFAULT:
{
if (GetSizePixel().Width() < 2 || GetSizePixel().Height() < 2)
{
@@ -941,6 +942,7 @@ bool Bitmap::Scale( const double& rScaleX, const double& rScaleY, sal_uInt32 nSc
break;
}
case BMP_SCALE_LANCZOS :
+ case BMP_SCALE_BESTQUALITY:
{
const Lanczos3Kernel kernel;