summaryrefslogtreecommitdiff
path: root/cppcanvas
diff options
context:
space:
mode:
authorRadek Doulik <rodo@novell.com>2011-07-27 16:27:25 +0200
committerRadek Doulik <rodo@novell.com>2011-08-10 22:42:47 +0200
commit2c9d31b48de5e1d7e57637f77654aa50eca048d1 (patch)
treee6aec4d6a6de20220f7883144b6411504ed5e25e /cppcanvas
parentbc126204338b0a64062ad3466234b8082684168d (diff)
added MultiplyWorldTransform record type
Diffstat (limited to 'cppcanvas')
-rw-r--r--cppcanvas/source/mtfrenderer/emfplus.cxx23
-rw-r--r--cppcanvas/source/mtfrenderer/implrenderer.cxx2
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() )
{
// ------------------------------------------------------------