Add world matrix stack

pull/1/head
Timothy Pearson 12 years ago
parent e9fa6f1ca5
commit 5fa60a7aba

@ -847,6 +847,7 @@ TQt3CairoPaintDevice::TQt3CairoPaintDevice( cairo_surface_t *cairosurface )
: TQPaintDevice( TQInternal::Picture | TQInternal::ExternalDevice ), m_intermediateSurface(NULL), m_painter(NULL), m_devicePainter(NULL)
{
m_surface = cairosurface;
m_worldMatrixStack.setAutoDelete(TRUE);
}
/*!
@ -1174,6 +1175,7 @@ bool TQt3CairoPaintDevice::cmd( int c, TQPainter *pt, TQPDevCmdParam *p )
setCairoTransformations();
m_clipRegion = TQImage();
m_clipRegionEnabled = false;
m_worldMatrixStack.clear();
}
break;
case PdcEnd:
@ -1386,16 +1388,28 @@ bool TQt3CairoPaintDevice::cmd( int c, TQPainter *pt, TQPDevCmdParam *p )
}
}
break;
#if 0
#ifndef QT_NO_TRANSFORMATIONS
case PdcSaveWMatrix:
painter->saveWorldMatrix();
if (p) {
const TQWMatrix* tqt3matrix = p[0].matrix;
m_worldMatrixStack.push(new TQWMatrix(*tqt3matrix));
}
break;
case PdcRestoreWMatrix:
painter->restoreWorldMatrix();
if (p) {
if (!m_worldMatrixStack.isEmpty()) {
TQWMatrix* matrix = m_worldMatrixStack.pop();
// Set world matrix
TQPDevCmdParam param[2];
int command = PdcSetWMatrix;
param[0].matrix = matrix;
param[1].ival = 0;
cmd(command, pt, param);
delete matrix;
}
}
break;
#endif
#endif
case PdcSetClip:
if ((p) && (m_painter)) {
m_clipRegionEnabled = p[0].ival;

@ -29,11 +29,14 @@
#include "ntqbrush.h"
#include "ntqfont.h"
#include "ntqimage.h"
#include "ntqptrstack.h"
#include "ntqpainter.h"
#include <cairo.h>
#include <pango/pangocairo.h>
typedef TQPtrStack<TQWMatrix> TQWMatrixStack;
class Q_EXPORT TQt3CairoPaintDevice : public TQPaintDevice // picture class
{
public:
@ -85,6 +88,8 @@ class Q_EXPORT TQt3CairoPaintDevice : public TQPaintDevice // picture class
TQFont m_font;
TQImage m_clipRegion;
bool m_clipRegionEnabled;
TQWMatrixStack m_worldMatrixStack;
};
#endif // TDEQT4PAINTER_H

Loading…
Cancel
Save