diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2014-12-15 18:36:32 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2014-12-15 18:38:09 +0100 |
commit | 9dc134a6df9255b4ca294cd2e9b88026624e6125 (patch) | |
tree | 1ae7402f0e613cd449c19f4fdba46d3370d86165 | |
parent | 72d8747ad95dbde1d3511b0fe48cd72999a43faf (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.hxx | 23 | ||||
-rw-r--r-- | vcl/opengl/scale.cxx | 4 | ||||
-rw-r--r-- | vcl/qa/cppunit/graphicfilter/filters-test.cxx | 2 | ||||
-rw-r--r-- | vcl/source/gdi/bitmap3.cxx | 2 |
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; |