summaryrefslogtreecommitdiff
path: root/sdext/source
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dave@treblig.org>2024-02-18 22:06:02 +0000
committerNoel Grandin <noel.grandin@collabora.co.uk>2024-02-29 08:24:17 +0100
commit4a13e1890e8a0ed81e8fb17009185fa2b15ebff7 (patch)
tree501c258fff1664bc816a51767b8bbcb376a84847 /sdext/source
parentec0b9062dc8dba82509183eb865da55827bde4d5 (diff)
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>
Diffstat (limited to 'sdext/source')
-rw-r--r--sdext/source/pdfimport/inc/contentsink.hxx5
-rw-r--r--sdext/source/pdfimport/inc/pdfiprocessor.hxx6
-rw-r--r--sdext/source/pdfimport/tree/pdfiprocessor.cxx9
-rw-r--r--sdext/source/pdfimport/wrapper/wrapper.cxx11
4 files changed, 27 insertions, 4 deletions
diff --git a/sdext/source/pdfimport/inc/contentsink.hxx b/sdext/source/pdfimport/inc/contentsink.hxx
index 44f609c3caaa..5354e4370f14 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 3fdc146716b3..40cdbfdd48c9 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 44485f4c2525..cf65223f167a 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 6094bfabcbbc..d99103b9867a 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 )