cppcanvas/source/mtfrenderer/emfplus.cxx | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-)
New commits: commit 38fc2a552a79adc7945eab9dc4e534653cdad553 Author: Radek Doulik <r...@novell.com> Date: Fri Mar 15 14:48:05 2013 +0100 implemented EmfPlusRecordTypeFillEllipse record (cherry picked from commit cf6b2f0ecef2c23c24114ca1a1609a4a81ade8a1) Conflicts: cppcanvas/source/mtfrenderer/emfplus.cxx Change-Id: Id9362d05ddae2066f2fa289640f447393d7cda84 Reviewed-on: https://gerrit.libreoffice.org/2749 Reviewed-by: Fridrich Strba <fridr...@documentfoundation.org> Tested-by: Fridrich Strba <fridr...@documentfoundation.org> (cherry picked from commit f820b5b5b97fff0393a2c346f579384e63f7c2db) Reviewed-on: https://gerrit.libreoffice.org/2750 Reviewed-by: Michael Meeks <michael.me...@suse.com> Reviewed-by: Joren De Cuyper <joren.libreoff...@telenet.be> diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx index 1dbbd82..383ce31 100644 --- a/cppcanvas/source/mtfrenderer/emfplus.cxx +++ b/cppcanvas/source/mtfrenderer/emfplus.cxx @@ -53,6 +53,8 @@ #define EmfPlusRecordTypeFillRects 16394 #define EmfPlusRecordTypeFillPolygon 16396 #define EmfPlusRecordTypeDrawLines 16397 +#define EmfPlusRecordTypeFillEllipse 16398 +#define EmfPlusRecordTypeDrawEllipse 16399 #define EmfPlusRecordTypeFillPie 16400 #define EmfPlusRecordTypeFillPath 16404 #define EmfPlusRecordTypeDrawPath 16405 @@ -1289,7 +1291,31 @@ namespace cppcanvas EMFP_DEBUG (printf ("EMF+ FillPath slot: %u\n", (unsigned int)index)); - EMFPPlusFillPolygon (((EMFPPath*) aObjects [index])->GetPolygon (*this), rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor); + EMFPPlusFillPolygon (((EMFPPath*) aObjects [index])->GetPolygon (*this), rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor); + } + break; + case EmfPlusRecordTypeFillEllipse: + { + sal_uInt32 index = flags & 0xff; + sal_uInt32 brushIndexOrColor; + + rMF >> brushIndexOrColor; + + EMFP_DEBUG (printf ("EMF+ FillEllipse slot: %u\n", (unsigned int)index)); + + float dx, dy, dw, dh; + + ReadRectangle (rMF, dx, dy, dw, dh, flags & 0x4000); + + EMFP_DEBUG (printf ("EMF+ RectData: %f,%f %fx%f\n", dx, dy, dw, dh)); + + B2DPoint mappedCenter (Map (dx + dw/2, dy + dh/2)); + B2DSize mappedSize( MapSize (dw/2, dh/2)); + + ::basegfx::B2DPolyPolygon polyPolygon( ::basegfx::B2DPolygon( ::basegfx::tools::createPolygonFromEllipse( mappedCenter, mappedSize.getX (), mappedSize.getY () ) ) ); + + EMFPPlusFillPolygon( polyPolygon, + rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor ); } break; case EmfPlusRecordTypeFillRects: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits