[webkit-changes] cvs commit: WebCore/kwq KWQPainter.h KWQPainter.mm
KWQRenderTreeDebug.cpp
Eric
eseidel at opensource.apple.com
Sun Nov 27 03:02:38 PST 2005
eseidel 05/11/27 03:02:37
Modified: . ChangeLog
kcanvas KCanvasItem.cpp KCanvasTreeDebug.cpp
KCanvasTreeDebug.h
kcanvas/device KRenderingPaintServerGradient.cpp
kcanvas/device/quartz KCanvasFilterQuartz.mm
KCanvasItemQuartz.mm KCanvasResourcesQuartz.mm
KRenderingPaintServerGradientQuartz.mm
KRenderingPaintServerQuartz.mm
khtml/rendering render_canvas.cpp render_canvas.h
render_style.cpp
ksvg2/css SVGRenderStyle.cpp
ksvg2/misc KCanvasRenderingStyle.cpp KCanvasRenderingStyle.h
ksvg2/svg SVGAElementImpl.cpp SVGClipPathElementImpl.cpp
SVGFEBlendElementImpl.cpp
SVGFEColorMatrixElementImpl.cpp
SVGFEComponentTransferElementImpl.cpp
SVGFECompositeElementImpl.cpp
SVGFEFloodElementImpl.cpp
SVGFEGaussianBlurElementImpl.cpp
SVGFEImageElementImpl.cpp SVGFEMergeElementImpl.cpp
SVGFEOffsetElementImpl.cpp SVGFETileElementImpl.cpp
SVGFETurbulenceElementImpl.cpp
SVGFilterElementImpl.cpp SVGGElementImpl.cpp
SVGGradientElementImpl.cpp SVGImageElementImpl.cpp
SVGMarkerElementImpl.cpp SVGPatternElementImpl.cpp
SVGSVGElementImpl.cpp SVGStyledElementImpl.cpp
SVGSwitchElementImpl.cpp SVGUseElementImpl.cpp
kwq KWQPainter.h KWQPainter.mm KWQRenderTreeDebug.cpp
Log:
Bug #: 5839
Submitted by: eseidel
Reviewed by: mjs
No additional test cases necessary, fixes text dumps for all tests.
Fixes included in this patch:
- Closes all known leaks in WebKit+SVG
- adds static KRenderingDevice *QPainter::renderingDevice()
- removes RenderCanvas::renderingDevice()
- removed RenderCanvas usage from KCanvasRenderingStyle
Bug: http://bugzilla.opendarwin.org/show_bug.cgi?id=5839
* kcanvas/KCanvasItem.cpp:
(RenderPath::RenderPath): remove canvas from KCanvasRenderingStyle
(RenderPath::~RenderPath): use QPainter::renderingDevice()
(RenderPath::fillContains): remove unnecessary code.
(RenderPath::strokeContains): remove unnecessary code.
(RenderPath::relativeBBox): remove unnecessary code.
(RenderPath::setupForDraw): remove unnecessary code.
(RenderPath::changePath): added ASSERT
* kcanvas/KCanvasTreeDebug.cpp:
(operator<<): print absolute bbox instead of relative
(getTagName): removed KSVG::
(writeRenderResources): added
* kcanvas/KCanvasTreeDebug.h: added writeRenderResources
* kcanvas/device/KRenderingPaintServerGradient.cpp:
(operator<<): style update
* kcanvas/device/quartz/KCanvasFilterQuartz.mm:
(KCanvasFilterQuartz::applyFilter): delete filter context
* kcanvas/device/quartz/KCanvasItemQuartz.mm:
(KCanvasItemQuartz::paint): only push context if necessary
* kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
(KCanvasContainerQuartz::paint): only push context if necessary
* kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
(drawShadingWithStyle): use QPainter
* kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
(KRenderingPaintServerSolidQuartz::draw): spacing cleanup
* khtml/rendering/render_canvas.cpp: remove renderingDevice()
(RenderCanvas::RenderCanvas): remove m_renderingDevice
(RenderCanvas::~RenderCanvas): remove m_renderingDevice
* khtml/rendering/render_canvas.h:
* khtml/rendering/render_style.cpp:
(RenderStyle::~RenderStyle): delete SVGRenderStyle
* ksvg2/css/SVGRenderStyle.cpp:
(SVGRenderStyle::~SVGRenderStyle): added
* ksvg2/misc/KCanvasRenderingStyle.cpp:
(KCanvasRenderingStyle::KCanvasRenderingStyle): remove canvas arg
(KCanvasRenderingStyle::updateFill): use QPainter
(KCanvasRenderingStyle::updateStroke): use QPainter
* ksvg2/misc/KCanvasRenderingStyle.h:
* ksvg2/svg/SVGAElementImpl.cpp:
(SVGAElementImpl::createRenderer): use QPainter
* ksvg2/svg/SVGClipPathElementImpl.cpp:
(SVGClipPathElementImpl::~SVGClipPathElementImpl): delete resource
(SVGClipPathElementImpl::canvasResource): use QPainter
* ksvg2/svg/SVGFEBlendElementImpl.cpp:
(SVGFEBlendElementImpl::~SVGFEBlendElementImpl): delete resource
(SVGFEBlendElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFEColorMatrixElementImpl.cpp:
(SVGFEColorMatrixElementImpl::~SVGFEColorMatrixElementImpl):
(SVGFEColorMatrixElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFEComponentTransferElementImpl.cpp:
(SVGFEComponentTransferElementImpl::~SVGFEComponentTransferElementImpl):
(SVGFEComponentTransferElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFECompositeElementImpl.cpp:
(SVGFECompositeElementImpl::~SVGFECompositeElementImpl): delete rsc
(SVGFECompositeElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFEFloodElementImpl.cpp:
(SVGFEFloodElementImpl::~SVGFEFloodElementImpl): delete resource
(SVGFEFloodElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp:
(SVGFEGaussianBlurElementImpl::~SVGFEGaussianBlurElementImpl):
(SVGFEGaussianBlurElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFEImageElementImpl.cpp:
(SVGFEImageElementImpl::~SVGFEImageElementImpl): delete resource
(SVGFEImageElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFEMergeElementImpl.cpp:
(SVGFEMergeElementImpl::~SVGFEMergeElementImpl): delete resource
(SVGFEMergeElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFEOffsetElementImpl.cpp:
(SVGFEOffsetElementImpl::~SVGFEOffsetElementImpl): delete resource
(SVGFEOffsetElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFETileElementImpl.cpp:
(SVGFETileElementImpl::~SVGFETileElementImpl): delete resource
(SVGFETileElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFETurbulenceElementImpl.cpp:
(SVGFETurbulenceElementImpl::~SVGFETurbulenceElementImpl):
(SVGFETurbulenceElementImpl::filterEffect): use QPainter
* ksvg2/svg/SVGFilterElementImpl.cpp:
(SVGFilterElementImpl::~SVGFilterElementImpl): delete resource
(SVGFilterElementImpl::canvasResource): use QPainter
* ksvg2/svg/SVGGElementImpl.cpp:
(SVGGElementImpl::createRenderer): use QPainter
* ksvg2/svg/SVGGradientElementImpl.cpp:
(SVGGradientElementImpl::~SVGGradientElementImpl): delete resource
(SVGGradientElementImpl::canvasResource): use QPainter
(SVGGradientElementImpl::rebuildStops): deref style
* ksvg2/svg/SVGImageElementImpl.cpp:
(SVGImageElementImpl::createRenderer): use QPainter
(SVGImageElementImpl::notifyFinished): use QPainter
* ksvg2/svg/SVGMarkerElementImpl.cpp:
(SVGMarkerElementImpl::~SVGMarkerElementImpl): delete resource
(SVGMarkerElementImpl::canvasResource): use QPainter
(SVGMarkerElementImpl::createRenderer): use QPainter
* ksvg2/svg/SVGPatternElementImpl.cpp:
(SVGPatternElementImpl::~SVGPatternElementImpl): delete resource
(SVGPatternElementImpl::drawPatternContentIntoTile): use QPainter
(SVGPatternElementImpl::createRenderer): use QPainter
(SVGPatternElementImpl::canvasResource): use QPainter
* ksvg2/svg/SVGSVGElementImpl.cpp:
(SVGSVGElementImpl::createRenderer): use QPainter
* ksvg2/svg/SVGStyledElementImpl.cpp:
(SVGStyledElementImpl::createRenderer): use QPainter
(SVGStyledElementImpl::updateCanvasItem): use QPainter
(SVGStyledElementImpl::pushAttributeContext): use QPainter
* ksvg2/svg/SVGSwitchElementImpl.cpp:
(SVGSwitchElementImpl::createRenderer): use QPainter
* ksvg2/svg/SVGUseElementImpl.cpp:
(SVGUseElementImpl::createRenderer): use QPainter
* kwq/KWQPainter.h:
* kwq/KWQPainter.mm:
(QPainter::renderingDevice): added
* kwq/KWQRenderTreeDebug.cpp:
(externalRepresentation): call writeRenderResources
Revision Changes Path
1.408 +126 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.407
retrieving revision 1.408
diff -u -r1.407 -r1.408
--- ChangeLog 27 Nov 2005 07:54:46 -0000 1.407
+++ ChangeLog 27 Nov 2005 11:02:10 -0000 1.408
@@ -1,3 +1,129 @@
+2005-11-26 Eric Seidel <eseidel at apple.com>
+
+ Reviewed by mjs.
+
+ No additional test cases necessary, fixes text dumps for all tests.
+
+ Fixes included in this patch:
+ - Closes all known leaks in WebKit+SVG
+ - adds static KRenderingDevice *QPainter::renderingDevice()
+ - removes RenderCanvas::renderingDevice()
+ - removed RenderCanvas usage from KCanvasRenderingStyle
+ Bug: http://bugzilla.opendarwin.org/show_bug.cgi?id=5839
+
+ * kcanvas/KCanvasItem.cpp:
+ (RenderPath::RenderPath): remove canvas from KCanvasRenderingStyle
+ (RenderPath::~RenderPath): use QPainter::renderingDevice()
+ (RenderPath::fillContains): remove unnecessary code.
+ (RenderPath::strokeContains): remove unnecessary code.
+ (RenderPath::relativeBBox): remove unnecessary code.
+ (RenderPath::setupForDraw): remove unnecessary code.
+ (RenderPath::changePath): added ASSERT
+ * kcanvas/KCanvasTreeDebug.cpp:
+ (operator<<): print absolute bbox instead of relative
+ (getTagName): removed KSVG::
+ (writeRenderResources): added
+ * kcanvas/KCanvasTreeDebug.h: added writeRenderResources
+ * kcanvas/device/KRenderingPaintServerGradient.cpp:
+ (operator<<): style update
+ * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
+ (KCanvasFilterQuartz::applyFilter): delete filter context
+ * kcanvas/device/quartz/KCanvasItemQuartz.mm:
+ (KCanvasItemQuartz::paint): only push context if necessary
+ * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
+ (KCanvasContainerQuartz::paint): only push context if necessary
+ * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
+ (drawShadingWithStyle): use QPainter
+ * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
+ (KRenderingPaintServerSolidQuartz::draw): spacing cleanup
+ * khtml/rendering/render_canvas.cpp: remove renderingDevice()
+ (RenderCanvas::RenderCanvas): remove m_renderingDevice
+ (RenderCanvas::~RenderCanvas): remove m_renderingDevice
+ * khtml/rendering/render_canvas.h:
+ * khtml/rendering/render_style.cpp:
+ (RenderStyle::~RenderStyle): delete SVGRenderStyle
+ * ksvg2/css/SVGRenderStyle.cpp:
+ (SVGRenderStyle::~SVGRenderStyle): added
+ * ksvg2/misc/KCanvasRenderingStyle.cpp:
+ (KCanvasRenderingStyle::KCanvasRenderingStyle): remove canvas arg
+ (KCanvasRenderingStyle::updateFill): use QPainter
+ (KCanvasRenderingStyle::updateStroke): use QPainter
+ * ksvg2/misc/KCanvasRenderingStyle.h:
+ * ksvg2/svg/SVGAElementImpl.cpp:
+ (SVGAElementImpl::createRenderer): use QPainter
+ * ksvg2/svg/SVGClipPathElementImpl.cpp:
+ (SVGClipPathElementImpl::~SVGClipPathElementImpl): delete resource
+ (SVGClipPathElementImpl::canvasResource): use QPainter
+ * ksvg2/svg/SVGFEBlendElementImpl.cpp:
+ (SVGFEBlendElementImpl::~SVGFEBlendElementImpl): delete resource
+ (SVGFEBlendElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFEColorMatrixElementImpl.cpp:
+ (SVGFEColorMatrixElementImpl::~SVGFEColorMatrixElementImpl):
+ (SVGFEColorMatrixElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFEComponentTransferElementImpl.cpp:
+ (SVGFEComponentTransferElementImpl::~SVGFEComponentTransferElementImpl):
+ (SVGFEComponentTransferElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFECompositeElementImpl.cpp:
+ (SVGFECompositeElementImpl::~SVGFECompositeElementImpl): delete rsc
+ (SVGFECompositeElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFEFloodElementImpl.cpp:
+ (SVGFEFloodElementImpl::~SVGFEFloodElementImpl): delete resource
+ (SVGFEFloodElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp:
+ (SVGFEGaussianBlurElementImpl::~SVGFEGaussianBlurElementImpl):
+ (SVGFEGaussianBlurElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFEImageElementImpl.cpp:
+ (SVGFEImageElementImpl::~SVGFEImageElementImpl): delete resource
+ (SVGFEImageElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFEMergeElementImpl.cpp:
+ (SVGFEMergeElementImpl::~SVGFEMergeElementImpl): delete resource
+ (SVGFEMergeElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFEOffsetElementImpl.cpp:
+ (SVGFEOffsetElementImpl::~SVGFEOffsetElementImpl): delete resource
+ (SVGFEOffsetElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFETileElementImpl.cpp:
+ (SVGFETileElementImpl::~SVGFETileElementImpl): delete resource
+ (SVGFETileElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFETurbulenceElementImpl.cpp:
+ (SVGFETurbulenceElementImpl::~SVGFETurbulenceElementImpl):
+ (SVGFETurbulenceElementImpl::filterEffect): use QPainter
+ * ksvg2/svg/SVGFilterElementImpl.cpp:
+ (SVGFilterElementImpl::~SVGFilterElementImpl): delete resource
+ (SVGFilterElementImpl::canvasResource): use QPainter
+ * ksvg2/svg/SVGGElementImpl.cpp:
+ (SVGGElementImpl::createRenderer): use QPainter
+ * ksvg2/svg/SVGGradientElementImpl.cpp:
+ (SVGGradientElementImpl::~SVGGradientElementImpl): delete resource
+ (SVGGradientElementImpl::canvasResource): use QPainter
+ (SVGGradientElementImpl::rebuildStops): deref style
+ * ksvg2/svg/SVGImageElementImpl.cpp:
+ (SVGImageElementImpl::createRenderer): use QPainter
+ (SVGImageElementImpl::notifyFinished): use QPainter
+ * ksvg2/svg/SVGMarkerElementImpl.cpp:
+ (SVGMarkerElementImpl::~SVGMarkerElementImpl): delete resource
+ (SVGMarkerElementImpl::canvasResource): use QPainter
+ (SVGMarkerElementImpl::createRenderer): use QPainter
+ * ksvg2/svg/SVGPatternElementImpl.cpp:
+ (SVGPatternElementImpl::~SVGPatternElementImpl): delete resource
+ (SVGPatternElementImpl::drawPatternContentIntoTile): use QPainter
+ (SVGPatternElementImpl::createRenderer): use QPainter
+ (SVGPatternElementImpl::canvasResource): use QPainter
+ * ksvg2/svg/SVGSVGElementImpl.cpp:
+ (SVGSVGElementImpl::createRenderer): use QPainter
+ * ksvg2/svg/SVGStyledElementImpl.cpp:
+ (SVGStyledElementImpl::createRenderer): use QPainter
+ (SVGStyledElementImpl::updateCanvasItem): use QPainter
+ (SVGStyledElementImpl::pushAttributeContext): use QPainter
+ * ksvg2/svg/SVGSwitchElementImpl.cpp:
+ (SVGSwitchElementImpl::createRenderer): use QPainter
+ * ksvg2/svg/SVGUseElementImpl.cpp:
+ (SVGUseElementImpl::createRenderer): use QPainter
+ * kwq/KWQPainter.h:
+ * kwq/KWQPainter.mm:
+ (QPainter::renderingDevice): added
+ * kwq/KWQRenderTreeDebug.cpp:
+ (externalRepresentation): call writeRenderResources
+
2005-11-26 Maciej Stachowiak <mjs at apple.com>
Rubber stamped by Eric.
1.9 +13 -14 SVGSupport/kcanvas/KCanvasItem.cpp
Index: KCanvasItem.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/KCanvasItem.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- KCanvasItem.cpp 23 Nov 2005 15:14:05 -0000 1.8
+++ KCanvasItem.cpp 27 Nov 2005 11:02:15 -0000 1.9
@@ -24,6 +24,7 @@
#include "config.h"
#include <qrect.h>
#include <kdebug.h>
+#include <kxmlcore/Assertions.h>
#include "kcanvas/KCanvas.h"
#include "kcanvas/RenderPath.h"
@@ -61,13 +62,13 @@
RenderPath::RenderPath(khtml::RenderStyle *style, KSVG::SVGStyledElementImpl *node) : RenderObject((DOM::NodeImpl *)node), d(new Private())
{
Q_ASSERT(style != 0);
- d->style = new KSVG::KCanvasRenderingStyle(canvas(), style);
+ d->style = new KSVG::KCanvasRenderingStyle(style);
}
RenderPath::~RenderPath()
{
- if(d->path && canvas() && canvas()->renderingDevice())
- canvas()->renderingDevice()->deletePath(d->path);
+ if(d->path)
+ QPainter::renderingDevice()->deletePath(d->path);
delete d;
}
@@ -89,7 +90,7 @@
bool RenderPath::fillContains(const QPoint &p) const
{
- if(d->path && d->style && canvas() && canvas()->renderingDevice())
+ if(d->path && d->style)
return hitsPath(p, true);
return false;
@@ -97,7 +98,7 @@
bool RenderPath::strokeContains(const QPoint &p) const
{
- if(d->path && d->style && canvas() && canvas()->renderingDevice())
+ if(d->path && d->style)
return hitsPath(p, false);
return false;
@@ -107,7 +108,7 @@
{
QRect result;
- if (!d->path || !canvas() || !canvas()->renderingDevice())
+ if (!d->path)
return result;
if (includeStroke) {
@@ -125,7 +126,7 @@
void RenderPath::setupForDraw() const
{
- if(d->path && d->style && canvas() && canvas()->renderingDevice())
+ if(d->path && d->style)
{
if(d->style->fillPainter() && d->style->fillPainter()->paintServer())
d->style->fillPainter()->paintServer()->setActiveClient(this);
@@ -137,14 +138,12 @@
void RenderPath::changePath(KCanvasUserData newPath)
{
- if(canvas() && canvas()->renderingDevice())
- {
- canvas()->renderingDevice()->setCurrentPath(newPath);
- if (d->path)
- canvas()->renderingDevice()->deletePath(d->path);
+ ASSERT(newPath);
+ QPainter::renderingDevice()->setCurrentPath(newPath);
+ if (d->path)
+ QPainter::renderingDevice()->deletePath(d->path);
- d->path = newPath;
- }
+ d->path = newPath;
}
KCanvasUserData RenderPath::path() const
1.10 +32 -4 SVGSupport/kcanvas/KCanvasTreeDebug.cpp
Index: KCanvasTreeDebug.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/KCanvasTreeDebug.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- KCanvasTreeDebug.cpp 23 Nov 2005 15:14:06 -0000 1.9
+++ KCanvasTreeDebug.cpp 27 Nov 2005 11:02:15 -0000 1.10
@@ -46,10 +46,14 @@
#include "KWQRenderTreeDebug.h"
#endif
+#include <kxmlcore/Assertions.h>
+
#include "SVGRenderStyle.h"
#include <ksvg2/svg/SVGStyledElementImpl.h>
#include <kdom/DOMString.h>
+#include "dom_atomicstring.h"
+#include "HTMLNames.h"
#include <qtextstream.h>
@@ -247,18 +251,18 @@
static QTextStream &operator<<(QTextStream &ts, const RenderPath &o)
{
- ts << " " << o.relativeBBox();
+ ts << " " << o.absoluteTransform().mapRect(o.relativeBBox());
writeStyle(ts, o);
- ts << " [data=\"" << o.canvas()->renderingDevice()->stringForPath(o.path()) << "\"]";
+ ts << " [data=\"" << QPainter::renderingDevice()->stringForPath(o.path()) << "\"]";
return ts;
}
static QTextStream &operator<<(QTextStream &ts, const KCanvasContainer &o)
{
- ts << " " << o.relativeBBox();
+ ts << " " << o.absoluteTransform().mapRect(o.relativeBBox());
writeStyle(ts, o);
@@ -267,7 +271,7 @@
static QString getTagName(void *node)
{
- KSVG::SVGStyledElementImpl *elem = static_cast<KSVG::SVGStyledElementImpl *>(node);
+ SVGStyledElementImpl *elem = static_cast<SVGStyledElementImpl *>(node);
if (elem)
return KDOM::DOMString(elem->nodeName()).qstring();
return QString();
@@ -304,6 +308,30 @@
ts << path << endl;
}
+void writeRenderResources(QTextStream &ts, KDOM::NodeImpl *parent)
+{
+ ASSERT(parent);
+ KDOM::NodeImpl *node = parent;
+ do {
+ if (!node->isSVGElement())
+ continue;
+ SVGElementImpl *svgElement = static_cast<SVGElementImpl *>(node);
+ if (!svgElement->isStyled())
+ continue;
+
+ SVGStyledElementImpl *styled = static_cast<SVGStyledElementImpl *>(svgElement);
+ KCanvasResource *resource = styled->canvasResource();
+ if (!resource)
+ continue;
+
+ QString elementId = svgElement->getAttribute(DOM::HTMLNames::idAttr).qstring();
+ if (resource->isPaintServer())
+ ts << "KRenderingPaintServer {id=\"" << elementId << "\" " << *static_cast<KRenderingPaintServer *>(resource) << "}" << endl;
+ else
+ ts << "KCanvasResource {id=\"" << elementId << "\" " << *resource << "}" << endl;
+ } while ((node = node->traverseNextNode(parent)));
+}
+
QTextStream &operator<<(QTextStream &ts, const QStringList &l)
{
ts << "[";
1.5 +5 -0 SVGSupport/kcanvas/KCanvasTreeDebug.h
Index: KCanvasTreeDebug.h
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/KCanvasTreeDebug.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- KCanvasTreeDebug.h 21 Nov 2005 08:29:11 -0000 1.4
+++ KCanvasTreeDebug.h 27 Nov 2005 11:02:15 -0000 1.5
@@ -38,9 +38,14 @@
class RenderPath;
class KCanvasContainer;
+namespace KDOM {
+ class NodeImpl;
+}
+
// functions used by the main KWQRenderTreeDebug code
void write(QTextStream &ts, const KCanvasContainer &container, int indent = 0);
void write(QTextStream &ts, const RenderPath &path, int indent = 0);
+void writeRenderResources(QTextStream &ts, KDOM::NodeImpl *parent);
// helper operators defined used in various classes to dump the render tree.
QTextStream &operator<<(QTextStream &ts, const QMatrix &);
1.9 +2 -1 SVGSupport/kcanvas/device/KRenderingPaintServerGradient.cpp
Index: KRenderingPaintServerGradient.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/KRenderingPaintServerGradient.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- KRenderingPaintServerGradient.cpp 21 Nov 2005 08:29:14 -0000 1.8
+++ KRenderingPaintServerGradient.cpp 27 Nov 2005 11:02:16 -0000 1.9
@@ -81,7 +81,8 @@
{
ts << "(" << (*it)->offset << "," << (*it)->color << ")";
++it;
- if (*it) ts << ", ";
+ if (*it)
+ ts << ", ";
}
ts << "]";
return ts;
1.16 +2 -2 SVGSupport/kcanvas/device/quartz/KCanvasFilterQuartz.mm
Index: KCanvasFilterQuartz.mm
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasFilterQuartz.mm,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- KCanvasFilterQuartz.mm 26 Nov 2005 22:27:05 -0000 1.15
+++ KCanvasFilterQuartz.mm 27 Nov 2005 11:02:16 -0000 1.16
@@ -93,8 +93,8 @@
if (!bbox.isValid() || !KRenderingDeviceQuartz::filtersEnabled() || m_effects.isEmpty())
return;
- // restore the previous context.
- device->popContext();
+ // restore the previous context, delete the filter context.
+ delete (device->popContext());
// actually apply the filter effects
CIImage *inputImage = [CIImage imageWithCGLayer:m_filterCGLayer];
1.11 +11 -3 SVGSupport/kcanvas/device/quartz/KCanvasItemQuartz.mm
Index: KCanvasItemQuartz.mm
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasItemQuartz.mm,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- KCanvasItemQuartz.mm 26 Nov 2005 22:35:43 -0000 1.10
+++ KCanvasItemQuartz.mm 27 Nov 2005 11:02:16 -0000 1.11
@@ -71,8 +71,13 @@
if (paintInfo.p->paintingDisabled() || (paintInfo.phase != PaintActionForeground) || style()->visibility() == khtml::HIDDEN)
return;
- KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(canvas()->renderingDevice());
- quartzDevice->pushContext(paintInfo.p->createRenderingDeviceContext());
+ KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(QPainter::renderingDevice());
+ KRenderingDeviceContext *deviceContext = 0;
+ if (!parent()->isKCanvasContainer()) {
+ // I only need to setup for KCanvas rendering if it hasn't already been done.
+ deviceContext = paintInfo.p->createRenderingDeviceContext();
+ quartzDevice->pushContext(deviceContext);
+ }
paintInfo.p->save();
CGContextRef context = quartzDevice->currentCGContext();
@@ -122,7 +127,10 @@
// restore drawing state
paintInfo.p->restore();
- quartzDevice->popContext();
+ if (!parent()->isKCanvasContainer()) {
+ quartzDevice->popContext();
+ delete deviceContext;
+ }
}
#pragma mark -
1.10 +12 -4 SVGSupport/kcanvas/device/quartz/KCanvasResourcesQuartz.mm
Index: KCanvasResourcesQuartz.mm
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasResourcesQuartz.mm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- KCanvasResourcesQuartz.mm 26 Nov 2005 22:27:05 -0000 1.9
+++ KCanvasResourcesQuartz.mm 27 Nov 2005 11:02:16 -0000 1.10
@@ -108,15 +108,20 @@
if (paintInfo.phase == PaintActionOutline && style()->outlineWidth() && style()->visibility() == khtml::VISIBLE)
paintOutline(paintInfo.p, absoluteX, absoluteY, width(), height(), style());
- if (paintInfo.phase != PaintActionForeground || !drawsContents())
+ if (paintInfo.phase != PaintActionForeground || !drawsContents() || style()->visibility() == khtml::HIDDEN)
return;
KCanvasFilter *filter = getFilterById(document(), style()->svgStyle()->filter().mid(1));
if (!firstChild() && !filter)
return; // Spec: groups w/o children still may render filter content.
- KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(canvas()->renderingDevice());
- quartzDevice->pushContext(paintInfo.p->createRenderingDeviceContext());
+ KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(QPainter::renderingDevice());
+ KRenderingDeviceContext *deviceContext = 0;
+ if (!parent()->isKCanvasContainer()) {
+ // I only need to setup for KCanvas rendering if it hasn't already been done.
+ deviceContext = paintInfo.p->createRenderingDeviceContext();
+ quartzDevice->pushContext(deviceContext);
+ }
paintInfo.p->save();
CGContextRef context = paintInfo.p->currentContext();
@@ -158,7 +163,10 @@
// restore drawing state
paintInfo.p->restore();
- quartzDevice->popContext();
+ if (!parent()->isKCanvasContainer()) {
+ quartzDevice->popContext();
+ delete deviceContext;
+ }
}
void KCanvasContainerQuartz::setViewport(const QRect &viewport)
1.9 +1 -1 SVGSupport/kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm
Index: KRenderingPaintServerGradientQuartz.mm
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- KRenderingPaintServerGradientQuartz.mm 21 Nov 2005 08:29:15 -0000 1.8
+++ KRenderingPaintServerGradientQuartz.mm 27 Nov 2005 11:02:17 -0000 1.9
@@ -42,7 +42,7 @@
// Maybe this should be in a base class instead...
static void drawShadingWithStyle(const KRenderingPaintServerGradient *server, CGShadingRef shading, KSVG::KCanvasRenderingStyle *canvasStyle, KCPaintTargetType type)
{
- KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(server->activeClient()->canvas()->renderingDevice());
+ KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(QPainter::renderingDevice());
CGContextRef context = quartzDevice->currentCGContext();
ASSERT(context != NULL);
1.11 +29 -30 SVGSupport/kcanvas/device/quartz/KRenderingPaintServerQuartz.mm
Index: KRenderingPaintServerQuartz.mm
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KRenderingPaintServerQuartz.mm,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- KRenderingPaintServerQuartz.mm 23 Nov 2005 15:14:07 -0000 1.10
+++ KRenderingPaintServerQuartz.mm 27 Nov 2005 11:02:17 -0000 1.11
@@ -41,36 +41,35 @@
void KRenderingPaintServerSolidQuartz::draw(KRenderingDeviceContext *renderingContext, const KCanvasCommonArgs &args, KCPaintTargetType type) const
{
- KRenderingDeviceContextQuartz *quartzContext = static_cast<KRenderingDeviceContextQuartz *>(renderingContext);
- CGContextRef context = quartzContext->cgContext();
- KSVG::KCanvasRenderingStyle *canvasStyle = args.canvasStyle();
-
- CGContextSetAlpha(context, canvasStyle->renderStyle()->opacity());
-
- if ( (type & APPLY_TO_FILL) && canvasStyle->isFilled() ) {
- CGColorRef colorCG = cgColor(color());
- CGColorRef withAlpha = CGColorCreateCopyWithAlpha(colorCG, canvasStyle->fillPainter()->opacity());
- CGContextSetFillColorWithColor(context, withAlpha);
- CGColorRelease(colorCG);
- CGColorRelease(withAlpha);
- if (canvasStyle->fillPainter()->fillRule() == RULE_EVENODD) {
- CGContextEOFillPath(context);
- } else {
- CGContextFillPath(context);
- }
- }
-
- if ( (type & APPLY_TO_STROKE) && canvasStyle->isStroked() ) {
- CGColorRef colorCG = cgColor(color());
- CGColorRef withAlpha = CGColorCreateCopyWithAlpha(colorCG, canvasStyle->strokePainter()->opacity());
- CGContextSetStrokeColorWithColor(context, withAlpha);
- CGColorRelease(colorCG);
- CGColorRelease(withAlpha);
-
- applyStrokeStyleToContext(context, canvasStyle);
-
- CGContextStrokePath(context);
- }
+ KRenderingDeviceContextQuartz *quartzContext = static_cast<KRenderingDeviceContextQuartz *>(renderingContext);
+ CGContextRef context = quartzContext->cgContext();
+ KSVG::KCanvasRenderingStyle *canvasStyle = args.canvasStyle();
+
+ CGContextSetAlpha(context, canvasStyle->renderStyle()->opacity());
+
+ if ( (type & APPLY_TO_FILL) && canvasStyle->isFilled() ) {
+ CGColorRef colorCG = cgColor(color());
+ CGColorRef withAlpha = CGColorCreateCopyWithAlpha(colorCG, canvasStyle->fillPainter()->opacity());
+ CGContextSetFillColorWithColor(context, withAlpha);
+ CGColorRelease(colorCG);
+ CGColorRelease(withAlpha);
+ if (canvasStyle->fillPainter()->fillRule() == RULE_EVENODD)
+ CGContextEOFillPath(context);
+ else
+ CGContextFillPath(context);
+ }
+
+ if ( (type & APPLY_TO_STROKE) && canvasStyle->isStroked() ) {
+ CGColorRef colorCG = cgColor(color());
+ CGColorRef withAlpha = CGColorCreateCopyWithAlpha(colorCG, canvasStyle->strokePainter()->opacity());
+ CGContextSetStrokeColorWithColor(context, withAlpha);
+ CGColorRelease(colorCG);
+ CGColorRelease(withAlpha);
+
+ applyStrokeStyleToContext(context, canvasStyle);
+
+ CGContextStrokePath(context);
+ }
}
1.37 +0 -16 WebCore/khtml/rendering/render_canvas.cpp
Index: render_canvas.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/rendering/render_canvas.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- render_canvas.cpp 21 Nov 2005 04:01:55 -0000 1.36
+++ render_canvas.cpp 27 Nov 2005 11:02:18 -0000 1.37
@@ -73,17 +73,10 @@
// Create a new root layer for our layer hierarchy.
m_layer = new (node->getDocument()->renderArena()) RenderLayer(this);
-
-#if SVG_SUPPORT
- m_renderingDevice = 0;
-#endif
}
RenderCanvas::~RenderCanvas()
{
-#if SVG_SUPPORT
- delete m_renderingDevice;
-#endif
}
void RenderCanvas::calcHeight()
@@ -653,12 +646,3 @@
m_bestTruncatedAt = y;
}
}
-
-#if SVG_SUPPORT
-KRenderingDevice *RenderCanvas::renderingDevice()
-{
- if (!m_renderingDevice)
- m_renderingDevice = new KRenderingDeviceQuartz();
- return m_renderingDevice;
-}
-#endif
1.15 +0 -12 WebCore/khtml/rendering/render_canvas.h
Index: render_canvas.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/rendering/render_canvas.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- render_canvas.h 21 Nov 2005 04:01:55 -0000 1.14
+++ render_canvas.h 27 Nov 2005 11:02:19 -0000 1.15
@@ -28,10 +28,6 @@
class KHTMLView;
class QScrollView;
-#if SVG_SUPPORT
-class KRenderingDevice;
-#endif
-
namespace khtml {
class RenderCanvas : public RenderBlock
@@ -106,10 +102,6 @@
void updateWidgetPositions();
void addWidget(RenderObject *);
void removeWidget(RenderObject *);
-
-#if SVG_SUPPORT
- KRenderingDevice *renderingDevice();
-#endif
protected:
@@ -137,10 +129,6 @@
typedef HashSet<RenderObject *, PointerHash<RenderObject *> > RenderObjectSet;
RenderObjectSet m_widgets;
-
-#if SVG_SUPPORT
- KRenderingDevice *m_renderingDevice;
-#endif
};
};
1.76 +3 -0 WebCore/khtml/rendering/render_style.cpp
Index: render_style.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/rendering/render_style.cpp,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- render_style.cpp 21 Nov 2005 04:01:56 -0000 1.75
+++ render_style.cpp 27 Nov 2005 11:02:19 -0000 1.76
@@ -588,6 +588,9 @@
RenderStyle::~RenderStyle()
{
+#if SVG_SUPPORT
+ delete m_svgStyle;
+#endif
}
bool RenderStyle::operator==(const RenderStyle& o) const
1.6 +4 -0 SVGSupport/ksvg2/css/SVGRenderStyle.cpp
Index: SVGRenderStyle.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/css/SVGRenderStyle.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGRenderStyle.cpp 21 Nov 2005 08:29:28 -0000 1.5
+++ SVGRenderStyle.cpp 27 Nov 2005 11:02:20 -0000 1.6
@@ -73,6 +73,10 @@
svg_noninherited_flags = other.svg_noninherited_flags;
}
+SVGRenderStyle::~SVGRenderStyle()
+{
+}
+
bool SVGRenderStyle::equals(SVGRenderStyle *svgOther) const
{
if(!svgOther)
1.11 +4 -11 SVGSupport/ksvg2/misc/KCanvasRenderingStyle.cpp
Index: KCanvasRenderingStyle.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/misc/KCanvasRenderingStyle.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- KCanvasRenderingStyle.cpp 21 Nov 2005 08:29:31 -0000 1.10
+++ KCanvasRenderingStyle.cpp 27 Nov 2005 11:02:20 -0000 1.11
@@ -47,10 +47,9 @@
using namespace KSVG;
-KCanvasRenderingStyle::KCanvasRenderingStyle(khtml::RenderCanvas *canvas, const khtml::RenderStyle *style)
+KCanvasRenderingStyle::KCanvasRenderingStyle(const khtml::RenderStyle *style)
{
m_style = style;
- m_canvas = canvas;
m_fillPainter = 0;
m_strokePainter = 0;
}
@@ -63,9 +62,6 @@
void KCanvasRenderingStyle::updateFill(RenderPath *item)
{
- if(!m_canvas || !m_canvas->renderingDevice())
- return;
-
SVGPaintImpl *fill = m_style->svgStyle()->fillPaint();
if (fill && fill->paintType() == SVG_PAINTTYPE_NONE)
@@ -73,7 +69,7 @@
if(!fill) // initial value (black)
{
- KRenderingPaintServer *fillPaintServer = m_canvas->renderingDevice()->createPaintServer(KCPaintServerType(PS_SOLID));
+ KRenderingPaintServer *fillPaintServer = QPainter::renderingDevice()->createPaintServer(KCPaintServerType(PS_SOLID));
KRenderingPaintServerSolid *fillPaintServerSolid = static_cast<KRenderingPaintServerSolid *>(fillPaintServer);
fillPaintServerSolid->setColor(Qt::black);
@@ -91,7 +87,7 @@
}
else
{
- KRenderingPaintServer *fillPaintServer = m_canvas->renderingDevice()->createPaintServer(KCPaintServerType(PS_SOLID));
+ KRenderingPaintServer *fillPaintServer = QPainter::renderingDevice()->createPaintServer(KCPaintServerType(PS_SOLID));
KRenderingPaintServerSolid *fillPaintServerSolid = static_cast<KRenderingPaintServerSolid *>(fillPaintServer);
if(fill->paintType() == SVG_PAINTTYPE_CURRENTCOLOR)
@@ -108,9 +104,6 @@
void KCanvasRenderingStyle::updateStroke(RenderPath *item)
{
- if(!m_canvas || !m_canvas->renderingDevice())
- return;
-
SVGPaintImpl *stroke = m_style->svgStyle()->strokePaint();
if (!stroke || stroke->paintType() == SVG_PAINTTYPE_NONE)
@@ -128,7 +121,7 @@
}
else
{
- KRenderingPaintServer *strokePaintServer = m_canvas->renderingDevice()->createPaintServer(KCPaintServerType(PS_SOLID));
+ KRenderingPaintServer *strokePaintServer = QPainter::renderingDevice()->createPaintServer(KCPaintServerType(PS_SOLID));
KRenderingPaintServerSolid *strokePaintServerSolid = static_cast<KRenderingPaintServerSolid *>(strokePaintServer);
if(stroke->paintType() == SVG_PAINTTYPE_CURRENTCOLOR)
1.7 +1 -2 SVGSupport/ksvg2/misc/KCanvasRenderingStyle.h
Index: KCanvasRenderingStyle.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/misc/KCanvasRenderingStyle.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- KCanvasRenderingStyle.h 21 Nov 2005 08:29:31 -0000 1.6
+++ KCanvasRenderingStyle.h 27 Nov 2005 11:02:20 -0000 1.7
@@ -62,7 +62,7 @@
class KCanvasRenderingStyle
{
public:
- KCanvasRenderingStyle(khtml::RenderCanvas *canvas, const khtml::RenderStyle *style);
+ KCanvasRenderingStyle(const khtml::RenderStyle *style);
~KCanvasRenderingStyle();
void updateFill(RenderPath *item);
@@ -92,7 +92,6 @@
const khtml::RenderStyle *m_style;
// KCanvas stuff
- khtml::RenderCanvas *m_canvas;
KRenderingFillPainter *m_fillPainter;
KRenderingStrokePainter *m_strokePainter;
};
1.9 +1 -1 SVGSupport/ksvg2/svg/SVGAElementImpl.cpp
Index: SVGAElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGAElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGAElementImpl.cpp 26 Nov 2005 22:19:03 -0000 1.8
+++ SVGAElementImpl.cpp 27 Nov 2005 11:02:21 -0000 1.9
@@ -72,7 +72,7 @@
khtml::RenderObject *SVGAElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
{
- return canvas()->renderingDevice()->createContainer(arena, style, this);
+ return QPainter::renderingDevice()->createContainer(arena, style, this);
}
void SVGAElementImpl::defaultEventHandler(KDOM::EventImpl *evt)
1.11 +7 -4 SVGSupport/ksvg2/svg/SVGClipPathElementImpl.cpp
Index: SVGClipPathElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGClipPathElementImpl.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SVGClipPathElementImpl.cpp 26 Nov 2005 22:27:06 -0000 1.10
+++ SVGClipPathElementImpl.cpp 27 Nov 2005 11:02:21 -0000 1.11
@@ -44,6 +44,7 @@
SVGClipPathElementImpl::~SVGClipPathElementImpl()
{
+ delete m_clipper;
}
SVGAnimatedEnumerationImpl *SVGClipPathElementImpl::clipPathUnits() const
@@ -81,22 +82,24 @@
if (!canvas())
return 0;
if (!m_clipper)
- m_clipper = static_cast<KCanvasClipper *>(canvas()->renderingDevice()->createResource(RS_CLIPPER));
+ m_clipper = static_cast<KCanvasClipper *>(QPainter::renderingDevice()->createResource(RS_CLIPPER));
else
m_clipper->resetClipData();
bool bbox = clipPathUnits()->baseVal() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
- khtml::RenderStyle *clipPathStyle = styleForRenderer(parent()->renderer());
+ khtml::RenderStyle *clipPathStyle = styleForRenderer(parent()->renderer()); // FIXME: Manual style resolution is a hack
for (KDOM::NodeImpl *n = firstChild(); n != 0; n = n->nextSibling())
{
SVGElementImpl *e = svg_dynamic_cast(n);
if (e && e->isStyled()) {
SVGStyledElementImpl *styled = static_cast<SVGStyledElementImpl *>(e);
- SVGRenderStyle *style = getDocument()->styleSelector()->styleForElement(styled, clipPathStyle)->svgStyle();
- m_clipper->addClipData(styled->toPathData(), (KCWindRule) style->clipRule(), bbox);
+ khtml::RenderStyle *pathStyle = getDocument()->styleSelector()->styleForElement(styled, clipPathStyle);
+ m_clipper->addClipData(styled->toPathData(), (KCWindRule) pathStyle->svgStyle()->clipRule(), bbox);
+ pathStyle->deref(canvas()->renderArena());
}
}
+ clipPathStyle->deref(canvas()->renderArena());
return m_clipper;
}
1.11 +2 -1 SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.cpp
Index: SVGFEBlendElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SVGFEBlendElementImpl.cpp 26 Nov 2005 22:19:07 -0000 1.10
+++ SVGFEBlendElementImpl.cpp 27 Nov 2005 11:02:21 -0000 1.11
@@ -47,6 +47,7 @@
SVGFEBlendElementImpl::~SVGFEBlendElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedStringImpl *SVGFEBlendElementImpl::in1() const
@@ -94,7 +95,7 @@
KCanvasFEBlend *SVGFEBlendElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEBlend *>(canvas()->renderingDevice()->createFilterEffect(FE_BLEND));
+ m_filterEffect = static_cast<KCanvasFEBlend *>(QPainter::renderingDevice()->createFilterEffect(FE_BLEND));
if (!m_filterEffect)
return 0;
m_filterEffect->setBlendMode((KCBlendModeType)(mode()->baseVal()-1));
1.13 +2 -1 SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.cpp
Index: SVGFEColorMatrixElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SVGFEColorMatrixElementImpl.cpp 26 Nov 2005 22:27:06 -0000 1.12
+++ SVGFEColorMatrixElementImpl.cpp 27 Nov 2005 11:02:21 -0000 1.13
@@ -51,6 +51,7 @@
SVGFEColorMatrixElementImpl::~SVGFEColorMatrixElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedStringImpl *SVGFEColorMatrixElementImpl::in1() const
@@ -96,7 +97,7 @@
KCanvasFEColorMatrix *SVGFEColorMatrixElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEColorMatrix *>(canvas()->renderingDevice()->createFilterEffect(FE_COLOR_MATRIX));
+ m_filterEffect = static_cast<KCanvasFEColorMatrix *>(QPainter::renderingDevice()->createFilterEffect(FE_COLOR_MATRIX));
if (!m_filterEffect)
return 0;
1.12 +2 -1 SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.cpp
Index: SVGFEComponentTransferElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGFEComponentTransferElementImpl.cpp 26 Nov 2005 22:19:08 -0000 1.11
+++ SVGFEComponentTransferElementImpl.cpp 27 Nov 2005 11:02:22 -0000 1.12
@@ -53,6 +53,7 @@
SVGFEComponentTransferElementImpl::~SVGFEComponentTransferElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedStringImpl *SVGFEComponentTransferElementImpl::in1() const
@@ -73,7 +74,7 @@
KCanvasFEComponentTransfer *SVGFEComponentTransferElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEComponentTransfer *>(canvas()->renderingDevice()->createFilterEffect(FE_COMPONENT_TRANSFER));
+ m_filterEffect = static_cast<KCanvasFEComponentTransfer *>(QPainter::renderingDevice()->createFilterEffect(FE_COMPONENT_TRANSFER));
if (!m_filterEffect)
return 0;
1.11 +2 -1 SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.cpp
Index: SVGFECompositeElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SVGFECompositeElementImpl.cpp 26 Nov 2005 22:19:08 -0000 1.10
+++ SVGFECompositeElementImpl.cpp 27 Nov 2005 11:02:22 -0000 1.11
@@ -51,6 +51,7 @@
SVGFECompositeElementImpl::~SVGFECompositeElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedStringImpl *SVGFECompositeElementImpl::in1() const
@@ -124,7 +125,7 @@
KCanvasFEComposite *SVGFECompositeElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEComposite *>(canvas()->renderingDevice()->createFilterEffect(FE_COMPOSITE));
+ m_filterEffect = static_cast<KCanvasFEComposite *>(QPainter::renderingDevice()->createFilterEffect(FE_COMPOSITE));
if (!m_filterEffect)
return 0;
m_filterEffect->setOperation((KCCompositeOperationType)(_operator()->baseVal() - 1));
1.11 +7 -4 SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.cpp
Index: SVGFEFloodElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SVGFEFloodElementImpl.cpp 26 Nov 2005 22:19:09 -0000 1.10
+++ SVGFEFloodElementImpl.cpp 27 Nov 2005 11:02:23 -0000 1.11
@@ -46,6 +46,7 @@
SVGFEFloodElementImpl::~SVGFEFloodElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedStringImpl *SVGFEFloodElementImpl::in1() const
@@ -66,15 +67,17 @@
KCanvasFEFlood *SVGFEFloodElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEFlood *>(canvas()->renderingDevice()->createFilterEffect(FE_FLOOD));
+ m_filterEffect = static_cast<KCanvasFEFlood *>(QPainter::renderingDevice()->createFilterEffect(FE_FLOOD));
if (!m_filterEffect)
return 0;
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
setStandardAttributes(m_filterEffect);
// FIXME: I don't think this will work, the parent does not have a renderer
- SVGRenderStyle *filterStyle = const_cast<SVGFEFloodElementImpl *>(this)->styleForRenderer(parentNode()->renderer())->svgStyle();
- m_filterEffect->setFloodColor(filterStyle->floodColor());
- m_filterEffect->setFloodOpacity(filterStyle->floodOpacity());
+ khtml::RenderStyle *filterStyle = const_cast<SVGFEFloodElementImpl *>(this)->styleForRenderer(parentNode()->renderer());
+ SVGRenderStyle *svgStyle = filterStyle->svgStyle();
+ m_filterEffect->setFloodColor(svgStyle->floodColor());
+ m_filterEffect->setFloodOpacity(svgStyle->floodOpacity());
+ filterStyle->deref(canvas()->renderArena());
return m_filterEffect;
}
1.12 +2 -1 SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp
Index: SVGFEGaussianBlurElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGFEGaussianBlurElementImpl.cpp 26 Nov 2005 22:19:09 -0000 1.11
+++ SVGFEGaussianBlurElementImpl.cpp 27 Nov 2005 11:02:23 -0000 1.12
@@ -49,6 +49,7 @@
SVGFEGaussianBlurElementImpl::~SVGFEGaussianBlurElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedStringImpl *SVGFEGaussianBlurElementImpl::in1() const
@@ -93,7 +94,7 @@
KCanvasFEGaussianBlur *SVGFEGaussianBlurElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEGaussianBlur *>(canvas()->renderingDevice()->createFilterEffect(FE_GAUSSIAN_BLUR));
+ m_filterEffect = static_cast<KCanvasFEGaussianBlur *>(QPainter::renderingDevice()->createFilterEffect(FE_GAUSSIAN_BLUR));
if (!m_filterEffect)
return 0;
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
1.12 +2 -1 SVGSupport/ksvg2/svg/SVGFEImageElementImpl.cpp
Index: SVGFEImageElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEImageElementImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGFEImageElementImpl.cpp 26 Nov 2005 22:19:09 -0000 1.11
+++ SVGFEImageElementImpl.cpp 27 Nov 2005 11:02:23 -0000 1.12
@@ -54,6 +54,7 @@
SVGFEImageElementImpl::~SVGFEImageElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedPreserveAspectRatioImpl *SVGFEImageElementImpl::preserveAspectRatio() const
@@ -97,7 +98,7 @@
KCanvasFEImage *SVGFEImageElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEImage *>(canvas()->renderingDevice()->createFilterEffect(FE_IMAGE));
+ m_filterEffect = static_cast<KCanvasFEImage *>(QPainter::renderingDevice()->createFilterEffect(FE_IMAGE));
if (!m_filterEffect)
return 0;
setStandardAttributes(m_filterEffect);
1.10 +2 -1 SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.cpp
Index: SVGFEMergeElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SVGFEMergeElementImpl.cpp 22 Nov 2005 23:04:30 -0000 1.9
+++ SVGFEMergeElementImpl.cpp 27 Nov 2005 11:02:24 -0000 1.10
@@ -48,12 +48,13 @@
SVGFEMergeElementImpl::~SVGFEMergeElementImpl()
{
+ delete m_filterEffect;
}
KCanvasFEMerge *SVGFEMergeElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEMerge *>(canvas()->renderingDevice()->createFilterEffect(FE_MERGE));
+ m_filterEffect = static_cast<KCanvasFEMerge *>(QPainter::renderingDevice()->createFilterEffect(FE_MERGE));
if (!m_filterEffect)
return 0;
setStandardAttributes(m_filterEffect);
1.12 +2 -1 SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.cpp
Index: SVGFEOffsetElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGFEOffsetElementImpl.cpp 26 Nov 2005 22:19:10 -0000 1.11
+++ SVGFEOffsetElementImpl.cpp 27 Nov 2005 11:02:24 -0000 1.12
@@ -48,6 +48,7 @@
SVGFEOffsetElementImpl::~SVGFEOffsetElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedStringImpl *SVGFEOffsetElementImpl::in1() const
@@ -84,7 +85,7 @@
KCanvasFEOffset *SVGFEOffsetElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFEOffset *>(canvas()->renderingDevice()->createFilterEffect(FE_OFFSET));
+ m_filterEffect = static_cast<KCanvasFEOffset *>(QPainter::renderingDevice()->createFilterEffect(FE_OFFSET));
if (!m_filterEffect)
return 0;
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
1.11 +2 -1 SVGSupport/ksvg2/svg/SVGFETileElementImpl.cpp
Index: SVGFETileElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETileElementImpl.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- SVGFETileElementImpl.cpp 26 Nov 2005 22:19:10 -0000 1.10
+++ SVGFETileElementImpl.cpp 27 Nov 2005 11:02:24 -0000 1.11
@@ -45,6 +45,7 @@
SVGFETileElementImpl::~SVGFETileElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedStringImpl *SVGFETileElementImpl::in1() const
@@ -65,7 +66,7 @@
KCanvasFETile *SVGFETileElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFETile *>(canvas()->renderingDevice()->createFilterEffect(FE_TILE));
+ m_filterEffect = static_cast<KCanvasFETile *>(QPainter::renderingDevice()->createFilterEffect(FE_TILE));
if (!m_filterEffect)
return 0;
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
1.13 +2 -1 SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.cpp
Index: SVGFETurbulenceElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SVGFETurbulenceElementImpl.cpp 26 Nov 2005 22:19:10 -0000 1.12
+++ SVGFETurbulenceElementImpl.cpp 27 Nov 2005 11:02:24 -0000 1.13
@@ -50,6 +50,7 @@
SVGFETurbulenceElementImpl::~SVGFETurbulenceElementImpl()
{
+ delete m_filterEffect;
}
SVGAnimatedNumberImpl *SVGFETurbulenceElementImpl::baseFrequencyX() const
@@ -125,7 +126,7 @@
KCanvasFETurbulence *SVGFETurbulenceElementImpl::filterEffect() const
{
if (!m_filterEffect)
- m_filterEffect = static_cast<KCanvasFETurbulence *>(canvas()->renderingDevice()->createFilterEffect(FE_TURBULENCE));
+ m_filterEffect = static_cast<KCanvasFETurbulence *>(QPainter::renderingDevice()->createFilterEffect(FE_TURBULENCE));
if (!m_filterEffect)
return 0;
1.12 +2 -1 SVGSupport/ksvg2/svg/SVGFilterElementImpl.cpp
Index: SVGFilterElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFilterElementImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGFilterElementImpl.cpp 26 Nov 2005 22:19:10 -0000 1.11
+++ SVGFilterElementImpl.cpp 27 Nov 2005 11:02:25 -0000 1.12
@@ -47,6 +47,7 @@
SVGFilterElementImpl::~SVGFilterElementImpl()
{
+ delete m_filter;
}
SVGAnimatedEnumerationImpl *SVGFilterElementImpl::filterUnits() const
@@ -168,7 +169,7 @@
return 0;
if(!m_filter)
- m_filter = static_cast<KCanvasFilter *>(canvas()->renderingDevice()->createResource(RS_FILTER));
+ m_filter = static_cast<KCanvasFilter *>(QPainter::renderingDevice()->createResource(RS_FILTER));
bool filterBBoxMode = filterUnits()->baseVal() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
m_filter->setFilterBoundingBoxMode(filterBBoxMode);
1.7 +1 -1 SVGSupport/ksvg2/svg/SVGGElementImpl.cpp
Index: SVGGElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGGElementImpl.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SVGGElementImpl.cpp 21 Nov 2005 08:29:40 -0000 1.6
+++ SVGGElementImpl.cpp 27 Nov 2005 11:02:25 -0000 1.7
@@ -54,7 +54,7 @@
khtml::RenderObject *SVGGElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
{
- return canvas()->renderingDevice()->createContainer(arena, style, this);
+ return QPainter::renderingDevice()->createContainer(arena, style, this);
}
// Helper class for <use> support
1.12 +8 -4 SVGSupport/ksvg2/svg/SVGGradientElementImpl.cpp
Index: SVGGradientElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGGradientElementImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGGradientElementImpl.cpp 26 Nov 2005 22:19:11 -0000 1.11
+++ SVGGradientElementImpl.cpp 27 Nov 2005 11:02:25 -0000 1.12
@@ -48,6 +48,7 @@
SVGGradientElementImpl::~SVGGradientElementImpl()
{
+ delete m_resource;
}
SVGAnimatedEnumerationImpl *SVGGradientElementImpl::gradientUnits() const
@@ -126,7 +127,7 @@
KRenderingPaintServerGradient *SVGGradientElementImpl::canvasResource()
{
if (!m_resource) {
- KRenderingPaintServer *temp = canvas()->renderingDevice()->createPaintServer(gradientType());
+ KRenderingPaintServer *temp = QPainter::renderingDevice()->createPaintServer(gradientType());
m_resource = static_cast<KRenderingPaintServerGradient *>(temp);
m_resource->setListener(this);
buildGradient(m_resource);
@@ -145,6 +146,7 @@
if (m_resource && !ownerDocument()->parsing()) {
KCSortedGradientStopList &stops = m_resource->gradientStops();
stops.clear();
+ // FIXME: Manual style resolution is a hack
khtml::RenderStyle *gradientStyle = const_cast<SVGGradientElementImpl *>(this)->styleForRenderer(parent()->renderer());
for (KDOM::NodeImpl *n = firstChild(); n; n = n->nextSibling()) {
SVGElementImpl *element = svg_dynamic_cast(n);
@@ -152,13 +154,15 @@
SVGStopElementImpl *stop = static_cast<SVGStopElementImpl *>(element);
float stopOffset = stop->offset()->baseVal();
- SVGRenderStyle *stopStyle = getDocument()->styleSelector()->styleForElement(stop, gradientStyle)->svgStyle();
- QColor c = stopStyle->stopColor();
- float opacity = stopStyle->stopOpacity();
+ khtml::RenderStyle *stopStyle = getDocument()->styleSelector()->styleForElement(stop, gradientStyle);
+ QColor c = stopStyle->svgStyle()->stopColor();
+ float opacity = stopStyle->svgStyle()->stopOpacity();
stops.addStop(stopOffset, qRgba(c.red(), c.green(), c.blue(), int(opacity * 255.)));
+ stopStyle->deref(canvas()->renderArena());
}
}
+ gradientStyle->deref(canvas()->renderArena());
}
}
1.12 +4 -4 SVGSupport/ksvg2/svg/SVGImageElementImpl.cpp
Index: SVGImageElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGImageElementImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGImageElementImpl.cpp 26 Nov 2005 22:19:12 -0000 1.11
+++ SVGImageElementImpl.cpp 27 Nov 2005 11:02:26 -0000 1.12
@@ -130,7 +130,7 @@
KMimeType::Ptr mimeType = KMimeType::findByURL(fullUrl);
if(mimeType->is(QString::fromLatin1("image/svg+xml"))) // does it have svg content?
{
- RenderPath *ret = canvas()->renderingDevice()->createContainer(style, this);
+ RenderPath *ret = QPainter::renderingDevice()->createContainer(style, this);
m_cachedDocument = ownerDocument()->docLoader()->requestDocument(fullUrl, QString());
if(m_cachedDocument)
@@ -147,8 +147,8 @@
if(pathData.isEmpty())
return 0;
- KCanvasUserData path = KCanvasCreator::self()->createCanvasPathData(canvas()->renderingDevice(), pathData);
- return canvas()->renderingDevice()->createItem(arena, style, this, path);
+ KCanvasUserData path = KCanvasCreator::self()->createCanvasPathData(QPainter::renderingDevice(), pathData);
+ return QPainter::renderingDevice()->createItem(arena, style, this, path);
}
void SVGImageElementImpl::attach()
@@ -175,7 +175,7 @@
canvasStyle->disableFillPainter();
canvasStyle->disableStrokePainter();
- KRenderingPaintServer *fillPaintServer = canvas()->renderingDevice()->createPaintServer(PS_IMAGE);
+ KRenderingPaintServer *fillPaintServer = QPainter::renderingDevice()->createPaintServer(PS_IMAGE);
canvasStyle->fillPainter()->setPaintServer(fillPaintServer);
#ifndef APPLE_COMPILE_HACK
1.10 +3 -2 SVGSupport/ksvg2/svg/SVGMarkerElementImpl.cpp
Index: SVGMarkerElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGMarkerElementImpl.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SVGMarkerElementImpl.cpp 26 Nov 2005 22:19:13 -0000 1.9
+++ SVGMarkerElementImpl.cpp 27 Nov 2005 11:02:26 -0000 1.10
@@ -53,6 +53,7 @@
SVGMarkerElementImpl::~SVGMarkerElementImpl()
{
+ delete m_marker;
}
void SVGMarkerElementImpl::parseMappedAttribute(KDOM::MappedAttributeImpl *attr)
@@ -141,7 +142,7 @@
KCanvasMarker *SVGMarkerElementImpl::canvasResource()
{
if(!m_marker)
- m_marker = static_cast<KCanvasMarker *>(canvas()->renderingDevice()->createResource(RS_MARKER));
+ m_marker = static_cast<KCanvasMarker *>(QPainter::renderingDevice()->createResource(RS_MARKER));
m_marker->setMarker(renderer());
@@ -166,7 +167,7 @@
khtml::RenderObject *SVGMarkerElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
{
- KCanvasContainer *markerContainer = canvas()->renderingDevice()->createContainer(arena, style, this);
+ KCanvasContainer *markerContainer = QPainter::renderingDevice()->createContainer(arena, style, this);
markerContainer->setDrawsContents(false); // Marker contents will be explicitly drawn.
return markerContainer;
}
1.14 +4 -3 SVGSupport/ksvg2/svg/SVGPatternElementImpl.cpp
Index: SVGPatternElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGPatternElementImpl.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- SVGPatternElementImpl.cpp 26 Nov 2005 22:35:48 -0000 1.13
+++ SVGPatternElementImpl.cpp 27 Nov 2005 11:02:26 -0000 1.14
@@ -57,6 +57,7 @@
SVGPatternElementImpl::~SVGPatternElementImpl()
{
+ delete m_paintServer;
}
SVGAnimatedEnumerationImpl *SVGPatternElementImpl::patternUnits() const
@@ -199,7 +200,7 @@
void SVGPatternElementImpl::drawPatternContentIntoTile(const SVGPatternElementImpl *target, const QSize &newSize, KCanvasMatrix patternTransformMatrix) const
{
- KRenderingDevice *device = canvas()->renderingDevice();
+ KRenderingDevice *device = QPainter::renderingDevice();
SVGStyledElementImpl *activeElement = static_cast<SVGStyledElementImpl *>(m_paintServer->activeClient()->element());
@@ -359,7 +360,7 @@
khtml::RenderObject *SVGPatternElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
{
- KCanvasContainer *patternContainer = canvas()->renderingDevice()->createContainer(arena, style, this);
+ KCanvasContainer *patternContainer = QPainter::renderingDevice()->createContainer(arena, style, this);
patternContainer->setDrawsContents(false);
return patternContainer;
}
@@ -367,7 +368,7 @@
KRenderingPaintServerPattern *SVGPatternElementImpl::canvasResource()
{
if (!m_paintServer) {
- KRenderingPaintServer *pserver = canvas()->renderingDevice()->createPaintServer(KCPaintServerType(PS_PATTERN));
+ KRenderingPaintServer *pserver = QPainter::renderingDevice()->createPaintServer(KCPaintServerType(PS_PATTERN));
m_paintServer = static_cast<KRenderingPaintServerPattern *>(pserver);
m_paintServer->setListener(const_cast<SVGPatternElementImpl *>(this));
}
1.14 +1 -1 SVGSupport/ksvg2/svg/SVGSVGElementImpl.cpp
Index: SVGSVGElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGSVGElementImpl.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- SVGSVGElementImpl.cpp 26 Nov 2005 22:35:48 -0000 1.13
+++ SVGSVGElementImpl.cpp 27 Nov 2005 11:02:26 -0000 1.14
@@ -444,7 +444,7 @@
khtml::RenderObject *SVGSVGElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
{
- KCanvasContainer *rootContainer = canvas()->renderingDevice()->createContainer(arena, style, this);
+ KCanvasContainer *rootContainer = QPainter::renderingDevice()->createContainer(arena, style, this);
// FIXME: all this setup should be done after attributesChanged, not here.
float _x = x()->baseVal()->value();
1.13 +4 -4 SVGSupport/ksvg2/svg/SVGStyledElementImpl.cpp
Index: SVGStyledElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGStyledElementImpl.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SVGStyledElementImpl.cpp 26 Nov 2005 22:35:48 -0000 1.12
+++ SVGStyledElementImpl.cpp 27 Nov 2005 11:02:27 -0000 1.13
@@ -73,8 +73,8 @@
KCPathDataList pathData = toPathData();
if (pathData.isEmpty())
return 0;
- KCanvasUserData path = KCanvasCreator::self()->createCanvasPathData(canvas()->renderingDevice(), pathData);
- return canvas()->renderingDevice()->createItem(arena, style, this, path);
+ KCanvasUserData path = KCanvasCreator::self()->createCanvasPathData(QPainter::renderingDevice(), pathData);
+ return QPainter::renderingDevice()->createItem(arena, style, this, path);
}
void SVGStyledElementImpl::parseMappedAttribute(KDOM::MappedAttributeImpl *attr)
@@ -145,7 +145,7 @@
&& parentElement->childShouldCreateRenderer(this))
renderSection = true;
- KCanvasUserData newPath = KCanvasCreator::self()->createCanvasPathData(canvas()->renderingDevice(), toPathData());
+ KCanvasUserData newPath = KCanvasCreator::self()->createCanvasPathData(QPainter::renderingDevice(), toPathData());
renderPath->changePath(newPath);
if(renderSection)
@@ -158,7 +158,7 @@
{
if(canvas())
{
- KCanvasUserData newPath = KCanvasCreator::self()->createCanvasPathData(canvas()->renderingDevice(), toPathData());
+ KCanvasUserData newPath = KCanvasCreator::self()->createCanvasPathData(QPainter::renderingDevice(), toPathData());
static_cast<RenderPath *>(renderer())->changePath(newPath);
}
1.9 +1 -1 SVGSupport/ksvg2/svg/SVGSwitchElementImpl.cpp
Index: SVGSwitchElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGSwitchElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGSwitchElementImpl.cpp 26 Nov 2005 22:35:49 -0000 1.8
+++ SVGSwitchElementImpl.cpp 27 Nov 2005 11:02:27 -0000 1.9
@@ -57,7 +57,7 @@
khtml::RenderObject *SVGSwitchElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
{
- return canvas()->renderingDevice()->createContainer(arena, style, this);
+ return QPainter::renderingDevice()->createContainer(arena, style, this);
}
// vim:ts=4:noet
1.12 +1 -1 SVGSupport/ksvg2/svg/SVGUseElementImpl.cpp
Index: SVGUseElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGUseElementImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGUseElementImpl.cpp 26 Nov 2005 22:19:18 -0000 1.11
+++ SVGUseElementImpl.cpp 27 Nov 2005 11:02:28 -0000 1.12
@@ -171,7 +171,7 @@
khtml::RenderObject *SVGUseElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
{
- return canvas()->renderingDevice()->createContainer(arena, style, this);
+ return QPainter::renderingDevice()->createContainer(arena, style, this);
}
// vim:ts=4:noet
1.84 +2 -0 WebCore/kwq/KWQPainter.h
Index: KWQPainter.h
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQPainter.h,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- KWQPainter.h 22 Nov 2005 23:04:28 -0000 1.83
+++ KWQPainter.h 27 Nov 2005 11:02:35 -0000 1.84
@@ -43,6 +43,7 @@
class QString;
#if SVG_SUPPORT
+class KRenderingDevice;
class KRenderingDeviceContext;
#endif
@@ -142,6 +143,7 @@
#if SVG_SUPPORT
KRenderingDeviceContext *createRenderingDeviceContext();
+ static KRenderingDevice *renderingDevice();
#endif
static int compositeOperatorFromString (const QString &aString);
1.148 +9 -0 WebCore/kwq/KWQPainter.mm
Index: KWQPainter.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQPainter.mm,v
retrieving revision 1.147
retrieving revision 1.148
diff -u -r1.147 -r1.148
--- KWQPainter.mm 22 Nov 2005 23:04:28 -0000 1.147
+++ KWQPainter.mm 27 Nov 2005 11:02:35 -0000 1.148
@@ -72,6 +72,9 @@
int focusRingOffset;
bool hasFocusRingColor;
QColor focusRingColor;
+#if SVG_SUPPORT
+ KRenderingDevice *renderingDevice;
+#endif
};
QPainterPrivate::QPainterPrivate() : textRenderer(0), focusRingPath(0), focusRingWidth(0), focusRingOffset(0),
@@ -883,6 +886,12 @@
{
return new KRenderingDeviceContextQuartz(currentContext());
}
+
+KRenderingDevice *QPainter::renderingDevice()
+{
+ static KRenderingDevice *sharedRenderingDevice = new KRenderingDeviceQuartz();
+ return sharedRenderingDevice;
+}
#endif
void QPainter::beginTransparencyLayer(float opacity)
1.49 +1 -0 WebCore/kwq/KWQRenderTreeDebug.cpp
Index: KWQRenderTreeDebug.cpp
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQRenderTreeDebug.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- KWQRenderTreeDebug.cpp 21 Nov 2005 04:02:02 -0000 1.48
+++ KWQRenderTreeDebug.cpp 27 Nov 2005 11:02:36 -0000 1.49
@@ -442,6 +442,7 @@
QTextStream ts(&s);
#if SVG_SUPPORT
ts.precision(2);
+ writeRenderResources(ts, o->document());
#endif
if (o) {
o->canvas()->view()->layout();
More information about the webkit-changes
mailing list