tdf#113050 sdext.pdfimport: Plumb tiling pattern fill to pdfiprocessor
Change-Id: I68459834fd903d31c9b2e57d637265dd67da4f56
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163565
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/sdext/qa/unit/pdfimport.cxx b/sdext/qa/unit/pdfimport.cxx
index 377d08d..18988d6 100644
--- a/sdext/qa/unit/pdfimport.cxx
+++ b/sdext/qa/unit/pdfimport.cxx
@@ -428,6 +428,14 @@ namespace
{
}
virtual void tilingPatternFill(int, int, int, int,
double, double,
int,
css::geometry::AffineMatrix2D&,
const css::uno::Sequence<css::beans::PropertyValue>&) override
{
}
typedef std::unordered_map<sal_Int32,FontAttributes> IdToFontMap;
typedef std::unordered_map<FontAttributes,sal_Int32,FontAttrHash> FontToIdMap;
diff --git a/sdext/source/pdfimport/inc/contentsink.hxx b/sdext/source/pdfimport/inc/contentsink.hxx
index 44f609c..5354e43 100644
--- a/sdext/source/pdfimport/inc/contentsink.hxx
+++ b/sdext/source/pdfimport/inc/contentsink.hxx
@@ -171,6 +171,11 @@ namespace pdfi
css::beans::PropertyValue>& xImage,
const css::uno::Sequence<
css::beans::PropertyValue>& xMask) = 0;
virtual void tilingPatternFill(int nX0, int nY0, int nX1, int nY1,
double nxStep, double nyStep,
int nPaintType,
css::geometry::AffineMatrix2D& rMat,
const css::uno::Sequence<css::beans::PropertyValue>& xTile) = 0;
};
typedef std::shared_ptr<ContentSink> ContentSinkSharedPtr;
diff --git a/sdext/source/pdfimport/inc/pdfiprocessor.hxx b/sdext/source/pdfimport/inc/pdfiprocessor.hxx
index 3fdc146..40cdbfd 100644
--- a/sdext/source/pdfimport/inc/pdfiprocessor.hxx
+++ b/sdext/source/pdfimport/inc/pdfiprocessor.hxx
@@ -150,6 +150,12 @@ namespace pdfi
const css::uno::Sequence<
css::beans::PropertyValue>& xMask) override;
virtual void tilingPatternFill(int nX0, int nY0, int nX1, int nY1,
double nxStep, double nyStep,
int nPaintType,
css::geometry::AffineMatrix2D& rMat,
const css::uno::Sequence<css::beans::PropertyValue>& xTile) override;
void startIndicator( const OUString& rText );
void endIndicator();
diff --git a/sdext/source/pdfimport/tree/pdfiprocessor.cxx b/sdext/source/pdfimport/tree/pdfiprocessor.cxx
index 44485f4..cf65223 100644
--- a/sdext/source/pdfimport/tree/pdfiprocessor.cxx
+++ b/sdext/source/pdfimport/tree/pdfiprocessor.cxx
@@ -383,6 +383,15 @@ void PDFIProcessor::drawAlphaMaskedImage(const uno::Sequence<beans::PropertyValu
}
void PDFIProcessor::tilingPatternFill(int /*nX0*/, int /*nY0*/, int /*nX1*/, int /*nY1*/,
double /*nxStep*/, double /*nyStep*/,
int /* nPaintType */,
css::geometry::AffineMatrix2D& /*rMat*/,
const css::uno::Sequence<css::beans::PropertyValue>& /*xTile*/)
{
// TODO
}
void PDFIProcessor::strokePath( const uno::Reference< rendering::XPolyPolygon2D >& rPath )
{
basegfx::B2DPolyPolygon aPoly=basegfx::unotools::b2DPolyPolygonFromXPolyPolygon2D(rPath);
diff --git a/sdext/source/pdfimport/wrapper/wrapper.cxx b/sdext/source/pdfimport/wrapper/wrapper.cxx
index 6094bfa..d99103b 100644
--- a/sdext/source/pdfimport/wrapper/wrapper.cxx
+++ b/sdext/source/pdfimport/wrapper/wrapper.cxx
@@ -838,10 +838,13 @@ void LineParser::readTilingPatternFill()
readDouble(aMat.m12);
// The tile is an image with alpha
[[maybe_unused]]const uno::Sequence<beans::PropertyValue> aTile ( readImageImpl() );
(void)aTile; // Unused until later patch
// TODO
// use the parsed data
const uno::Sequence<beans::PropertyValue> aTile ( readImageImpl() );
m_parser.m_pSink->tilingPatternFill( nX0, nY0, nX1, nY1,
nXStep, nYStep,
nPaintType,
aMat,
aTile );
}
void Parser::parseLine( std::string_view aLine )