[webkit-changes] cvs commit: SVGSupport/ksvg2/svg
SVGComponentTransferFunctionElementImpl.cpp
SVGComponentTransferFunctionElementImpl.h
SVGFEBlendElementImpl.cpp SVGFEBlendElementImpl.h
SVGFEColorMatrixElementImpl.cpp SVGFEColorMatrixElementImpl.h
SVGFEComponentTransferElementImpl.cpp
SVGFEComponentTransferElementImpl.h
SVGFECompositeElementImpl.cpp SVGFECompositeElementImpl.h
SVGFEFloodElementImpl.cpp SVGFEFloodElementImpl.h
SVGFEGaussianBlurElementImpl.cpp
SVGFEGaussianBlurElementImpl.h SVGFEImageElementImpl.cpp
SVGFEMergeElementImpl.cpp SVGFEMergeElementImpl.h
SVGFEOffsetElementImpl.cpp SVGFEOffsetElementImpl.h
SVGFETileElementImpl.cpp SVGFETileElementImpl.h
SVGFETurbulenceElementImpl.cpp SVGFETurbulenceElementImpl.h
SVGFilterElementImpl.cpp
SVGFilterPrimitiveStandardAttributesImpl.cpp
SVGImageElementImpl.cpp SVGStyledElementImpl.h
SVGURIReferenceImpl.cpp
Eric
eseidel at opensource.apple.com
Tue Nov 22 04:03:22 PST 2005
eseidel 05/11/22 04:03:21
Modified: . ChangeLog
kcanvas KCanvasFilters.cpp KCanvasFilters.h
kcanvas/device/quartz KCanvasFilterQuartz.mm
KCanvasResourcesQuartz.h
KRenderingPaintServerQuartz.mm
ksvg2/svg SVGComponentTransferFunctionElementImpl.cpp
SVGComponentTransferFunctionElementImpl.h
SVGFEBlendElementImpl.cpp SVGFEBlendElementImpl.h
SVGFEColorMatrixElementImpl.cpp
SVGFEColorMatrixElementImpl.h
SVGFEComponentTransferElementImpl.cpp
SVGFEComponentTransferElementImpl.h
SVGFECompositeElementImpl.cpp
SVGFECompositeElementImpl.h
SVGFEFloodElementImpl.cpp SVGFEFloodElementImpl.h
SVGFEGaussianBlurElementImpl.cpp
SVGFEGaussianBlurElementImpl.h
SVGFEImageElementImpl.cpp SVGFEMergeElementImpl.cpp
SVGFEMergeElementImpl.h SVGFEOffsetElementImpl.cpp
SVGFEOffsetElementImpl.h SVGFETileElementImpl.cpp
SVGFETileElementImpl.h
SVGFETurbulenceElementImpl.cpp
SVGFETurbulenceElementImpl.h
SVGFilterElementImpl.cpp
SVGFilterPrimitiveStandardAttributesImpl.cpp
SVGImageElementImpl.cpp SVGStyledElementImpl.h
SVGURIReferenceImpl.cpp
Log:
Bug #: none
Submitted by: eseidel
Reviewed by: mjs
No additional test cases needed, this fixes 10+ existing tests.
Moved filter code off of createRenderer format, fixing filters.
Hacked in support for <image> and <feImage> (Pixmap only)
Simplified FEComponentTransfer function construction.
* kcanvas/KCanvasFilters.cpp:
* kcanvas/KCanvasFilters.h:
(KCanvasFEImage::KCanvasFEImage):
(KCanvasFEImage::~KCanvasFEImage):
(KCanvasFEImage::pixmap): added
(KCanvasFEImage::setPixmap): added
* kcanvas/device/quartz/KCanvasFilterQuartz.mm:
(KCanvasFEImageQuartz::getCIFilter): added
* kcanvas/device/quartz/KCanvasResourcesQuartz.h:
* kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
(KRenderingPaintServerImageQuartz::draw): added
* ksvg2/svg/SVGComponentTransferFunctionElementImpl.cpp:
(SVGComponentTransferFunctionElementImpl::transferFunction):
* ksvg2/svg/SVGComponentTransferFunctionElementImpl.h:
* ksvg2/svg/SVGFEBlendElementImpl.cpp:
(SVGFEBlendElementImpl::filterEffect):
* ksvg2/svg/SVGFEBlendElementImpl.h:
* ksvg2/svg/SVGFEColorMatrixElementImpl.cpp:
(SVGFEColorMatrixElementImpl::filterEffect):
* ksvg2/svg/SVGFEColorMatrixElementImpl.h:
* ksvg2/svg/SVGFEComponentTransferElementImpl.cpp:
(SVGFEComponentTransferElementImpl::filterEffect):
* ksvg2/svg/SVGFEComponentTransferElementImpl.h:
* ksvg2/svg/SVGFECompositeElementImpl.cpp:
(SVGFECompositeElementImpl::filterEffect):
* ksvg2/svg/SVGFECompositeElementImpl.h:
* ksvg2/svg/SVGFEFloodElementImpl.cpp:
(SVGFEFloodElementImpl::filterEffect):
* ksvg2/svg/SVGFEFloodElementImpl.h:
* ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp:
(SVGFEGaussianBlurElementImpl::filterEffect):
* ksvg2/svg/SVGFEGaussianBlurElementImpl.h:
* ksvg2/svg/SVGFEImageElementImpl.cpp:
(SVGFEImageElementImpl::filterEffect):
* ksvg2/svg/SVGFEMergeElementImpl.cpp:
(SVGFEMergeElementImpl::filterEffect):
* ksvg2/svg/SVGFEMergeElementImpl.h:
* ksvg2/svg/SVGFEOffsetElementImpl.cpp:
(SVGFEOffsetElementImpl::filterEffect):
* ksvg2/svg/SVGFEOffsetElementImpl.h:
* ksvg2/svg/SVGFETileElementImpl.cpp:
(SVGFETileElementImpl::filterEffect):
* ksvg2/svg/SVGFETileElementImpl.h:
* ksvg2/svg/SVGFETurbulenceElementImpl.cpp:
(SVGFETurbulenceElementImpl::filterEffect):
* ksvg2/svg/SVGFETurbulenceElementImpl.h:
* ksvg2/svg/SVGFilterElementImpl.cpp:
(SVGFilterElementImpl::x):
(SVGFilterElementImpl::y):
(SVGFilterElementImpl::width):
(SVGFilterElementImpl::height):
(SVGFilterElementImpl::canvasResource):
* ksvg2/svg/SVGFilterPrimitiveStandardAttributesImpl.cpp:
(SVGFilterPrimitiveStandardAttributesImpl::setStandardAttributes):
* ksvg2/svg/SVGImageElementImpl.cpp:
(SVGImageElementImpl::notifyFinished):
(SVGImageElementImpl::finalizeStyle):
* ksvg2/svg/SVGStyledElementImpl.h:
* ksvg2/svg/SVGURIReferenceImpl.cpp:
(SVGURIReferenceImpl::parseMappedAttribute):
Revision Changes Path
1.393 +71 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.392
retrieving revision 1.393
diff -u -r1.392 -r1.393
--- ChangeLog 22 Nov 2005 10:03:22 -0000 1.392
+++ ChangeLog 22 Nov 2005 12:03:13 -0000 1.393
@@ -1,5 +1,76 @@
2005-11-22 eseidel <eseidel at apple.com>
+ Reviewed by mjs.
+
+ No additional test cases needed, this fixes 10+ existing tests.
+
+ Moved filter code off of createRenderer format, fixing filters.
+ Hacked in support for <image> and <feImage> (Pixmap only)
+ Simplified FEComponentTransfer function construction.
+
+ * kcanvas/KCanvasFilters.cpp:
+ * kcanvas/KCanvasFilters.h:
+ (KCanvasFEImage::KCanvasFEImage):
+ (KCanvasFEImage::~KCanvasFEImage):
+ (KCanvasFEImage::pixmap): added
+ (KCanvasFEImage::setPixmap): added
+ * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
+ (KCanvasFEImageQuartz::getCIFilter): added
+ * kcanvas/device/quartz/KCanvasResourcesQuartz.h:
+ * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
+ (KRenderingPaintServerImageQuartz::draw): added
+ * ksvg2/svg/SVGComponentTransferFunctionElementImpl.cpp:
+ (SVGComponentTransferFunctionElementImpl::transferFunction):
+ * ksvg2/svg/SVGComponentTransferFunctionElementImpl.h:
+ * ksvg2/svg/SVGFEBlendElementImpl.cpp:
+ (SVGFEBlendElementImpl::filterEffect):
+ * ksvg2/svg/SVGFEBlendElementImpl.h:
+ * ksvg2/svg/SVGFEColorMatrixElementImpl.cpp:
+ (SVGFEColorMatrixElementImpl::filterEffect):
+ * ksvg2/svg/SVGFEColorMatrixElementImpl.h:
+ * ksvg2/svg/SVGFEComponentTransferElementImpl.cpp:
+ (SVGFEComponentTransferElementImpl::filterEffect):
+ * ksvg2/svg/SVGFEComponentTransferElementImpl.h:
+ * ksvg2/svg/SVGFECompositeElementImpl.cpp:
+ (SVGFECompositeElementImpl::filterEffect):
+ * ksvg2/svg/SVGFECompositeElementImpl.h:
+ * ksvg2/svg/SVGFEFloodElementImpl.cpp:
+ (SVGFEFloodElementImpl::filterEffect):
+ * ksvg2/svg/SVGFEFloodElementImpl.h:
+ * ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp:
+ (SVGFEGaussianBlurElementImpl::filterEffect):
+ * ksvg2/svg/SVGFEGaussianBlurElementImpl.h:
+ * ksvg2/svg/SVGFEImageElementImpl.cpp:
+ (SVGFEImageElementImpl::filterEffect):
+ * ksvg2/svg/SVGFEMergeElementImpl.cpp:
+ (SVGFEMergeElementImpl::filterEffect):
+ * ksvg2/svg/SVGFEMergeElementImpl.h:
+ * ksvg2/svg/SVGFEOffsetElementImpl.cpp:
+ (SVGFEOffsetElementImpl::filterEffect):
+ * ksvg2/svg/SVGFEOffsetElementImpl.h:
+ * ksvg2/svg/SVGFETileElementImpl.cpp:
+ (SVGFETileElementImpl::filterEffect):
+ * ksvg2/svg/SVGFETileElementImpl.h:
+ * ksvg2/svg/SVGFETurbulenceElementImpl.cpp:
+ (SVGFETurbulenceElementImpl::filterEffect):
+ * ksvg2/svg/SVGFETurbulenceElementImpl.h:
+ * ksvg2/svg/SVGFilterElementImpl.cpp:
+ (SVGFilterElementImpl::x):
+ (SVGFilterElementImpl::y):
+ (SVGFilterElementImpl::width):
+ (SVGFilterElementImpl::height):
+ (SVGFilterElementImpl::canvasResource):
+ * ksvg2/svg/SVGFilterPrimitiveStandardAttributesImpl.cpp:
+ (SVGFilterPrimitiveStandardAttributesImpl::setStandardAttributes):
+ * ksvg2/svg/SVGImageElementImpl.cpp:
+ (SVGImageElementImpl::notifyFinished):
+ (SVGImageElementImpl::finalizeStyle):
+ * ksvg2/svg/SVGStyledElementImpl.h:
+ * ksvg2/svg/SVGURIReferenceImpl.cpp:
+ (SVGURIReferenceImpl::parseMappedAttribute):
+
+2005-11-22 eseidel <eseidel at apple.com>
+
SVG build fix only, no review.
I used debug-only method DOMString::ascii(), broke Deployment.
1.9 +0 -5 SVGSupport/kcanvas/KCanvasFilters.cpp
Index: KCanvasFilters.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/KCanvasFilters.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- KCanvasFilters.cpp 22 Nov 2005 00:09:09 -0000 1.8
+++ KCanvasFilters.cpp 22 Nov 2005 12:03:15 -0000 1.9
@@ -337,11 +337,6 @@
return ts;
}
-KCanvasFEImage::~KCanvasFEImage()
-{
- delete m_image;
-}
-
QTextStream &KCanvasFEImage::externalRepresentation(QTextStream &ts) const
{
ts << "[type=IMAGE] ";
1.9 +9 -6 SVGSupport/kcanvas/KCanvasFilters.h
Index: KCanvasFilters.h
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/KCanvasFilters.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- KCanvasFilters.h 22 Nov 2005 00:09:10 -0000 1.8
+++ KCanvasFilters.h 22 Nov 2005 12:03:15 -0000 1.9
@@ -423,16 +423,19 @@
class KCanvasFEImage : public KCanvasFilterEffect
{
public:
- KCanvasFEImage() : m_image(0) {}
- virtual ~KCanvasFEImage();
-
- khtml::RenderObject *image() const { return m_image; }
- void setImage(khtml::RenderObject *image) { m_image = image; }
+ KCanvasFEImage() { }
+ virtual ~KCanvasFEImage() { };
+
+ // FIXME: Eventually we need to support <svg> (RenderObject *) as well as pixmap data.
+
+ QPixmap pixmap() const { return m_pixmap; }
+ void setPixmap(const QPixmap& pixmap) { m_pixmap = pixmap; }
QTextStream &externalRepresentation(QTextStream &) const;
private:
- khtml::RenderObject *m_image;
+ khtml::RenderObject *m_renderObject;
+ QPixmap m_pixmap;
};
class KCanvasFEMerge : public KCanvasFilterEffect
1.12 +5 -7 SVGSupport/kcanvas/device/quartz/KCanvasFilterQuartz.mm
Index: KCanvasFilterQuartz.mm
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasFilterQuartz.mm,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- KCanvasFilterQuartz.mm 21 Nov 2005 08:29:15 -0000 1.11
+++ KCanvasFilterQuartz.mm 22 Nov 2005 12:03:15 -0000 1.12
@@ -522,13 +522,11 @@
CIFilter *KCanvasFEImageQuartz::getCIFilter(KCanvasFilterQuartz *quartzFilter) const
{
- // FIXME: incomplete.
-// KCanvasImage *item = image();
-// // actually draw the item into an image...
-// CIImage *ciImage = [CIImage imageWithCGLayer:cgLayer];
-// quartzFilter->setOutputImage(this, ciImage);
-
- return nil; // really want a noop filter... or better design.
+ // FIXME: This is just a hack for now, and only support pixmaps
+ CIImage *ciImage = [CIImage imageWithCGImage:pixmap().imageRef()];
+ quartzFilter->setOutputImage(this, ciImage);
+
+ return nil; // really want a noop filter... or better design.
}
CIFilter *KCanvasFEGaussianBlurQuartz::getCIFilter(KCanvasFilterQuartz *quartzFilter) const
1.5 +1 -1 SVGSupport/kcanvas/device/quartz/KCanvasResourcesQuartz.h
Index: KCanvasResourcesQuartz.h
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasResourcesQuartz.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- KCanvasResourcesQuartz.h 21 Nov 2005 08:29:15 -0000 1.4
+++ KCanvasResourcesQuartz.h 22 Nov 2005 12:03:15 -0000 1.5
@@ -76,7 +76,7 @@
QSize size() { return m_size; }
- private:
+private:
QSize m_size;
CGLayerRef m_cgLayer;
};
1.9 +6 -1 SVGSupport/kcanvas/device/quartz/KRenderingPaintServerQuartz.mm
Index: KRenderingPaintServerQuartz.mm
===================================================================
RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KRenderingPaintServerQuartz.mm,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- KRenderingPaintServerQuartz.mm 21 Nov 2005 08:29:15 -0000 1.8
+++ KRenderingPaintServerQuartz.mm 22 Nov 2005 12:03:15 -0000 1.9
@@ -149,5 +149,10 @@
void KRenderingPaintServerImageQuartz::draw(KRenderingDeviceContext *renderingContext, const KCanvasCommonArgs &args, KCPaintTargetType type) const
{
- // FIXME: NOT IMPLEMENTED
+ // FIXME: total hack
+ KRenderingDeviceContextQuartz *quartzContext = static_cast<KRenderingDeviceContextQuartz *>(renderingContext);
+ CGContextRef context = quartzContext->cgContext();
+ CGRect objectBBox = CGContextGetPathBoundingBox(context);
+ QPainter p;
+ p.drawPixmap(QPoint(objectBBox.origin), image(), image().rect());
}
1.9 +12 -0 SVGSupport/ksvg2/svg/SVGComponentTransferFunctionElementImpl.cpp
Index: SVGComponentTransferFunctionElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGComponentTransferFunctionElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGComponentTransferFunctionElementImpl.cpp 21 Nov 2005 08:29:35 -0000 1.8
+++ SVGComponentTransferFunctionElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.9
@@ -141,4 +141,16 @@
SVGElementImpl::parseMappedAttribute(attr);
}
+KCComponentTransferFunction SVGComponentTransferFunctionElementImpl::transferFunction() const
+{
+ KCComponentTransferFunction func;
+ func.type = (KCComponentTransferType)(type()->baseVal() - 1);
+ func.slope = slope()->baseVal();
+ func.intercept = intercept()->baseVal();
+ func.amplitude = amplitude()->baseVal();
+ func.exponent = exponent()->baseVal();
+ func.offset = offset()->baseVal();
+ return func;
+}
+
// vim:ts=4:noet
1.6 +3 -2 SVGSupport/ksvg2/svg/SVGComponentTransferFunctionElementImpl.h
Index: SVGComponentTransferFunctionElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGComponentTransferFunctionElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGComponentTransferFunctionElementImpl.h 21 Nov 2005 08:29:35 -0000 1.5
+++ SVGComponentTransferFunctionElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -24,8 +24,7 @@
#define KSVG_SVGComponentTransferFunctionElementImpl_H
#include "SVGElementImpl.h"
-
-class KCanvasComponentTransferFunctionElement;
+#include "KCanvasFilters.h"
namespace KSVG
{
@@ -50,6 +49,8 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
+
+ KCComponentTransferFunction transferFunction() const;
private:
mutable SVGAnimatedEnumerationImpl *m_type;
1.8 +5 -7 SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.cpp
Index: SVGFEBlendElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SVGFEBlendElementImpl.cpp 21 Nov 2005 08:29:37 -0000 1.7
+++ SVGFEBlendElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.8
@@ -99,18 +99,16 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFEBlendElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
+KCanvasFilterEffect *SVGFEBlendElementImpl::filterEffect() const
{
- m_filterEffect = static_cast<KCanvasFEBlend *>(canvas()->renderingDevice()->createFilterEffect(FE_BLEND));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFEBlend *>(canvas()->renderingDevice()->createFilterEffect(FE_BLEND));
+ if (!m_filterEffect)
+ return 0;
m_filterEffect->setBlendMode((KCBlendModeType)(mode()->baseVal()-1));
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
m_filterEffect->setIn2(KDOM::DOMString(in2()->baseVal()).qstring());
setStandardAttributes(m_filterEffect);
- return 0;
-}
-
-KCanvasFilterEffect *SVGFEBlendElementImpl::filterEffect() const
-{
return m_filterEffect;
}
1.7 +0 -4 SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.h
Index: SVGFEBlendElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SVGFEBlendElementImpl.h 21 Nov 2005 08:29:37 -0000 1.6
+++ SVGFEBlendElementImpl.h 22 Nov 2005 12:03:16 -0000 1.7
@@ -47,10 +47,6 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
private:
1.9 +7 -7 SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.cpp
Index: SVGFEColorMatrixElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGFEColorMatrixElementImpl.cpp 21 Nov 2005 08:29:37 -0000 1.8
+++ SVGFEColorMatrixElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.9
@@ -102,9 +102,13 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFEColorMatrixElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *)
+KCanvasFilterEffect *SVGFEColorMatrixElementImpl::filterEffect() const
{
- m_filterEffect = static_cast<KCanvasFEColorMatrix *>(canvas()->renderingDevice()->createFilterEffect(FE_COLOR_MATRIX));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFEColorMatrix *>(canvas()->renderingDevice()->createFilterEffect(FE_COLOR_MATRIX));
+ if (!m_filterEffect)
+ return 0;
+
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
setStandardAttributes(m_filterEffect);
Q3ValueList<float> _values;
@@ -114,11 +118,7 @@
_values.append(numbers->getItem(i)->value());
m_filterEffect->setValues(_values);
m_filterEffect->setType((KCColorMatrixType)(type()->baseVal() - 1));
- return 0;
-}
-
-KCanvasFilterEffect *SVGFEColorMatrixElementImpl::filterEffect() const
-{
+
return m_filterEffect;
}
1.6 +1 -5 SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.h
Index: SVGFEColorMatrixElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFEColorMatrixElementImpl.h 21 Nov 2005 08:29:37 -0000 1.5
+++ SVGFEColorMatrixElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -47,11 +47,7 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
-
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
+
virtual KCanvasFilterEffect *filterEffect() const;
private:
1.9 +15 -62 SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.cpp
Index: SVGFEComponentTransferElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGFEComponentTransferElementImpl.cpp 21 Nov 2005 08:29:37 -0000 1.8
+++ SVGFEComponentTransferElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.9
@@ -73,75 +73,28 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFEComponentTransferElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
+KCanvasFilterEffect *SVGFEComponentTransferElementImpl::filterEffect() const
{
- m_filterEffect = static_cast<KCanvasFEComponentTransfer *>(canvas()->renderingDevice()->createFilterEffect(FE_COMPONENT_TRANSFER));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFEComponentTransfer *>(canvas()->renderingDevice()->createFilterEffect(FE_COMPONENT_TRANSFER));
if (!m_filterEffect)
return 0;
-
+
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
setStandardAttributes(m_filterEffect);
- return 0;
-}
+
+ for (KDOM::NodeImpl *n = firstChild(); n != 0; n = n->nextSibling()) {
+ if (n->hasTagName(SVGNames::feFuncRTag))
+ m_filterEffect->setRedFunction(static_cast<SVGFEFuncRElementImpl *>(n)->transferFunction());
+ else if (n->hasTagName(SVGNames::feFuncGTag))
+ m_filterEffect->setGreenFunction(static_cast<SVGFEFuncGElementImpl *>(n)->transferFunction());
+ else if (n->hasTagName(SVGNames::feFuncBTag))
+ m_filterEffect->setBlueFunction(static_cast<SVGFEFuncBElementImpl *>(n)->transferFunction());
+ else if (n->hasTagName(SVGNames::feFuncATag))
+ m_filterEffect->setAlphaFunction(static_cast<SVGFEFuncAElementImpl *>(n)->transferFunction());
+ }
-KCanvasFilterEffect *SVGFEComponentTransferElementImpl::filterEffect() const
-{
return m_filterEffect;
}
-void SVGFEComponentTransferElementImpl::closeRenderer()
-{
- if (!m_filterEffect)
- return;
-
- for(KDOM::NodeImpl *n = firstChild(); n != 0; n = n->nextSibling())
- {
- KCComponentTransferFunction func;
- if(n->hasTagName(SVGNames::feFuncRTag))
- {
- SVGFEFuncRElementImpl *funcR = static_cast<SVGFEFuncRElementImpl *>(n);
- func.type = (KCComponentTransferType)(funcR->type()->baseVal() - 1);
- func.slope = funcR->slope()->baseVal();
- func.intercept = funcR->intercept()->baseVal();
- func.amplitude = funcR->amplitude()->baseVal();
- func.exponent = funcR->exponent()->baseVal();
- func.offset = funcR->offset()->baseVal();
- m_filterEffect->setRedFunction(func);
- }
- else if(n->hasTagName(SVGNames::feFuncGTag))
- {
- SVGFEFuncGElementImpl *funcG = static_cast<SVGFEFuncGElementImpl *>(n);
- func.type = (KCComponentTransferType)(funcG->type()->baseVal() - 1);
- func.slope = funcG->slope()->baseVal();
- func.intercept = funcG->intercept()->baseVal();
- func.amplitude = funcG->amplitude()->baseVal();
- func.exponent = funcG->exponent()->baseVal();
- func.offset = funcG->offset()->baseVal();
- m_filterEffect->setGreenFunction(func);
- }
- else if(n->hasTagName(SVGNames::feFuncBTag))
- {
- SVGFEFuncBElementImpl *funcB = static_cast<SVGFEFuncBElementImpl *>(n);
- func.type = (KCComponentTransferType)(funcB->type()->baseVal() - 1);
- func.slope = funcB->slope()->baseVal();
- func.intercept = funcB->intercept()->baseVal();
- func.amplitude = funcB->amplitude()->baseVal();
- func.exponent = funcB->exponent()->baseVal();
- func.offset = funcB->offset()->baseVal();
- m_filterEffect->setBlueFunction(func);
- }
- else if(n->hasTagName(SVGNames::feFuncATag))
- {
- SVGFEFuncAElementImpl *funcA = static_cast<SVGFEFuncAElementImpl *>(n);
- func.type = (KCComponentTransferType)(funcA->type()->baseVal() - 1);
- func.slope = funcA->slope()->baseVal();
- func.intercept = funcA->intercept()->baseVal();
- func.amplitude = funcA->amplitude()->baseVal();
- func.exponent = funcA->exponent()->baseVal();
- func.offset = funcA->offset()->baseVal();
- m_filterEffect->setAlphaFunction(func);
- }
- }
-}
-
// vim:ts=4:noet
1.6 +0 -6 SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.h
Index: SVGFEComponentTransferElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFEComponentTransferElementImpl.h 21 Nov 2005 08:29:37 -0000 1.5
+++ SVGFEComponentTransferElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -44,14 +44,8 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
- virtual void closeRenderer();
-
private:
mutable SVGAnimatedStringImpl *m_in1;
mutable KCanvasFEComponentTransfer *m_filterEffect;
1.8 +5 -7 SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.cpp
Index: SVGFECompositeElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SVGFECompositeElementImpl.cpp 21 Nov 2005 08:29:38 -0000 1.7
+++ SVGFECompositeElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.8
@@ -138,9 +138,12 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFECompositeElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
+KCanvasFilterEffect *SVGFECompositeElementImpl::filterEffect() const
{
- m_filterEffect = static_cast<KCanvasFEComposite *>(canvas()->renderingDevice()->createFilterEffect(FE_COMPOSITE));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFEComposite *>(canvas()->renderingDevice()->createFilterEffect(FE_COMPOSITE));
+ if (!m_filterEffect)
+ return 0;
m_filterEffect->setOperation((KCCompositeOperationType)(_operator()->baseVal() - 1));
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
m_filterEffect->setIn2(KDOM::DOMString(in2()->baseVal()).qstring());
@@ -149,11 +152,6 @@
m_filterEffect->setK2(k2()->baseVal());
m_filterEffect->setK3(k3()->baseVal());
m_filterEffect->setK4(k4()->baseVal());
- return 0;
-}
-
-KCanvasFilterEffect *SVGFECompositeElementImpl::filterEffect() const
-{
return m_filterEffect;
}
1.6 +0 -4 SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.h
Index: SVGFECompositeElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFECompositeElementImpl.h 21 Nov 2005 08:29:38 -0000 1.5
+++ SVGFECompositeElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -52,10 +52,6 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
private:
1.8 +9 -8 SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.cpp
Index: SVGFEFloodElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SVGFEFloodElementImpl.cpp 21 Nov 2005 08:29:38 -0000 1.7
+++ SVGFEFloodElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.8
@@ -66,18 +66,19 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFEFloodElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
+KCanvasFilterEffect *SVGFEFloodElementImpl::filterEffect() const
{
- m_filterEffect = static_cast<KCanvasFEFlood *>(canvas()->renderingDevice()->createFilterEffect(FE_FLOOD));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFEFlood *>(canvas()->renderingDevice()->createFilterEffect(FE_FLOOD));
+ if (!m_filterEffect)
+ return 0;
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
setStandardAttributes(m_filterEffect);
- //m_filterEffect->setFloodColor(static_cast<SVGRenderStyle *>(renderStyle())->floodColor());
- //m_filterEffect->setFloodOpacity(static_cast<SVGRenderStyle *>(renderStyle())->floodOpacity());
- return 0;
-}
+ // 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());
-KCanvasFilterEffect *SVGFEFloodElementImpl::filterEffect() const
-{
return m_filterEffect;
}
1.7 +0 -4 SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.h
Index: SVGFEFloodElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SVGFEFloodElementImpl.h 21 Nov 2005 08:29:38 -0000 1.6
+++ SVGFEFloodElementImpl.h 22 Nov 2005 12:03:16 -0000 1.7
@@ -44,10 +44,6 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
private:
1.9 +5 -7 SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp
Index: SVGFEGaussianBlurElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGFEGaussianBlurElementImpl.cpp 21 Nov 2005 08:29:38 -0000 1.8
+++ SVGFEGaussianBlurElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.9
@@ -99,18 +99,16 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFEGaussianBlurElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
+KCanvasFilterEffect *SVGFEGaussianBlurElementImpl::filterEffect() const
{
- m_filterEffect = static_cast<KCanvasFEGaussianBlur *>(canvas()->renderingDevice()->createFilterEffect(FE_GAUSSIAN_BLUR));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFEGaussianBlur *>(canvas()->renderingDevice()->createFilterEffect(FE_GAUSSIAN_BLUR));
+ if (!m_filterEffect)
+ return 0;
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
setStandardAttributes(m_filterEffect);
m_filterEffect->setStdDeviationX(stdDeviationX()->baseVal());
m_filterEffect->setStdDeviationY(stdDeviationY()->baseVal());
- return 0;
-}
-
-KCanvasFilterEffect *SVGFEGaussianBlurElementImpl::filterEffect() const
-{
return m_filterEffect;
}
1.6 +0 -4 SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.h
Index: SVGFEGaussianBlurElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFEGaussianBlurElementImpl.h 21 Nov 2005 08:29:39 -0000 1.5
+++ SVGFEGaussianBlurElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -49,10 +49,6 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
private:
1.9 +4 -3 SVGSupport/ksvg2/svg/SVGFEImageElementImpl.cpp
Index: SVGFEImageElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEImageElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGFEImageElementImpl.cpp 22 Nov 2005 00:09:03 -0000 1.8
+++ SVGFEImageElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.9
@@ -101,10 +101,11 @@
KCanvasFilterEffect *SVGFEImageElementImpl::filterEffect() const
{
- if (!m_filterEffect) {
+ if (!m_filterEffect)
m_filterEffect = static_cast<KCanvasFEImage *>(canvas()->renderingDevice()->createFilterEffect(FE_IMAGE));
- setStandardAttributes(m_filterEffect);
- }
+ if (!m_filterEffect)
+ return 0;
+ setStandardAttributes(m_filterEffect);
return m_filterEffect;
}
1.8 +10 -15 SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.cpp
Index: SVGFEMergeElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SVGFEMergeElementImpl.cpp 21 Nov 2005 08:29:39 -0000 1.7
+++ SVGFEMergeElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.8
@@ -50,32 +50,27 @@
{
}
-khtml::RenderObject *SVGFEMergeElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *)
-{
- m_filterEffect = static_cast<KCanvasFEMerge *>(canvas()->renderingDevice()->createFilterEffect(FE_MERGE));
- setStandardAttributes(m_filterEffect);
- return 0;
-}
-
KCanvasFilterEffect *SVGFEMergeElementImpl::filterEffect() const
{
- return m_filterEffect;
-}
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFEMerge *>(canvas()->renderingDevice()->createFilterEffect(FE_MERGE));
+ if (!m_filterEffect)
+ return 0;
+ setStandardAttributes(m_filterEffect);
-void SVGFEMergeElementImpl::closeRenderer()
-{
QStringList mergeInputs;
for(KDOM::NodeImpl *n = firstChild(); n != 0; n = n->nextSibling())
{
if(n->hasTagName(SVGNames::feMergeNodeTag))
{
- SVGFEMergeNodeElementImpl *mergeNode = static_cast<SVGFEMergeNodeElementImpl *>(n);
- mergeInputs.append(KDOM::DOMString(mergeNode->in1()->baseVal()).qstring());
+ KDOM::DOMString mergeInput = static_cast<SVGFEMergeNodeElementImpl *>(n)->in1()->baseVal();
+ mergeInputs.append(mergeInput.qstring());
}
}
- if(m_filterEffect) // we may not be attached...
- m_filterEffect->setMergeInputs(mergeInputs);
+ m_filterEffect->setMergeInputs(mergeInputs);
+
+ return m_filterEffect;
}
// vim:ts=4:noet
1.6 +0 -6 SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.h
Index: SVGFEMergeElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFEMergeElementImpl.h 21 Nov 2005 08:29:39 -0000 1.5
+++ SVGFEMergeElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -36,14 +36,8 @@
SVGFEMergeElementImpl(const KDOM::QualifiedName& tagName, KDOM::DocumentImpl *doc);
virtual ~SVGFEMergeElementImpl();
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
- virtual void closeRenderer();
-
private:
mutable KCanvasFEMerge *m_filterEffect;
};
1.9 +5 -7 SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.cpp
Index: SVGFEOffsetElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGFEOffsetElementImpl.cpp 21 Nov 2005 08:29:39 -0000 1.8
+++ SVGFEOffsetElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.9
@@ -90,18 +90,16 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFEOffsetElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
+KCanvasFilterEffect *SVGFEOffsetElementImpl::filterEffect() const
{
- m_filterEffect = static_cast<KCanvasFEOffset *>(canvas()->renderingDevice()->createFilterEffect(FE_OFFSET));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFEOffset *>(canvas()->renderingDevice()->createFilterEffect(FE_OFFSET));
+ if (!m_filterEffect)
+ return 0;
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
setStandardAttributes(m_filterEffect);
m_filterEffect->setDx(dx()->baseVal());
m_filterEffect->setDy(dy()->baseVal());
- return 0;
-}
-
-KCanvasFilterEffect *SVGFEOffsetElementImpl::filterEffect() const
-{
return m_filterEffect;
}
1.6 +0 -4 SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.h
Index: SVGFEOffsetElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFEOffsetElementImpl.h 21 Nov 2005 08:29:39 -0000 1.5
+++ SVGFEOffsetElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -47,10 +47,6 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
private:
1.8 +5 -7 SVGSupport/ksvg2/svg/SVGFETileElementImpl.cpp
Index: SVGFETileElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETileElementImpl.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SVGFETileElementImpl.cpp 21 Nov 2005 08:29:39 -0000 1.7
+++ SVGFETileElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.8
@@ -65,16 +65,14 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFETileElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
+KCanvasFilterEffect *SVGFETileElementImpl::filterEffect() const
{
- m_filterEffect = static_cast<KCanvasFETile *>(canvas()->renderingDevice()->createFilterEffect(FE_TILE));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFETile *>(canvas()->renderingDevice()->createFilterEffect(FE_TILE));
+ if (!m_filterEffect)
+ return 0;
m_filterEffect->setIn(KDOM::DOMString(in1()->baseVal()).qstring());
setStandardAttributes(m_filterEffect);
- return 0;
-}
-
-KCanvasFilterEffect *SVGFETileElementImpl::filterEffect() const
-{
return m_filterEffect;
}
1.6 +0 -4 SVGSupport/ksvg2/svg/SVGFETileElementImpl.h
Index: SVGFETileElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETileElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFETileElementImpl.h 21 Nov 2005 08:29:39 -0000 1.5
+++ SVGFETileElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -44,10 +44,6 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
private:
1.10 +3 -8 SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.cpp
Index: SVGFETurbulenceElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SVGFETurbulenceElementImpl.cpp 21 Nov 2005 08:29:39 -0000 1.9
+++ SVGFETurbulenceElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.10
@@ -137,10 +137,10 @@
SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
}
-khtml::RenderObject *SVGFETurbulenceElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
+KCanvasFilterEffect *SVGFETurbulenceElementImpl::filterEffect() const
{
-
- m_filterEffect = static_cast<KCanvasFETurbulence *>(canvas()->renderingDevice()->createFilterEffect(FE_TURBULENCE));
+ if (!m_filterEffect)
+ m_filterEffect = static_cast<KCanvasFETurbulence *>(canvas()->renderingDevice()->createFilterEffect(FE_TURBULENCE));
if (!m_filterEffect)
return 0;
@@ -151,11 +151,6 @@
m_filterEffect->setNumOctaves(numOctaves()->baseVal());
m_filterEffect->setSeed(seed()->baseVal());
m_filterEffect->setStitchTiles(stitchTiles()->baseVal() == SVG_STITCHTYPE_STITCH);
- return 0;
-}
-
-KCanvasFilterEffect *SVGFETurbulenceElementImpl::filterEffect() const
-{
return m_filterEffect;
}
1.6 +0 -4 SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.h
Index: SVGFETurbulenceElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGFETurbulenceElementImpl.h 21 Nov 2005 08:29:39 -0000 1.5
+++ SVGFETurbulenceElementImpl.h 22 Nov 2005 12:03:16 -0000 1.6
@@ -51,10 +51,6 @@
// Derived from: 'ElementImpl'
virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
- virtual khtml::RenderObject *createRenderer(RenderArena *arena, khtml::RenderStyle *style);
-
- virtual bool rendererIsNeeded(khtml::RenderStyle *) { return true; }
-
virtual KCanvasFilterEffect *filterEffect() const;
private:
1.9 +5 -5 SVGSupport/ksvg2/svg/SVGFilterElementImpl.cpp
Index: SVGFilterElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFilterElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGFilterElementImpl.cpp 22 Nov 2005 00:09:04 -0000 1.8
+++ SVGFilterElementImpl.cpp 22 Nov 2005 12:03:16 -0000 1.9
@@ -95,7 +95,7 @@
// Spec : If the attribute is not specified, the effect is as if a value of "-10%" were specified.
if(!m_x)
{
- lazy_create<SVGAnimatedLengthImpl>(m_x, this, LM_WIDTH, viewportElement());
+ lazy_create<SVGAnimatedLengthImpl>(m_x, this, LM_WIDTH, viewportElement());
m_x->baseVal()->setValueAsString(KDOM::DOMString("-10%").impl());
return m_x;
}
@@ -108,7 +108,7 @@
// Spec : If the attribute is not specified, the effect is as if a value of "-10%" were specified.
if(!m_y)
{
- lazy_create<SVGAnimatedLengthImpl>(m_y, this, LM_HEIGHT, viewportElement());
+ lazy_create<SVGAnimatedLengthImpl>(m_y, this, LM_HEIGHT, viewportElement());
m_y->baseVal()->setValueAsString(KDOM::DOMString("-10%").impl());
return m_y;
}
@@ -121,7 +121,7 @@
// Spec : If the attribute is not specified, the effect is as if a value of "120%" were specified.
if(!m_width)
{
- lazy_create<SVGAnimatedLengthImpl>(m_width, this, LM_WIDTH, viewportElement());
+ lazy_create<SVGAnimatedLengthImpl>(m_width, this, LM_WIDTH, viewportElement());
m_width->baseVal()->setValueAsString(KDOM::DOMString("120%").impl());
return m_width;
}
@@ -134,7 +134,7 @@
// Spec : If the attribute is not specified, the effect is as if a value of "120%" were specified.
if(!m_height)
{
- lazy_create<SVGAnimatedLengthImpl>(m_height, this, LM_HEIGHT, viewportElement());
+ lazy_create<SVGAnimatedLengthImpl>(m_height, this, LM_HEIGHT, viewportElement());
m_height->baseVal()->setValueAsString(KDOM::DOMString("120%").impl());
return m_height;
}
@@ -193,7 +193,7 @@
KCanvasFilter *SVGFilterElementImpl::canvasResource()
{
- if(!canvas())
+ if(!attached())
return 0;
if(!m_filter)
1.9 +4 -1 SVGSupport/ksvg2/svg/SVGFilterPrimitiveStandardAttributesImpl.cpp
Index: SVGFilterPrimitiveStandardAttributesImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFilterPrimitiveStandardAttributesImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGFilterPrimitiveStandardAttributesImpl.cpp 21 Nov 2005 08:29:40 -0000 1.8
+++ SVGFilterPrimitiveStandardAttributesImpl.cpp 22 Nov 2005 12:03:16 -0000 1.9
@@ -22,6 +22,7 @@
#include "config.h"
#include <kdom/core/AttrImpl.h>
+#include <kxmlcore/Assertions.h>
#include "ksvg.h"
#include "SVGNames.h"
@@ -119,7 +120,9 @@
void SVGFilterPrimitiveStandardAttributesImpl::setStandardAttributes(KCanvasFilterEffect *filterEffect) const
{
- if (!filterEffect) return;
+ ASSERT(filterEffect);
+ if (!filterEffect)
+ return;
bool bbox = false;
if(parentNode() && parentNode()->hasTagName(SVGNames::filterTag))
bbox = static_cast<SVGFilterElementImpl *>(parentNode())->primitiveUnits()->baseVal() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
1.9 +10 -14 SVGSupport/ksvg2/svg/SVGImageElementImpl.cpp
Index: SVGImageElementImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGImageElementImpl.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SVGImageElementImpl.cpp 21 Nov 2005 08:29:40 -0000 1.8
+++ SVGImageElementImpl.cpp 22 Nov 2005 12:03:17 -0000 1.9
@@ -201,32 +201,28 @@
m_cachedDocument = 0;
}
else
+#endif
if(finishedObj == m_cachedImage)
{
- if(m_canvasItem && m_canvasItem->style())
- {
- KRenderingFillPainter *fillPainter = m_canvasItem->style()->fillPainter();
+ if(renderer() && renderer()->isRenderPath() && renderer()->style())
+ {
+ RenderPath *item = static_cast<RenderPath *>(renderer());
+ KRenderingFillPainter *fillPainter = item->canvasStyle()->fillPainter();
if(!fillPainter)
return;
KRenderingPaintServer *fillPaintServer = fillPainter->paintServer();
+ if (fillPaintServer->type() != PS_IMAGE)
+ return;
KRenderingPaintServerImage *fillPaintServerImage = static_cast<KRenderingPaintServerImage *>(fillPaintServer);
+ fillPaintServerImage->setImage(m_cachedImage->pixmap());
- QPixmap pixm(m_cachedImage->pixmap_size());
- kdDebug() << "pixm w : " << pixm.size() << endl;
- QPainter p(&pixm);
- ImagePainter ip(m_cachedImage->image());
- ip.paint(0, 0, &p, 0, 0, pixm.width(), pixm.height());
- KCanvasImageBuffer *imageBuffer = new KCanvasImageBuffer(pixm);
- fillPaintServerImage->setImage(imageBuffer);
-
- m_canvasItem->invalidate();
+ item->setNeedsLayout(true);
}
m_cachedImage->deref(this);
m_cachedImage = 0;
}
-#endif
}
void SVGImageElementImpl::finalizeStyle(KCanvasRenderingStyle *style, bool /* needFillStrokeUpdate */)
@@ -242,7 +238,7 @@
style->disableFillPainter();
style->disableStrokePainter();
- KRenderingPaintServer *fillPaintServer = canvas()->renderingDevice()->createPaintServer(KCPaintServerType(PS_IMAGE));
+ KRenderingPaintServer *fillPaintServer = canvas()->renderingDevice()->createPaintServer(PS_IMAGE);
style->fillPainter()->setPaintServer(fillPaintServer);
// if(!m_cachedDocument) // bitmap
1.8 +0 -3 SVGSupport/ksvg2/svg/SVGStyledElementImpl.h
Index: SVGStyledElementImpl.h
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGStyledElementImpl.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SVGStyledElementImpl.h 21 Nov 2005 08:29:42 -0000 1.7
+++ SVGStyledElementImpl.h 22 Nov 2005 12:03:17 -0000 1.8
@@ -74,9 +74,6 @@
virtual const SVGStyledElementImpl *pushAttributeContext(const SVGStyledElementImpl *context);
protected:
- friend class SVGDocumentImpl; // Needs renderStyle accesss...
- friend class SVGClipPathElementImpl; // Needs renderStyle access..
-
virtual void finalizeStyle(KCanvasRenderingStyle *style, bool needFillStrokeUpdate = true);
void updateCanvasItem(); // Handles "path data" object changes... (not for style/transform!)
1.8 +1 -1 SVGSupport/ksvg2/svg/SVGURIReferenceImpl.cpp
Index: SVGURIReferenceImpl.cpp
===================================================================
RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGURIReferenceImpl.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SVGURIReferenceImpl.cpp 21 Nov 2005 08:29:43 -0000 1.7
+++ SVGURIReferenceImpl.cpp 22 Nov 2005 12:03:17 -0000 1.8
@@ -51,7 +51,7 @@
bool SVGURIReferenceImpl::parseMappedAttribute(KDOM::MappedAttributeImpl *attr)
{
- if (attr->name() == SVGNames::hrefAttr) // || attr->name() == XLinkNames::hrefAttr)
+ if (attr->name() == SVGNames::hrefAttr || attr->name().localName() == "href") // || attr->name() == XLinkNames::hrefAttr)
{
href()->setBaseVal(attr->value().impl());
return true;
More information about the webkit-changes
mailing list