diff options
author | Radek Doulik <rodo@novell.com> | 2011-07-27 16:27:25 +0200 |
---|---|---|
committer | Radek Doulik <rodo@novell.com> | 2011-08-10 22:42:47 +0200 |
commit | 2c9d31b48de5e1d7e57637f77654aa50eca048d1 (patch) | |
tree | e6aec4d6a6de20220f7883144b6411504ed5e25e /cppcanvas | |
parent | bc126204338b0a64062ad3466234b8082684168d (diff) |
added MultiplyWorldTransform record type
Diffstat (limited to 'cppcanvas')
-rw-r--r-- | cppcanvas/source/mtfrenderer/emfplus.cxx | 23 | ||||
-rw-r--r-- | cppcanvas/source/mtfrenderer/implrenderer.cxx | 2 |
2 files changed, 25 insertions, 0 deletions
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() ) { // ------------------------------------------------------------ |