summaryrefslogtreecommitdiff
path: root/sd/qa/unit
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2024-08-17 10:50:06 +0500
committerMike Kaganski <mike.kaganski@collabora.com>2024-08-17 12:36:13 +0200
commit52a2dd0eea2ecf62b1db5f379cf65aed705446cb (patch)
tree68d78743be005c74482853b5f75ee217bd7aa5fb /sd/qa/unit
parentdac249a0de613cce6c3f3de756cd1a0c8464f38c (diff)
Support for non-AA text on Windows
In commit 3ecd8f19a91ed7141304a2080fb11612b5ff30b3 (vcl cairo text renderer: support non-AA text, 2018-07-26) and its follow-up commit e6538f5bdd876911ea30f84a6512c03908e620fd (tdf#118966 vcl: add a flag to determine if AA of fonts is used from the system, 2018-07-28), non-antialiased text got supported in bitmap export using cairo. This change makes that support available on Windiws, including Skia. Change-Id: I1fae726539347f826e2d62246d35315e7954cf83 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171967 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'sd/qa/unit')
-rw-r--r--sd/qa/unit/PNGExportTests.cxx41
1 files changed, 41 insertions, 0 deletions
diff --git a/sd/qa/unit/PNGExportTests.cxx b/sd/qa/unit/PNGExportTests.cxx
index 305bf108b7b8..94eb4ff19c14 100644
--- a/sd/qa/unit/PNGExportTests.cxx
+++ b/sd/qa/unit/PNGExportTests.cxx
@@ -941,6 +941,47 @@ CPPUNIT_TEST_FIXTURE(SdPNGExportTest, testTdf155048)
}
}
+CPPUNIT_TEST_FIXTURE(SdPNGExportTest, testNoAntiAliasExport)
+{
+#ifdef MACOSX
+// See comment in testTdf155048
+#else
+ loadFromFile(u"svg/tdf162259.svg");
+
+ auto xGraphicExporter = drawing::GraphicExportFilter::create(getComponentContext());
+ CPPUNIT_ASSERT(xGraphicExporter);
+
+ auto xSupplier = mxComponent.queryThrow<css::drawing::XDrawPagesSupplier>();
+ auto xPage = xSupplier->getDrawPages()->getByIndex(0).queryThrow<css::lang::XComponent>();
+ xGraphicExporter->setSourceDocument(xPage);
+
+ // 101 x 151 is current width x height ratio of the loaded SVG. FIXME: it should be 100 x 150.
+ css::uno::Sequence<css::beans::PropertyValue> aFilterData{
+ comphelper::makePropertyValue(u"PixelWidth"_ustr, sal_Int32(101)),
+ comphelper::makePropertyValue(u"PixelHeight"_ustr, sal_Int32(151)),
+ comphelper::makePropertyValue(u"AntiAliasing"_ustr, false),
+ };
+
+ css::uno::Sequence<css::beans::PropertyValue> aDescriptor{
+ comphelper::makePropertyValue(u"URL"_ustr, maTempFile.GetURL()),
+ comphelper::makePropertyValue(u"FilterName"_ustr, u"PNG"_ustr),
+ comphelper::makePropertyValue(u"FilterData"_ustr, aFilterData)
+ };
+
+ xGraphicExporter->filter(aDescriptor);
+ BitmapEx bmp = vcl::PngImageReader(*maTempFile.GetStream(StreamMode::READ)).read();
+
+ std::set<Color> colors;
+
+ for (tools::Long x = 0; x < bmp.GetSizePixel().Width(); ++x)
+ for (tools::Long y = 0; y < bmp.GetSizePixel().Height(); ++y)
+ colors.insert(bmp.GetPixelColor(x, y));
+
+ // With AntiAliasing = false, the text must be rendered aliased
+ CPPUNIT_ASSERT_EQUAL(size_t(2), colors.size());
+#endif
+}
+
CPPUNIT_TEST_FIXTURE(SdPNGExportTest, testTdf162259)
{
// The top X in the SVG, having no skew, used a fast rendering path, and was output much wider