summaryrefslogtreecommitdiff
path: root/basebmp/test
diff options
context:
space:
mode:
authorThorsten Behrens <thb@openoffice.org>2006-07-12 14:09:45 +0000
committerThorsten Behrens <thb@openoffice.org>2006-07-12 14:09:45 +0000
commit41aac5e01a735244839680528ae6245f1520ceee (patch)
treef452932cdc603bfd19055625c2a00ebaa62143b5 /basebmp/test
parent9f247bf4cc73845037d585c11a27df5210071b10 (diff)
#i65904# Finished drawMaskedBitmap(); reorganized accessor functors; added test case for drawMaskedBitmap()
Diffstat (limited to 'basebmp/test')
-rw-r--r--basebmp/test/basictest.cxx10
-rw-r--r--basebmp/test/bmpmasktest.cxx195
-rw-r--r--basebmp/test/makefile.mk5
3 files changed, 206 insertions, 4 deletions
diff --git a/basebmp/test/basictest.cxx b/basebmp/test/basictest.cxx
index baffe6718ad2..46776ce061ee 100644
--- a/basebmp/test/basictest.cxx
+++ b/basebmp/test/basictest.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: basictest.cxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: thb $ $Date: 2006-07-11 11:38:56 $
+ * last change: $Author: thb $ $Date: 2006-07-12 15:09:45 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -114,6 +114,12 @@ public:
pDevice->getScanlineFormat() == Format::ONE_BIT_MSB_PAL );
CPPUNIT_ASSERT_MESSAGE("Scanline len",
pDevice->getScanlineStride() == (aSize2.getY() + 7)/8 );
+ CPPUNIT_ASSERT_MESSAGE("Palette existence",
+ pDevice->getPalette() );
+ CPPUNIT_ASSERT_MESSAGE("Palette entry 0 is black",
+ (*pDevice->getPalette())[0] == Color(0) );
+ CPPUNIT_ASSERT_MESSAGE("Palette entry 1 is white",
+ (*pDevice->getPalette())[1] == Color(0xFFFFFFFF) );
}
void testPixelFuncs()
diff --git a/basebmp/test/bmpmasktest.cxx b/basebmp/test/bmpmasktest.cxx
new file mode 100644
index 000000000000..a42bb4f82d8e
--- /dev/null
+++ b/basebmp/test/bmpmasktest.cxx
@@ -0,0 +1,195 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: bmpmasktest.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: thb $ $Date: 2006-07-12 15:09:45 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+// autogenerated file with codegen.pl
+
+#include <cppunit/simpleheader.hxx>
+
+#include <basegfx/vector/b2isize.hxx>
+#include <basegfx/range/b2irange.hxx>
+#include <basegfx/point/b2ipoint.hxx>
+#include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
+
+#include <basebmp/color.hxx>
+#include <basebmp/scanlineformats.hxx>
+#include <basebmp/bitmapdevice.hxx>
+#include <basebmp/debug.hxx>
+#include "tools.hxx"
+
+#include <iostream>
+#include <fstream>
+
+using namespace ::basebmp;
+
+namespace
+{
+/*
+ std::ofstream output("32bpp_test.dump");
+ debugDump( rDevice, output );
+ std::ofstream output2("32bpp_bmp.dump");
+ debugDump( rBmp, output2 );
+*/
+
+class BmpMaskTest : public CppUnit::TestFixture
+{
+private:
+ BitmapDeviceSharedPtr mpDevice1bpp;
+ BitmapDeviceSharedPtr mpMaskBmp1bpp;
+ BitmapDeviceSharedPtr mpBmp1bpp;
+ BitmapDeviceSharedPtr mpDevice32bpp;
+ BitmapDeviceSharedPtr mpBmp32bpp;
+
+ void implTestBmpBasics(const BitmapDeviceSharedPtr& rDevice,
+ const BitmapDeviceSharedPtr& rBmp)
+ {
+ rDevice->clear(Color(0));
+ const Color aCol(0xFFFFFFFF);
+
+ const basegfx::B2IRange aSourceRect(0,0,10,10);
+ const basegfx::B2IRange aDestAll(0,0,10,10);
+
+ rDevice->drawMaskedBitmap(
+ rBmp,
+ mpMaskBmp1bpp,
+ aSourceRect,
+ aDestAll,
+ DrawMode_PAINT );
+ CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 30",
+ countPixel( rDevice, aCol ) == 30);
+ }
+
+ void implTestBmpScaledClip(const BitmapDeviceSharedPtr& rDevice,
+ const BitmapDeviceSharedPtr& rBmp)
+ {
+ rDevice->clear(Color(0));
+ const Color aCol(0xFFFFFFFF);
+
+ const basegfx::B2IRange aSourceRect(0,0,10,10);
+ const basegfx::B2IRange aDestLeftTop(0,0,6,6);
+
+ rDevice->drawMaskedBitmap(
+ rBmp,
+ mpMaskBmp1bpp,
+ aSourceRect,
+ aDestLeftTop,
+ DrawMode_PAINT );
+ CPPUNIT_ASSERT_MESSAGE("number of rendered pixel is not 12",
+ countPixel( rDevice, aCol ) == 12);
+ }
+
+public:
+ void setUp()
+ {
+ const basegfx::B2ISize aSize(10,10);
+ mpDevice1bpp = createBitmapDevice( aSize,
+ true,
+ Format::ONE_BIT_MSB_PAL );
+ mpDevice32bpp = createBitmapDevice( aSize,
+ true,
+ Format::THIRTYTWO_BIT_TC_MASK );
+
+ mpMaskBmp1bpp = createBitmapDevice( aSize,
+ true,
+ Format::ONE_BIT_MSB_GREY );
+
+ mpBmp1bpp = createBitmapDevice( aSize,
+ true,
+ Format::ONE_BIT_MSB_PAL );
+ mpBmp32bpp = createBitmapDevice( aSize,
+ true,
+ Format::THIRTYTWO_BIT_TC_MASK );
+
+ ::rtl::OUString aSvg = ::rtl::OUString::createFromAscii(
+ "m 0 0h5v10h5v-5h-10z" );
+
+ basegfx::B2DPolyPolygon aPoly;
+ basegfx::tools::importFromSvgD( aPoly, aSvg );
+ const Color aCol(0xFFFFFFFF);
+ mpBmp1bpp->fillPolyPolygon(
+ aPoly,
+ aCol,
+ DrawMode_PAINT );
+ mpBmp32bpp->fillPolyPolygon(
+ aPoly,
+ aCol,
+ DrawMode_PAINT );
+
+ aSvg = ::rtl::OUString::createFromAscii(
+ "m 0 0 h6 v10 h-6z" );
+
+ aPoly.clear();
+ basegfx::tools::importFromSvgD( aPoly, aSvg );
+ mpMaskBmp1bpp->fillPolyPolygon(
+ aPoly,
+ aCol,
+ DrawMode_PAINT );
+ }
+
+ void testBmpBasics()
+ {
+ implTestBmpBasics( mpDevice1bpp, mpBmp1bpp );
+ implTestBmpBasics( mpDevice32bpp, mpBmp32bpp );
+ }
+
+ void testBmpClip()
+ {
+ implTestBmpScaledClip( mpDevice1bpp, mpBmp1bpp );
+ implTestBmpScaledClip( mpDevice32bpp, mpBmp32bpp );
+ }
+
+ // Change the following lines only, if you add, remove or rename
+ // member functions of the current class,
+ // because these macros are need by auto register mechanism.
+
+ CPPUNIT_TEST_SUITE(BmpMaskTest);
+ CPPUNIT_TEST(testBmpBasics);
+ CPPUNIT_TEST(testBmpClip);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+// -----------------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(BmpMaskTest, "BmpMaskTest");
+}
+
+
+// -----------------------------------------------------------------------------
+
+// this macro creates an empty function, which will called by the RegisterAllFunctions()
+// to let the user the possibility to also register some functions by hand.
+//NOADDITIONAL;
+
diff --git a/basebmp/test/makefile.mk b/basebmp/test/makefile.mk
index a87f0ded20ba..dc8f27a859a9 100644
--- a/basebmp/test/makefile.mk
+++ b/basebmp/test/makefile.mk
@@ -4,9 +4,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.4 $
+# $Revision: 1.5 $
#
-# last change: $Author: thb $ $Date: 2006-06-08 00:01:48 $
+# last change: $Author: thb $ $Date: 2006-07-12 15:09:45 $
#
# The Contents of this file are made available subject to
# the terms of GNU Lesser General Public License Version 2.1.
@@ -66,6 +66,7 @@ CFLAGS += -fno-inline
SHL1OBJS= \
$(SLO)$/basictest.obj \
$(SLO)$/bmptest.obj \
+ $(SLO)$/bmpmasktest.obj \
$(SLO)$/cliptest.obj \
$(SLO)$/filltest.obj \
$(SLO)$/linetest.obj \