[PATCH libreoffice-4-0] implemented EmfPlusRecordTypeFillEllipse record

Fridrich Strba (via Code Review) gerrit at gerrit.libreoffice.org
Fri Mar 15 07:01:43 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2749

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/49/2749/1

implemented EmfPlusRecordTypeFillEllipse record

(cherry picked from commit cf6b2f0ecef2c23c24114ca1a1609a4a81ade8a1)

Conflicts:
	cppcanvas/source/mtfrenderer/emfplus.cxx

Change-Id: Id9362d05ddae2066f2fa289640f447393d7cda84
---
M cppcanvas/source/mtfrenderer/emfplus.cxx
1 file changed, 27 insertions(+), 1 deletion(-)



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 @@
 
                         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:

-- 
To view, visit https://gerrit.libreoffice.org/2749
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id9362d05ddae2066f2fa289640f447393d7cda84
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Fridrich Strba <fridrich at documentfoundation.org>
Gerrit-Reviewer: Radek Doulík <rodo at novell.com>



More information about the LibreOffice mailing list