From 2c9d31b48de5e1d7e57637f77654aa50eca048d1 Mon Sep 17 00:00:00 2001 From: Radek Doulik Date: Wed, 27 Jul 2011 16:27:25 +0200 Subject: added MultiplyWorldTransform record type --- cppcanvas/source/mtfrenderer/emfplus.cxx | 23 +++++++++++++++++++++++ cppcanvas/source/mtfrenderer/implrenderer.cxx | 2 ++ 2 files changed, 25 insertions(+) (limited to 'cppcanvas') diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx index 6b88b022a98a..30090a96cf14 100644 --- a/cppcanvas/source/mtfrenderer/emfplus.cxx +++ b/cppcanvas/source/mtfrenderer/emfplus.cxx @@ -73,6 +73,7 @@ #define EmfPlusRecordTypeSave 16421 #define EmfPlusRecordTypeSetWorldTransform 16426 #define EmfPlusRecordTypeResetWorldTransform 16427 +#define EmfPlusRecordTypeMultiplyWorldTransform 16428 #define EmfPlusRecordTypeSetPageTransform 16432 #define EmfPlusRecordTypeSetClipPath 16435 #define EmfPlusRecordTypeSetClipRegion 16436 @@ -1491,6 +1492,28 @@ namespace cppcanvas EMFP_DEBUG (printf ("EMF+ ResetWorldTransform\n")); aWorldTransform.SetIdentity (); break; + case EmfPlusRecordTypeMultiplyWorldTransform: { + EMFP_DEBUG (printf ("EMF+ MultiplyWorldTransform\n")); + XForm transform; + rMF >> transform; + + EMFP_DEBUG (printf ("EMF+\tmatrix m11: %f m12: %f\nEMF+\tm21: %f m22: %f\nEMF+\tdx: %f dy: %f\n", + transform.eM11, transform.eM12, + transform.eM21, transform.eM22, + transform.eDx, transform.eDy)); + + if (flags & 0x2000) // post multiply + aWorldTransform.Multiply (transform); + else { // pre multiply + transform.Multiply (aWorldTransform); + aWorldTransform.Set (transform); + } + EMFP_DEBUG (printf ("EMF+\tresult world matrix m11: %f m12: %f\nEMF+\tm21: %f m22: %f\nEMF+\tdx: %f dy: %f\n", + aWorldTransform.eM11, aWorldTransform.eM12, + aWorldTransform.eM21, aWorldTransform.eM22, + aWorldTransform.eDx, aWorldTransform.eDy)); + break; + } case EmfPlusRecordTypeSetClipPath: { EMFP_DEBUG (printf ("EMF+ SetClipPath\n")); diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx index e67b87a4de7e..46f3e404ea8c 100644 --- a/cppcanvas/source/mtfrenderer/implrenderer.cxx +++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx @@ -1336,6 +1336,8 @@ namespace cppcanvas // - SetFont to process font metric specific actions pCurrAct->Execute( &rVDev ); + EMFP_DEBUG(printf("MTF\trecord type: %x\n", pCurrAct->GetType())); + switch( pCurrAct->GetType() ) { // ------------------------------------------------------------ -- cgit