[webkit-changes] cvs commit: SVGSupport/ksvg2/svg 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 SVGFEImageElementImpl.h SVGFEMergeElementImpl.cpp SVGFEMergeElementImpl.h SVGFEOffsetElementImpl.cpp SVGFEOffsetElementImpl.h SVGFETileElementImpl.cpp SVGFETileElementImpl.h SVGFETurbulenceElementImpl.cpp SVGFETurbulenceElementImpl.h SVGFilterElementImpl.cpp SVGStyledTransformableElementImpl.cpp

Eric eseidel at opensource.apple.com
Tue Nov 22 15:04:34 PST 2005


eseidel     05/11/22 15:04:34

  Modified:    .        ChangeLog
               kcanvas  KCanvasFilters.h
               kcanvas/device KRenderingDevice.h
               kcanvas/device/quartz KCanvasFilterQuartz.h
                        KCanvasFilterQuartz.mm KCanvasItemQuartz.mm
                        KCanvasResourcesQuartz.mm KRenderingDeviceQuartz.h
                        KRenderingDeviceQuartz.mm
               kwq      KWQPainter.h KWQPainter.mm
               ksvg2/svg 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 SVGFEImageElementImpl.h
                        SVGFEMergeElementImpl.cpp SVGFEMergeElementImpl.h
                        SVGFEOffsetElementImpl.cpp SVGFEOffsetElementImpl.h
                        SVGFETileElementImpl.cpp SVGFETileElementImpl.h
                        SVGFETurbulenceElementImpl.cpp
                        SVGFETurbulenceElementImpl.h
                        SVGFilterElementImpl.cpp
                        SVGStyledTransformableElementImpl.cpp
  Log:
  Bug #: none
  Submitted by: eseidel
  Reviewed by: No review required, svg target only.
          No additional test cases needed, this fixes 10+ existing tests.
  
          Fixed filters by fixing how KCanvasDeviceContexts are pushed/poped
          They now properly update the NSGrapicsContext currentContext, when
          being pushed/poped which allows for QPainter to notice the change.
          I also fixed <feImage> while there and updated all of the
          subclassed filterEffect() methods to return to proper subclass.
  
          * kcanvas/KCanvasFilters.h:
          * kcanvas/device/KRenderingDevice.h:
          * kcanvas/device/quartz/KCanvasFilterQuartz.h:
          * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
          (KCanvasFilterQuartz::KCanvasFilterQuartz):
          (KCanvasFilterQuartz::~KCanvasFilterQuartz):
          (KCanvasFilterQuartz::prepareFilter): fixed to push context
          (KCanvasFilterQuartz::applyFilter): fixed to pop context
          (KCanvasFEImageQuartz::getCIFilter): fixed :)
          * kcanvas/device/quartz/KCanvasItemQuartz.mm:
          (KCanvasItemQuartz::paint): fixed to push/pop context
          * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
          (KCanvasContainerQuartz::paint): fixed to push/pop context
          * kcanvas/device/quartz/KRenderingDeviceQuartz.h:
          (KRenderingDeviceContextQuartz::cgContext):
          * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
          (KRenderingDeviceContextQuartz::KRenderingDeviceContextQuartz):
          (KRenderingDeviceContextQuartz::~KRenderingDeviceContextQuartz):
          (KRenderingDeviceContextQuartz::nsGraphicsContext): added
          (KRenderingDeviceQuartz::currentCGContext):
          (KRenderingDeviceQuartz::pushContext): now updates NSGraphicsContext
          (KRenderingDeviceQuartz::popContext): now updates NSGraphicsContext
          (KRenderingDeviceQuartz::contextForImage): fixed spacing
          (KRenderingDeviceQuartz::createPaintServer): removed comment
          * ksvg2/svg/SVGFEBlendElementImpl.cpp:
          (SVGFEBlendElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFEBlendElementImpl.h:
          * ksvg2/svg/SVGFEColorMatrixElementImpl.cpp:
          (SVGFEColorMatrixElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFEColorMatrixElementImpl.h:
          * ksvg2/svg/SVGFEComponentTransferElementImpl.cpp:
          (SVGFEComponentTransferElementImpl::filterEffect): returns sublcass
          * ksvg2/svg/SVGFEComponentTransferElementImpl.h:
          * ksvg2/svg/SVGFECompositeElementImpl.cpp:
          (SVGFECompositeElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFECompositeElementImpl.h:
          * ksvg2/svg/SVGFEFloodElementImpl.cpp:
          (SVGFEFloodElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFEFloodElementImpl.h:
          * ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp:
          (SVGFEGaussianBlurElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFEGaussianBlurElementImpl.h:
          * ksvg2/svg/SVGFEImageElementImpl.cpp:
          (SVGFEImageElementImpl::notifyFinished): updates filterEffect on load
          (SVGFEImageElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFEImageElementImpl.h:
          * ksvg2/svg/SVGFEMergeElementImpl.cpp:
          (SVGFEMergeElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFEMergeElementImpl.h:
          * ksvg2/svg/SVGFEOffsetElementImpl.cpp:
          (SVGFEOffsetElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFEOffsetElementImpl.h:
          * ksvg2/svg/SVGFETileElementImpl.cpp:
          (SVGFETileElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFETileElementImpl.h:
          * ksvg2/svg/SVGFETurbulenceElementImpl.cpp:
          (SVGFETurbulenceElementImpl::filterEffect): now returns subclass
          * ksvg2/svg/SVGFETurbulenceElementImpl.h:
          * ksvg2/svg/SVGFilterElementImpl.cpp:
          (SVGFilterElementImpl::canvasResource):
          * ksvg2/svg/SVGStyledTransformableElementImpl.cpp:
          (SVGStyledTransformableElementImpl::attach): simplified
          * kwq/KWQPainter.h:
          * kwq/KWQPainter.mm:
          (QPainterPrivate::QPainterPrivate): removed cached quartz context
          (QPainterPrivate::~QPainterPrivate): removed cached quartz context
          (QPainter::createRenderingDeviceContext): changed method name
  
  Revision  Changes    Path
  1.395     +80 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.394
  retrieving revision 1.395
  diff -u -r1.394 -r1.395
  --- ChangeLog	22 Nov 2005 12:25:09 -0000	1.394
  +++ ChangeLog	22 Nov 2005 23:04:25 -0000	1.395
  @@ -1,5 +1,85 @@
   2005-11-22  eseidel  <eseidel at apple.com>
   
  +        No review required, svg target only.
  +
  +        No additional test cases needed, this fixes 10+ existing tests.
  +
  +        Fixed filters by fixing how KCanvasDeviceContexts are pushed/poped
  +        They now properly update the NSGrapicsContext currentContext, when
  +        being pushed/poped which allows for QPainter to notice the change.
  +        I also fixed <feImage> while there and updated all of the
  +        subclassed filterEffect() methods to return to proper subclass.
  +
  +        * kcanvas/KCanvasFilters.h:
  +        * kcanvas/device/KRenderingDevice.h:
  +        * kcanvas/device/quartz/KCanvasFilterQuartz.h:
  +        * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
  +        (KCanvasFilterQuartz::KCanvasFilterQuartz):
  +        (KCanvasFilterQuartz::~KCanvasFilterQuartz):
  +        (KCanvasFilterQuartz::prepareFilter): fixed to push context
  +        (KCanvasFilterQuartz::applyFilter): fixed to pop context
  +        (KCanvasFEImageQuartz::getCIFilter): fixed :)
  +        * kcanvas/device/quartz/KCanvasItemQuartz.mm:
  +        (KCanvasItemQuartz::paint): fixed to push/pop context
  +        * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
  +        (KCanvasContainerQuartz::paint): fixed to push/pop context
  +        * kcanvas/device/quartz/KRenderingDeviceQuartz.h:
  +        (KRenderingDeviceContextQuartz::cgContext):
  +        * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
  +        (KRenderingDeviceContextQuartz::KRenderingDeviceContextQuartz):
  +        (KRenderingDeviceContextQuartz::~KRenderingDeviceContextQuartz):
  +        (KRenderingDeviceContextQuartz::nsGraphicsContext): added
  +        (KRenderingDeviceQuartz::currentCGContext):
  +        (KRenderingDeviceQuartz::pushContext): now updates NSGraphicsContext
  +        (KRenderingDeviceQuartz::popContext): now updates NSGraphicsContext
  +        (KRenderingDeviceQuartz::contextForImage): fixed spacing
  +        (KRenderingDeviceQuartz::createPaintServer): removed comment
  +        * ksvg2/svg/SVGFEBlendElementImpl.cpp:
  +        (SVGFEBlendElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFEBlendElementImpl.h:
  +        * ksvg2/svg/SVGFEColorMatrixElementImpl.cpp:
  +        (SVGFEColorMatrixElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFEColorMatrixElementImpl.h:
  +        * ksvg2/svg/SVGFEComponentTransferElementImpl.cpp:
  +        (SVGFEComponentTransferElementImpl::filterEffect): returns sublcass
  +        * ksvg2/svg/SVGFEComponentTransferElementImpl.h:
  +        * ksvg2/svg/SVGFECompositeElementImpl.cpp:
  +        (SVGFECompositeElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFECompositeElementImpl.h:
  +        * ksvg2/svg/SVGFEFloodElementImpl.cpp:
  +        (SVGFEFloodElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFEFloodElementImpl.h:
  +        * ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp:
  +        (SVGFEGaussianBlurElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFEGaussianBlurElementImpl.h:
  +        * ksvg2/svg/SVGFEImageElementImpl.cpp:
  +        (SVGFEImageElementImpl::notifyFinished): updates filterEffect on load
  +        (SVGFEImageElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFEImageElementImpl.h:
  +        * ksvg2/svg/SVGFEMergeElementImpl.cpp:
  +        (SVGFEMergeElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFEMergeElementImpl.h:
  +        * ksvg2/svg/SVGFEOffsetElementImpl.cpp:
  +        (SVGFEOffsetElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFEOffsetElementImpl.h:
  +        * ksvg2/svg/SVGFETileElementImpl.cpp:
  +        (SVGFETileElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFETileElementImpl.h:
  +        * ksvg2/svg/SVGFETurbulenceElementImpl.cpp:
  +        (SVGFETurbulenceElementImpl::filterEffect): now returns subclass
  +        * ksvg2/svg/SVGFETurbulenceElementImpl.h:
  +        * ksvg2/svg/SVGFilterElementImpl.cpp:
  +        (SVGFilterElementImpl::canvasResource):
  +        * ksvg2/svg/SVGStyledTransformableElementImpl.cpp:
  +        (SVGStyledTransformableElementImpl::attach): simplified
  +        * kwq/KWQPainter.h:
  +        * kwq/KWQPainter.mm:
  +        (QPainterPrivate::QPainterPrivate): removed cached quartz context
  +        (QPainterPrivate::~QPainterPrivate): removed cached quartz context
  +        (QPainter::createRenderingDeviceContext): changed method name
  +
  +2005-11-22  eseidel  <eseidel at apple.com>
  +
           Reviewed by mjs.
   
           No additional tests needed, this fixes bbox printing for all tests.
  
  
  
  1.10      +3 -3      SVGSupport/kcanvas/KCanvasFilters.h
  
  Index: KCanvasFilters.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/kcanvas/KCanvasFilters.h,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- KCanvasFilters.h	22 Nov 2005 12:03:15 -0000	1.9
  +++ KCanvasFilters.h	22 Nov 2005 23:04:27 -0000	1.10
  @@ -54,7 +54,7 @@
   #include <qstringlist.h>
   
   class KCanvasFilterEffect;
  -class KRenderingDeviceContext;
  +class KRenderingDevice;
   
   class KCanvasFilter : public KCanvasResource
   {
  @@ -75,8 +75,8 @@
   
       void addFilterEffect(KCanvasFilterEffect *effect);
   
  -    virtual void prepareFilter(KRenderingDeviceContext *context, const QRect &bbox) = 0;
  -    virtual void applyFilter(KRenderingDeviceContext *context, KCanvasMatrix objectMatrix, const QRect &bbox) = 0;
  +    virtual void prepareFilter(KRenderingDevice *device, const QRect &bbox) = 0;
  +    virtual void applyFilter(KRenderingDevice *device, KCanvasMatrix objectMatrix, const QRect &bbox) = 0;
   
       QTextStream &externalRepresentation(QTextStream &) const;
   
  
  
  
  1.6       +2 -2      SVGSupport/kcanvas/device/KRenderingDevice.h
  
  Index: KRenderingDevice.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/kcanvas/device/KRenderingDevice.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- KRenderingDevice.h	21 Nov 2005 08:29:13 -0000	1.5
  +++ KRenderingDevice.h	22 Nov 2005 23:04:27 -0000	1.6
  @@ -67,8 +67,8 @@
       // Global rendering device context
       KRenderingDeviceContext *currentContext() const;
   
  -    KRenderingDeviceContext *popContext();
  -    void pushContext(KRenderingDeviceContext *context);
  +    virtual KRenderingDeviceContext *popContext();
  +    virtual void pushContext(KRenderingDeviceContext *context);
       
       virtual KRenderingDeviceContext *contextForImage(KCanvasImage *image) const = 0;
   
  
  
  
  1.6       +9 -7      SVGSupport/kcanvas/device/quartz/KCanvasFilterQuartz.h
  
  Index: KCanvasFilterQuartz.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasFilterQuartz.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- KCanvasFilterQuartz.h	22 Nov 2005 12:25:13 -0000	1.5
  +++ KCanvasFilterQuartz.h	22 Nov 2005 23:04:27 -0000	1.6
  @@ -26,20 +26,23 @@
   
   #import "KCanvasFilters.h"
   
  +#if __OBJC__
   @class CIFilter;
   @class CIImage;
  +#else
  +class CIFilter;
  +class CIImage;
  +#endif
  +
  +class KRenderingDevice;
   
   class KCanvasFilterQuartz : public KCanvasFilter {
   public:
       KCanvasFilterQuartz();
       virtual ~KCanvasFilterQuartz();
       
  -    virtual void prepareFilter(KRenderingDeviceContext *context, const QRect &bbox);
  -    virtual void applyFilter(KRenderingDeviceContext *context, KCanvasMatrix objectMatrix, const QRect &bbox);
  -    
  -    // quartz only.
  -    void prepareFilter(CGContextRef *context, const QRect &bbox);
  -    void applyFilter(CGContextRef *context, const QRect &bbox, CGAffineTransform objectTransform);
  +    virtual void prepareFilter(KRenderingDevice *device, const QRect &bbox);
  +    virtual void applyFilter(KRenderingDevice *device, KCanvasMatrix objectMatrix, const QRect &bbox);
       
       CIImage *imageForName(const QString &name) const;
       void setImageForName(CIImage *image, const QString &name);
  @@ -52,7 +55,6 @@
       
       CGRect filterBBoxForItemBBox(CGRect itemBBox, CGAffineTransform currentCTM) const;
   
  -    CGContextRef m_storedCGContext;
       CIContext *m_filterCIContext;
       CGLayerRef m_filterCGLayer;
       NSMutableDictionary *m_imagesByName;
  
  
  
  1.13      +63 -101   SVGSupport/kcanvas/device/quartz/KCanvasFilterQuartz.mm
  
  Index: KCanvasFilterQuartz.mm
  ===================================================================
  RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasFilterQuartz.mm,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- KCanvasFilterQuartz.mm	22 Nov 2005 12:03:15 -0000	1.12
  +++ KCanvasFilterQuartz.mm	22 Nov 2005 23:04:27 -0000	1.13
  @@ -48,74 +48,81 @@
   //    return colorCI;
   //}
   
  -KCanvasFilterQuartz::KCanvasFilterQuartz() : m_storedCGContext(0), m_filterCIContext(0), m_filterCGLayer(0), m_imagesByName(0)
  +KCanvasFilterQuartz::KCanvasFilterQuartz() : m_filterCIContext(0), m_filterCGLayer(0), m_imagesByName(0)
   {
  -	m_imagesByName = [[NSMutableDictionary alloc] init];
  +    m_imagesByName = [[NSMutableDictionary alloc] init];
   }
   
   KCanvasFilterQuartz::~KCanvasFilterQuartz()
   {
  -	[m_imagesByName release];
  +    [m_imagesByName release];
   }
   
  -void KCanvasFilterQuartz::prepareFilter(KRenderingDeviceContext *renderingContext, const QRect &bbox)
  +void KCanvasFilterQuartz::prepareFilter(KRenderingDevice *device, const QRect &bbox)
   {
  -    if (! bbox.isValid())
  +    if (! bbox.isValid() || !KRenderingDeviceQuartz::filtersEnabled())
           return;
  +
  +    if (m_effects.isEmpty()) {
  +        NSLog(@"WARNING: No effects, ignoring filter (%p).", this);
  +        return;
  +    }
       
  -	KRenderingDeviceContextQuartz *quartzContext = static_cast<KRenderingDeviceContextQuartz *>(renderingContext);
  -	ASSERT(quartzContext);
  -	
  -	CGContextRef filterContext = quartzContext->cgContext();
  -	//NSLog(@"before: %p stored: %p", filterContext, m_storedCGContext);
  -	prepareFilter(&filterContext, bbox);
  -	//NSLog(@"after: %p stored: %p", filterContext, m_storedCGContext);
  -	quartzContext->setCGContext(filterContext);
  +    KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(device);
  +    CGContextRef cgContext = quartzDevice->currentCGContext();
  +    
  +    // get a CIContext, and CGLayer for drawing in.
  +    bool useSoftware = ! KRenderingDeviceQuartz::hardwareRenderingEnabled();
  +    NSDictionary *contextOptions = nil;
  +    
  +    if (useSoftware)
  +        contextOptions = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], kCIContextUseSoftwareRenderer, nil];
  +    
  +    m_filterCIContext = [[CIContext contextWithCGContext:cgContext options:contextOptions] retain];
  +    
  +    m_filterCGLayer = [m_filterCIContext createCGLayerWithSize:CGRect(bbox).size info:NULL];
  +    
  +    CGContext *filterCGContext = CGLayerGetContext(m_filterCGLayer);
  +    device->pushContext(new KRenderingDeviceContextQuartz(filterCGContext));
  +    
  +    CGContextConcatCTM(filterCGContext, CGAffineTransformMakeTranslation(float(-1 * bbox.x()), float(-1 * bbox.y())));
   }
   
  -void KCanvasFilterQuartz::applyFilter(KRenderingDeviceContext *renderingContext, KCanvasMatrix objectMatrix, const QRect &bbox)
  +void KCanvasFilterQuartz::applyFilter(KRenderingDevice *device, KCanvasMatrix objectMatrix, const QRect &bbox)
   {
  -    if (! bbox.isValid())
  +    if (! bbox.isValid() || !KRenderingDeviceQuartz::filtersEnabled() || m_effects.isEmpty())
           return;
       
  -	KRenderingDeviceContextQuartz *quartzContext = static_cast<KRenderingDeviceContextQuartz *>(renderingContext);
  -	ASSERT(quartzContext);
  -	if (!KRenderingDeviceQuartz::filtersEnabled()) return;
  -	
  -	CGContextRef filterContext = quartzContext->cgContext();
  -	//NSLog(@"2before: %p stored: %p", filterContext, m_storedCGContext);
  -	applyFilter(&filterContext, bbox, CGAffineTransform(objectMatrix.qmatrix()));
  -	//NSLog(@"2after: %p stored: %p", filterContext, m_storedCGContext);
  -	quartzContext->setCGContext(filterContext);
  -}
  -
  -void KCanvasFilterQuartz::prepareFilter(CGContextRef *context, const QRect &bbox)
  -{
  -	if (!KRenderingDeviceQuartz::filtersEnabled()) return;
  -	if (m_effects.isEmpty()) {
  -		NSLog(@"WARNING: No effects, ignoring filter (%p).", this);
  -		return;
  -	}
  -	ASSERT(m_storedCGContext == NULL);
  -	ASSERT(context != NULL);
  -	m_storedCGContext = *context;
  -		
  -	// get a CIContext, and CGLayer for drawing in.
  -        bool useSoftware = ! KRenderingDeviceQuartz::hardwareRenderingEnabled();
  -        NSDictionary *options = nil;
  -        
  -        if (useSoftware) {
  -            options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], kCIContextUseSoftwareRenderer, nil];
  +    // restore the previous context.
  +    device->popContext();
  +
  +    // actually apply the filter effects
  +    CIImage *inputImage = [CIImage imageWithCGLayer:m_filterCGLayer];
  +    NSArray *filterStack = getCIFilterStack(inputImage);
  +    if ([filterStack count]) {
  +        CIImage *outputImage = [[filterStack lastObject] valueForKey:@"outputImage"];
  +        if (!outputImage) {
  +            NSLog(@"Failed to get ouputImage from filter stack, can't draw.");
  +            return;
           }
           
  -	m_filterCIContext = [[CIContext contextWithCGContext:m_storedCGContext options:options] retain];
  +        // actually draw the result to the original context
           
  -	m_filterCGLayer = [m_filterCIContext createCGLayerWithSize:CGRect(bbox).size info:NULL];
  -	
  -	// replace the current context with our new one.
  -	*context = CGLayerGetContext(m_filterCGLayer);
  -	
  -	CGContextConcatCTM(*context,CGAffineTransformMakeTranslation(float(-1 * bbox.x()),float(-1 * bbox.y())));
  +        CGRect filterRect = filterBBoxForItemBBox(CGRect(bbox), CGAffineTransform(objectMatrix.qmatrix()));
  +        CGRect translated = filterRect;
  +        CGPoint bboxOrigin = CGRect(bbox).origin;
  +        CGRect sourceRect = CGRectIntersection(translated,[outputImage extent]);
  +        
  +        CGPoint destOrigin = sourceRect.origin;
  +        destOrigin.x += bboxOrigin.x;
  +        destOrigin.y += bboxOrigin.y;
  +        
  +        [m_filterCIContext drawImage:outputImage atPoint:destOrigin fromRect:sourceRect];
  +    } else
  +        NSLog(@"No filter stack, can't draw filter.");
  +    
  +    CGLayerRelease(m_filterCGLayer);
  +    [m_filterCIContext release];
   }
   
   CGRect KCanvasFilterQuartz::filterBBoxForItemBBox(CGRect itemBBox, CGAffineTransform currentCTM) const
  @@ -137,56 +144,6 @@
   	return filterBBox;
   }
   
  -void KCanvasFilterQuartz::applyFilter(CGContextRef *context, const QRect &bbox, CGAffineTransform objectTransform)
  -{
  -	if (m_effects.isEmpty()) return; // We log during "prepare"
  -	ASSERT(m_storedCGContext);
  -	ASSERT(context);
  -	//CGContextRef layerContext = *context;
  -	
  -	//NSLog(@"apply filter in context: %p to context: %p bbox: %@", *context,
  -	//	m_storedCGContext, NSStringFromRect(NSRect(bbox)));
  -	
  -	// swap contexts back
  -	*context = m_storedCGContext;
  -	m_storedCGContext = NULL;
  -
  -	// actually apply the filter effects
  -	CIImage *inputImage = [CIImage imageWithCGLayer:m_filterCGLayer];
  -	NSArray *filterStack = getCIFilterStack(inputImage);
  -	if ([filterStack count]) {
  -		CIImage *outputImage = [[filterStack lastObject] valueForKey:@"outputImage"];
  -		if (!outputImage) {
  -			NSLog(@"Failed to get ouputImage from filter stack, can't draw.");
  -			return;
  -		}
  -		
  -		// actually draw the result to the original context
  -		
  -		CGRect filterRect = filterBBoxForItemBBox(CGRect(bbox), objectTransform);
  -		CGRect translated = filterRect;
  -		CGPoint bboxOrigin = CGRect(bbox).origin;
  -//		translated.origin.x += bboxOrigin.x;
  -//		translated.origin.y += bboxOrigin.y;
  -		CGRect sourceRect = CGRectIntersection(translated,[outputImage extent]);
  -		// FIXME: objectTransform seems like a hack.
  -		
  -		CGPoint destOrigin = sourceRect.origin;
  -		destOrigin.x += bboxOrigin.x;
  -		destOrigin.y += bboxOrigin.y;
  -		
  -		//CGRect extent = [outputImage extent];
  -		//NSLog(@"Drawing from rect: \n%@ \n at point: \n%@ \nextent: \n%@ \nmatrix: \n%@", NSStringFromRect(*(NSRect *)&sourceRect), NSStringFromPoint(*(NSPoint *)&destOrigin), NSStringFromRect(*(NSRect *)&extent), CFStringFromCGAffineTransform(objectTransform));
  -		//outputImage = [outputImage imageByApplyingTransform:objectTransform];
  -		[m_filterCIContext drawImage:outputImage atPoint:destOrigin fromRect:sourceRect];
  -	} else
  -		NSLog(@"No filter stack, can't draw filter.");
  -	// cleanup
  -	CGLayerRelease(m_filterCGLayer);
  -	//CGContextRelease(layerContext); // I don't seem to need to do this...
  -	[m_filterCIContext release];
  -}
  -
   NSArray *KCanvasFilterQuartz::getCIFilterStack(CIImage *inputImage) {
   	// iterate over each of the filter elements
   	// passing each the necessary inputs...
  @@ -526,7 +483,12 @@
       CIImage *ciImage = [CIImage imageWithCGImage:pixmap().imageRef()];
       quartzFilter->setOutputImage(this, ciImage);
       
  -    return nil;  // really want a noop filter... or better design.
  +    // FIXME: we really want a noop filter... or better design.
  +    CIFilter *crop = [CIFilter filterWithName:@"CIExposureAdjust"];
  +    [crop setDefaults];
  +    [crop setValue:ciImage forKey:@"inputImage"];
  +    [crop setValue:[NSNumber numberWithInt:0] forKey:@"inputEV"];
  +    return crop;
   }
   
   CIFilter *KCanvasFEGaussianBlurQuartz::getCIFilter(KCanvasFilterQuartz *quartzFilter) const
  
  
  
  1.8       +10 -11    SVGSupport/kcanvas/device/quartz/KCanvasItemQuartz.mm
  
  Index: KCanvasItemQuartz.mm
  ===================================================================
  RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasItemQuartz.mm,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- KCanvasItemQuartz.mm	21 Nov 2005 08:29:15 -0000	1.7
  +++ KCanvasItemQuartz.mm	22 Nov 2005 23:04:27 -0000	1.8
  @@ -71,11 +71,10 @@
       if (paintInfo.p->paintingDisabled() || (paintInfo.phase != PaintActionForeground))
           return;
       
  -    KRenderingDevice *renderingDevice = canvas()->renderingDevice();
  -    KRenderingDeviceContextQuartz *quartzContext = static_cast<KRenderingDeviceContextQuartz *>(paintInfo.p->renderingDeviceContext());
  -    renderingDevice->pushContext(quartzContext);
  +    KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(canvas()->renderingDevice());
  +    quartzDevice->pushContext(paintInfo.p->createRenderingDeviceContext());
       paintInfo.p->save();
  -    CGContextRef context = paintInfo.p->currentContext();
  +    CGContextRef context = quartzDevice->currentCGContext();
   
       QRect dirtyRect = paintInfo.r;
       
  @@ -93,8 +92,8 @@
       if (filter) {
           // FIXME:: This should be fixed now that it has moved into RenderPath::draw()
           bboxForFilter = bboxPath(true, false); // FIXME: HACK! 30% of my time spent here!
  -        filter->prepareFilter(quartzContext, bboxForFilter);
  -        context = quartzContext->cgContext();
  +        filter->prepareFilter(quartzDevice, bboxForFilter);
  +        context = quartzDevice->currentCGContext();
       }
   
       QString clipname = style()->svgStyle()->clipPath().mid(1);
  @@ -109,24 +108,24 @@
       // Fill and stroke as needed.
       if(canvasStyle()->isFilled()) {
           CGContextAddPath(context, cgPath);
  -        canvasStyle()->fillPainter()->draw(quartzContext, args);
  +        canvasStyle()->fillPainter()->draw(quartzDevice->currentContext(), args);
       }
       if(canvasStyle()->isStroked()) {
           CGContextAddPath(context, cgPath); // path is cleared when filled.
  -        canvasStyle()->strokePainter()->draw(quartzContext, args);
  +        canvasStyle()->strokePainter()->draw(quartzDevice->currentContext(), args);
       }
   
       drawMarkersIfNeeded(dirtyRect);
   
       // actually apply the filter
       if (filter) {
  -        filter->applyFilter(quartzContext, localTransform(), bboxForFilter);
  -        context = quartzContext->cgContext();
  +        filter->applyFilter(quartzDevice, localTransform(), bboxForFilter);
  +        context = quartzDevice->currentCGContext();
       }
       
       // restore drawing state
       paintInfo.p->restore();
  -    renderingDevice->popContext();
  +    quartzDevice->popContext();
   }
   
   #pragma mark -
  
  
  
  1.7       +6 -10     SVGSupport/kcanvas/device/quartz/KCanvasResourcesQuartz.mm
  
  Index: KCanvasResourcesQuartz.mm
  ===================================================================
  RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KCanvasResourcesQuartz.mm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- KCanvasResourcesQuartz.mm	21 Nov 2005 08:29:15 -0000	1.6
  +++ KCanvasResourcesQuartz.mm	22 Nov 2005 23:04:27 -0000	1.7
  @@ -100,15 +100,11 @@
       if (paintInfo.phase == PaintActionOutline && style()->outlineWidth() && style()->visibility() == khtml::VISIBLE)
           paintOutline(paintInfo.p, absoluteX, absoluteY, width(), height(), style());
       
  -    if (paintInfo.phase != PaintActionForeground)
  -        return;
  -
  -    if (!firstChild())
  +    if (paintInfo.phase != PaintActionForeground || !firstChild())
           return;
       
  -    KRenderingDevice *renderingDevice = canvas()->renderingDevice();
  -    KRenderingDeviceContextQuartz *quartzContext = static_cast<KRenderingDeviceContextQuartz *>(paintInfo.p->renderingDeviceContext());
  -    renderingDevice->pushContext(quartzContext);
  +    KRenderingDeviceQuartz *quartzDevice = static_cast<KRenderingDeviceQuartz *>(canvas()->renderingDevice());
  +    quartzDevice->pushContext(paintInfo.p->createRenderingDeviceContext());
       paintInfo.p->save();
       
       CGContextRef context = paintInfo.p->currentContext();
  @@ -132,19 +128,19 @@
   
       KCanvasFilter *filter = getFilterById(document(), style()->svgStyle()->filter().mid(1));
       if (filter)
  -        filter->prepareFilter(renderingDevice->currentContext(), bbox());
  +        filter->prepareFilter(quartzDevice, bbox());
       
       RenderContainer::paint(paintInfo, parentX, parentY);
       
       if (filter)
  -        filter->applyFilter(renderingDevice->currentContext(), localTransform(), bbox()); // FIXME, I'm not sure if this should be "localTransform"
  +        filter->applyFilter(quartzDevice, localTransform(), bbox()); // FIXME, I'm not sure if this should be "localTransform"
       
       if (opacity < 1.0f)
           paintInfo.p->endTransparencyLayer();
       
       // restore drawing state
       paintInfo.p->restore();
  -    renderingDevice->popContext();
  +    quartzDevice->popContext();
   }
   
   void KCanvasContainerQuartz::setViewport(const QRect &viewport)
  
  
  
  1.6       +15 -3     SVGSupport/kcanvas/device/quartz/KRenderingDeviceQuartz.h
  
  Index: KRenderingDeviceQuartz.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KRenderingDeviceQuartz.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- KRenderingDeviceQuartz.h	21 Nov 2005 08:29:15 -0000	1.5
  +++ KRenderingDeviceQuartz.h	22 Nov 2005 23:04:27 -0000	1.6
  @@ -33,21 +33,30 @@
   typedef struct CGRect CGRect;
   typedef struct CGContext *CGContextRef;
   
  +#if __OBJC__
  + at class NSGraphicsContext;
  +#else
  +class NSGraphicsContext;
  +#endif
  +
   class KRenderingDeviceContextQuartz : public KRenderingDeviceContext
   {
   public:
  -    KRenderingDeviceContextQuartz() : m_cgContext(0) { }
  +    KRenderingDeviceContextQuartz(CGContextRef context);
  +    virtual ~KRenderingDeviceContextQuartz();
  +    
       virtual KCanvasMatrix concatCTM(const KCanvasMatrix &worldMatrix);
       virtual KCanvasMatrix ctm() const;
       
       virtual QRect mapFromVisual(const QRect &rect);
       virtual QRect mapToVisual(const QRect &rect);
       
  -    CGContextRef cgContext() { return m_cgContext; };
  -    void setCGContext(CGContextRef newContext) { m_cgContext = newContext; }
  +    CGContextRef cgContext() const { return m_cgContext; };
  +    NSGraphicsContext *nsGraphicsContext();
       
   private:
       CGContextRef m_cgContext;
  +    NSGraphicsContext *m_nsGraphicsContext;
   };
   
   class KRenderingDeviceQuartz : public KRenderingDevice
  @@ -58,6 +67,9 @@
       virtual ~KRenderingDeviceQuartz() { }
   
       virtual bool isBuffered() const { return false; }
  +    
  +    virtual KRenderingDeviceContext *popContext();
  +    virtual void pushContext(KRenderingDeviceContext *context);
   
       // context management.
       KRenderingDeviceContextQuartz *quartzContext() const;
  
  
  
  1.6       +52 -19    SVGSupport/kcanvas/device/quartz/KRenderingDeviceQuartz.mm
  
  Index: KRenderingDeviceQuartz.mm
  ===================================================================
  RCS file: /cvs/root/SVGSupport/kcanvas/device/quartz/KRenderingDeviceQuartz.mm,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- KRenderingDeviceQuartz.mm	21 Nov 2005 08:29:15 -0000	1.5
  +++ KRenderingDeviceQuartz.mm	22 Nov 2005 23:04:27 -0000	1.6
  @@ -37,6 +37,8 @@
   #import "KRenderingFillPainter.h"
   #import "KRenderingStrokePainter.h"
   
  +#import <AppKit/NSGraphicsContext.h>
  +
   #import "KWQLogging.h"
   
   
  @@ -51,6 +53,17 @@
   	CGPathRelease(path);
   }
   
  +KRenderingDeviceContextQuartz::KRenderingDeviceContextQuartz(CGContextRef context) : m_cgContext(CGContextRetain(context)), m_nsGraphicsContext(0)
  +{
  +    ASSERT(m_cgContext);
  +}
  +
  +KRenderingDeviceContextQuartz::~KRenderingDeviceContextQuartz()
  +{
  +    CGContextRelease(m_cgContext);
  +    [m_nsGraphicsContext release];
  +}
  +
   KCanvasMatrix KRenderingDeviceContextQuartz::concatCTM(const KCanvasMatrix &worldMatrix)
   {
       KCanvasMatrix ret = ctm();
  @@ -78,6 +91,13 @@
   	return QRect();
   }
   
  +NSGraphicsContext *KRenderingDeviceContextQuartz::nsGraphicsContext()
  +{
  +    if (!m_nsGraphicsContext && m_cgContext)
  +        m_nsGraphicsContext = [[NSGraphicsContext graphicsContextWithGraphicsPort:m_cgContext flipped:NO] retain];
  +    return m_nsGraphicsContext;
  +}
  +
   static bool __useFilters = true;
   
   bool KRenderingDeviceQuartz::filtersEnabled()
  @@ -112,31 +132,45 @@
   
   CGContextRef KRenderingDeviceQuartz::currentCGContext() const
   {
  -	KRenderingDeviceContextQuartz *deviceContext = static_cast<KRenderingDeviceContextQuartz *>(this->currentContext());
  -	ASSERT(deviceContext);
  -	return deviceContext->cgContext();
  +    ASSERT(quartzContext());
  +    return quartzContext()->cgContext();
   }
   
  +void KRenderingDeviceQuartz::pushContext(KRenderingDeviceContext *context)
  +{
  +    ASSERT(context);
  +    KRenderingDevice::pushContext(context);
  +    [NSGraphicsContext saveGraphicsState];
  +    [NSGraphicsContext setCurrentContext:quartzContext()->nsGraphicsContext()];
  +    ASSERT(quartzContext()->nsGraphicsContext() == [NSGraphicsContext currentContext]);
  +    ASSERT(currentCGContext() == QPainter().currentContext());
  +}
  +
  +KRenderingDeviceContext *KRenderingDeviceQuartz::popContext()
  +{
  +    [NSGraphicsContext restoreGraphicsState];
  +    KRenderingDeviceContext *poppedContext = KRenderingDevice::popContext();
  +    ASSERT(!currentContext() || (currentCGContext() == QPainter().currentContext()));
  +    return poppedContext;
  +}
  +
  +
   #pragma mark -
   #pragma mark Path Management
   
   KRenderingDeviceContext *KRenderingDeviceQuartz::contextForImage(KCanvasImage *image) const
   {
  -	KCanvasImageQuartz *quartzImage = static_cast<KCanvasImageQuartz *>(image);
  -	CGLayerRef cgLayer = quartzImage->cgLayer();
  -	if (!cgLayer) {
  -		// FIXME: we might not get back a layer if this is a loaded image
  -		// maybe this logic should go into KCanvasImage?
  -		cgLayer = CGLayerCreateWithContext(currentCGContext(), CGSize(image->size() + QSize(1,1)), NULL);  // FIXME + 1 is a hack
  -		// FIXME: we should composite the original image onto the layer...
  -		quartzImage->setCGLayer(cgLayer);
  -		CGLayerRelease(cgLayer);
  -	}
  -	KRenderingDeviceContextQuartz *quartzContext = new KRenderingDeviceContextQuartz();
  -	CGContextRef cgContext = CGLayerGetContext(cgLayer);
  -	ASSERT(cgContext);
  -	quartzContext->setCGContext(cgContext);
  -	return quartzContext;
  +    KCanvasImageQuartz *quartzImage = static_cast<KCanvasImageQuartz *>(image);
  +    CGLayerRef cgLayer = quartzImage->cgLayer();
  +    if (!cgLayer) {
  +        // FIXME: we might not get back a layer if this is a loaded image
  +        // maybe this logic should go into KCanvasImage?
  +        cgLayer = CGLayerCreateWithContext(currentCGContext(), CGSize(image->size() + QSize(1,1)), NULL);  // FIXME + 1 is a hack
  +        // FIXME: we should composite the original image onto the layer...
  +        quartzImage->setCGLayer(cgLayer);
  +        CGLayerRelease(cgLayer);
  +    }
  +    return new KRenderingDeviceContextQuartz(CGLayerGetContext(cgLayer));
   }
   
   void KRenderingDeviceQuartz::deletePath(KCanvasUserData pathData)
  @@ -226,7 +260,6 @@
   		case PS_LINEAR_GRADIENT: newServer = new KRenderingPaintServerLinearGradientQuartz(); break;
   		case PS_RADIAL_GRADIENT: newServer = new KRenderingPaintServerRadialGradientQuartz(); break;
   	}
  -	//NSLog(@"createPaintserver type: %i server: %p", type, newServer);
   	return newServer;
   }
    
  
  
  
  1.83      +1 -1      WebCore/kwq/KWQPainter.h
  
  Index: KWQPainter.h
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQPainter.h,v
  retrieving revision 1.82
  retrieving revision 1.83
  diff -u -r1.82 -r1.83
  --- KWQPainter.h	23 Sep 2005 03:28:29 -0000	1.82
  +++ KWQPainter.h	22 Nov 2005 23:04:28 -0000	1.83
  @@ -141,7 +141,7 @@
       CGContextRef currentContext();
       
   #if SVG_SUPPORT
  -    KRenderingDeviceContext *renderingDeviceContext();
  +    KRenderingDeviceContext *createRenderingDeviceContext();
   #endif
       
       static int compositeOperatorFromString (const QString &aString);
  
  
  
  1.147     +2 -15     WebCore/kwq/KWQPainter.mm
  
  Index: KWQPainter.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQPainter.mm,v
  retrieving revision 1.146
  retrieving revision 1.147
  diff -u -r1.146 -r1.147
  --- KWQPainter.mm	20 Oct 2005 06:02:27 -0000	1.146
  +++ KWQPainter.mm	22 Nov 2005 23:04:28 -0000	1.147
  @@ -72,16 +72,10 @@
       int focusRingOffset;
       bool hasFocusRingColor;
       QColor focusRingColor;
  -#if SVG_SUPPORT
  -    KRenderingDeviceContextQuartz *renderingDeviceContext;
  -#endif
   };
   
   QPainterPrivate::QPainterPrivate() : textRenderer(0), focusRingPath(0), focusRingWidth(0), focusRingOffset(0),
                           hasFocusRingColor(false)
  -#if SVG_SUPPORT
  -                        , renderingDeviceContext(0)
  -#endif
   {
   
   }
  @@ -90,9 +84,6 @@
   {
       KWQRelease(textRenderer);
       KWQRelease(focusRingPath);
  -#if SVG_SUPPORT
  -    delete renderingDeviceContext;
  -#endif
   }
   
   static inline void _fillRectXX(float x, float y, float w, float h, const QColor& col);
  @@ -888,13 +879,9 @@
   }
   
   #if SVG_SUPPORT
  -KRenderingDeviceContext *QPainter::renderingDeviceContext()
  +KRenderingDeviceContext *QPainter::createRenderingDeviceContext()
   {
  -    if (!data->renderingDeviceContext) {
  -        data->renderingDeviceContext = new KRenderingDeviceContextQuartz();
  -    }
  -    data->renderingDeviceContext->setCGContext(currentContext());
  -    return data->renderingDeviceContext;
  +    return new KRenderingDeviceContextQuartz(currentContext());
   }
   #endif
   
  
  
  
  1.9       +1 -1      SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.cpp
  
  Index: SVGFEBlendElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SVGFEBlendElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.8
  +++ SVGFEBlendElementImpl.cpp	22 Nov 2005 23:04:29 -0000	1.9
  @@ -99,7 +99,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFEBlendElementImpl::filterEffect() const
  +KCanvasFEBlend *SVGFEBlendElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFEBlend *>(canvas()->renderingDevice()->createFilterEffect(FE_BLEND));
  
  
  
  1.8       +2 -4      SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.h
  
  Index: SVGFEBlendElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEBlendElementImpl.h,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SVGFEBlendElementImpl.h	22 Nov 2005 12:03:16 -0000	1.7
  +++ SVGFEBlendElementImpl.h	22 Nov 2005 23:04:29 -0000	1.8
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFEBlendElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFEBlend;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -47,7 +45,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEBlend *filterEffect() const;
   
       private:
           mutable SVGAnimatedStringImpl *m_in1;
  
  
  
  1.10      +1 -1      SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.cpp
  
  Index: SVGFEColorMatrixElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SVGFEColorMatrixElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.9
  +++ SVGFEColorMatrixElementImpl.cpp	22 Nov 2005 23:04:29 -0000	1.10
  @@ -102,7 +102,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFEColorMatrixElementImpl::filterEffect() const
  +KCanvasFEColorMatrix *SVGFEColorMatrixElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
             m_filterEffect = static_cast<KCanvasFEColorMatrix *>(canvas()->renderingDevice()->createFilterEffect(FE_COLOR_MATRIX));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.h
  
  Index: SVGFEColorMatrixElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEColorMatrixElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFEColorMatrixElementImpl.h	22 Nov 2005 12:03:16 -0000	1.6
  +++ SVGFEColorMatrixElementImpl.h	22 Nov 2005 23:04:29 -0000	1.7
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFEColorMatrixElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFEColorMatrix;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -48,7 +46,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
           
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEColorMatrix *filterEffect() const;
   
       private:
           mutable SVGAnimatedStringImpl *m_in1;
  
  
  
  1.10      +1 -1      SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.cpp
  
  Index: SVGFEComponentTransferElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SVGFEComponentTransferElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.9
  +++ SVGFEComponentTransferElementImpl.cpp	22 Nov 2005 23:04:29 -0000	1.10
  @@ -73,7 +73,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFEComponentTransferElementImpl::filterEffect() const
  +KCanvasFEComponentTransfer *SVGFEComponentTransferElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFEComponentTransfer *>(canvas()->renderingDevice()->createFilterEffect(FE_COMPONENT_TRANSFER));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.h
  
  Index: SVGFEComponentTransferElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEComponentTransferElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFEComponentTransferElementImpl.h	22 Nov 2005 12:03:16 -0000	1.6
  +++ SVGFEComponentTransferElementImpl.h	22 Nov 2005 23:04:29 -0000	1.7
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFEComponentTransferElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFEComponentTransfer;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -44,7 +42,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEComponentTransfer *filterEffect() const;
   
       private:
           mutable SVGAnimatedStringImpl *m_in1;
  
  
  
  1.9       +1 -1      SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.cpp
  
  Index: SVGFECompositeElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SVGFECompositeElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.8
  +++ SVGFECompositeElementImpl.cpp	22 Nov 2005 23:04:29 -0000	1.9
  @@ -138,7 +138,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFECompositeElementImpl::filterEffect() const
  +KCanvasFEComposite *SVGFECompositeElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFEComposite *>(canvas()->renderingDevice()->createFilterEffect(FE_COMPOSITE));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.h
  
  Index: SVGFECompositeElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFECompositeElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFECompositeElementImpl.h	22 Nov 2005 12:03:16 -0000	1.6
  +++ SVGFECompositeElementImpl.h	22 Nov 2005 23:04:29 -0000	1.7
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFECompositeElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFEComposite;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -52,7 +50,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEComposite *filterEffect() const;
   
       private:
           mutable SVGAnimatedStringImpl *m_in1;
  
  
  
  1.9       +1 -1      SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.cpp
  
  Index: SVGFEFloodElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SVGFEFloodElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.8
  +++ SVGFEFloodElementImpl.cpp	22 Nov 2005 23:04:29 -0000	1.9
  @@ -66,7 +66,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFEFloodElementImpl::filterEffect() const
  +KCanvasFEFlood *SVGFEFloodElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFEFlood *>(canvas()->renderingDevice()->createFilterEffect(FE_FLOOD));
  
  
  
  1.8       +2 -4      SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.h
  
  Index: SVGFEFloodElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEFloodElementImpl.h,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SVGFEFloodElementImpl.h	22 Nov 2005 12:03:16 -0000	1.7
  +++ SVGFEFloodElementImpl.h	22 Nov 2005 23:04:29 -0000	1.8
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFEFloodElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFEFlood;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -44,7 +42,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEFlood *filterEffect() const;
   
       private:
           mutable SVGAnimatedStringImpl *m_in1;
  
  
  
  1.10      +1 -1      SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp
  
  Index: SVGFEGaussianBlurElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SVGFEGaussianBlurElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.9
  +++ SVGFEGaussianBlurElementImpl.cpp	22 Nov 2005 23:04:30 -0000	1.10
  @@ -99,7 +99,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFEGaussianBlurElementImpl::filterEffect() const
  +KCanvasFEGaussianBlur *SVGFEGaussianBlurElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFEGaussianBlur *>(canvas()->renderingDevice()->createFilterEffect(FE_GAUSSIAN_BLUR));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.h
  
  Index: SVGFEGaussianBlurElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEGaussianBlurElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFEGaussianBlurElementImpl.h	22 Nov 2005 12:03:16 -0000	1.6
  +++ SVGFEGaussianBlurElementImpl.h	22 Nov 2005 23:04:30 -0000	1.7
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFEGaussianBlurElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFEGaussianBlur;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -49,7 +47,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEGaussianBlur *filterEffect() const;
   
       private:
           mutable SVGAnimatedStringImpl *m_in1;
  
  
  
  1.10      +2 -4      SVGSupport/ksvg2/svg/SVGFEImageElementImpl.cpp
  
  Index: SVGFEImageElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEImageElementImpl.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SVGFEImageElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.9
  +++ SVGFEImageElementImpl.cpp	22 Nov 2005 23:04:30 -0000	1.10
  @@ -90,16 +90,14 @@
   {
       if(finishedObj == m_cachedImage)
       {
  -        KCanvasImage *imageBuffer = static_cast<KCanvasImage *>(canvas()->renderingDevice()->createResource(RS_IMAGE));
  -        imageBuffer->init(m_cachedImage->pixmap());
  -        //filterEffect()->setImageBuffer(imageBuffer);
  +        filterEffect()->setPixmap(m_cachedImage->pixmap());
   
           m_cachedImage->deref(this);
           m_cachedImage = 0;
       }
   }
   
  -KCanvasFilterEffect *SVGFEImageElementImpl::filterEffect() const
  +KCanvasFEImage *SVGFEImageElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFEImage *>(canvas()->renderingDevice()->createFilterEffect(FE_IMAGE));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFEImageElementImpl.h
  
  Index: SVGFEImageElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEImageElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFEImageElementImpl.h	22 Nov 2005 00:09:04 -0000	1.6
  +++ SVGFEImageElementImpl.h	22 Nov 2005 23:04:30 -0000	1.7
  @@ -29,9 +29,7 @@
   #include "SVGExternalResourcesRequiredImpl.h"
   #include <kdom/cache/KDOMCachedImage.h>
   #include <kdom/cache/KDOMCachedObjectClient.h>
  -
  -class KCanvasFEImage;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -54,7 +52,7 @@
           virtual void notifyFinished(KDOM::CachedObject *finishedObj);
   
       protected:
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEImage *filterEffect() const;
   
       private:
           mutable SVGAnimatedPreserveAspectRatioImpl *m_preserveAspectRatio;
  
  
  
  1.9       +1 -1      SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.cpp
  
  Index: SVGFEMergeElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SVGFEMergeElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.8
  +++ SVGFEMergeElementImpl.cpp	22 Nov 2005 23:04:30 -0000	1.9
  @@ -50,7 +50,7 @@
   {
   }
   
  -KCanvasFilterEffect *SVGFEMergeElementImpl::filterEffect() const
  +KCanvasFEMerge *SVGFEMergeElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFEMerge *>(canvas()->renderingDevice()->createFilterEffect(FE_MERGE));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.h
  
  Index: SVGFEMergeElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEMergeElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFEMergeElementImpl.h	22 Nov 2005 12:03:16 -0000	1.6
  +++ SVGFEMergeElementImpl.h	22 Nov 2005 23:04:30 -0000	1.7
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFEMergeElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFEMerge;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -36,7 +34,7 @@
           SVGFEMergeElementImpl(const KDOM::QualifiedName& tagName, KDOM::DocumentImpl *doc);
           virtual ~SVGFEMergeElementImpl();
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEMerge *filterEffect() const;
   
       private:
           mutable KCanvasFEMerge *m_filterEffect;
  
  
  
  1.10      +1 -1      SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.cpp
  
  Index: SVGFEOffsetElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SVGFEOffsetElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.9
  +++ SVGFEOffsetElementImpl.cpp	22 Nov 2005 23:04:30 -0000	1.10
  @@ -90,7 +90,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFEOffsetElementImpl::filterEffect() const
  +KCanvasFEOffset *SVGFEOffsetElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFEOffset *>(canvas()->renderingDevice()->createFilterEffect(FE_OFFSET));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.h
  
  Index: SVGFEOffsetElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFEOffsetElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFEOffsetElementImpl.h	22 Nov 2005 12:03:16 -0000	1.6
  +++ SVGFEOffsetElementImpl.h	22 Nov 2005 23:04:30 -0000	1.7
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFEOffsetElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFEOffset;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -47,7 +45,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFEOffset *filterEffect() const;
   
       private:
           mutable SVGAnimatedStringImpl *m_in1;
  
  
  
  1.9       +1 -1      SVGSupport/ksvg2/svg/SVGFETileElementImpl.cpp
  
  Index: SVGFETileElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETileElementImpl.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SVGFETileElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.8
  +++ SVGFETileElementImpl.cpp	22 Nov 2005 23:04:30 -0000	1.9
  @@ -65,7 +65,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFETileElementImpl::filterEffect() const
  +KCanvasFETile *SVGFETileElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFETile *>(canvas()->renderingDevice()->createFilterEffect(FE_TILE));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFETileElementImpl.h
  
  Index: SVGFETileElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETileElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFETileElementImpl.h	22 Nov 2005 12:03:16 -0000	1.6
  +++ SVGFETileElementImpl.h	22 Nov 2005 23:04:30 -0000	1.7
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFETileElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFETile;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -44,7 +42,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFETile *filterEffect() const;
   
       private:
           mutable SVGAnimatedStringImpl *m_in1;
  
  
  
  1.11      +1 -1      SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.cpp
  
  Index: SVGFETurbulenceElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SVGFETurbulenceElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.10
  +++ SVGFETurbulenceElementImpl.cpp	22 Nov 2005 23:04:30 -0000	1.11
  @@ -137,7 +137,7 @@
           SVGFilterPrimitiveStandardAttributesImpl::parseMappedAttribute(attr);
   }
   
  -KCanvasFilterEffect *SVGFETurbulenceElementImpl::filterEffect() const
  +KCanvasFETurbulence *SVGFETurbulenceElementImpl::filterEffect() const
   {
       if (!m_filterEffect)
           m_filterEffect = static_cast<KCanvasFETurbulence *>(canvas()->renderingDevice()->createFilterEffect(FE_TURBULENCE));
  
  
  
  1.7       +2 -4      SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.h
  
  Index: SVGFETurbulenceElementImpl.h
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFETurbulenceElementImpl.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SVGFETurbulenceElementImpl.h	22 Nov 2005 12:03:16 -0000	1.6
  +++ SVGFETurbulenceElementImpl.h	22 Nov 2005 23:04:30 -0000	1.7
  @@ -24,9 +24,7 @@
   #define KSVG_SVGFETurbulenceElementImpl_H
   
   #include "SVGFilterPrimitiveStandardAttributesImpl.h"
  -
  -class KCanvasFETurbulence;
  -class KCanvasFilterEffect;
  +#include "KCanvasFilters.h"
   
   namespace KSVG
   {
  @@ -51,7 +49,7 @@
           // Derived from: 'ElementImpl'
           virtual void parseMappedAttribute(KDOM::MappedAttributeImpl *attr);
   
  -        virtual KCanvasFilterEffect *filterEffect() const;
  +        virtual KCanvasFETurbulence *filterEffect() const;
   
       private:
           mutable SVGAnimatedNumberImpl *m_baseFrequencyX;
  
  
  
  1.10      +1 -1      SVGSupport/ksvg2/svg/SVGFilterElementImpl.cpp
  
  Index: SVGFilterElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGFilterElementImpl.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SVGFilterElementImpl.cpp	22 Nov 2005 12:03:16 -0000	1.9
  +++ SVGFilterElementImpl.cpp	22 Nov 2005 23:04:30 -0000	1.10
  @@ -193,7 +193,7 @@
   
   KCanvasFilter *SVGFilterElementImpl::canvasResource()
   {
  -    if(!attached())
  +    if(!canvas())
           return 0;
   
       if(!m_filter)
  
  
  
  1.3       +1 -3      SVGSupport/ksvg2/svg/SVGStyledTransformableElementImpl.cpp
  
  Index: SVGStyledTransformableElementImpl.cpp
  ===================================================================
  RCS file: /cvs/root/SVGSupport/ksvg2/svg/SVGStyledTransformableElementImpl.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SVGStyledTransformableElementImpl.cpp	21 Nov 2005 11:59:59 -0000	1.2
  +++ SVGStyledTransformableElementImpl.cpp	22 Nov 2005 23:04:30 -0000	1.3
  @@ -136,10 +136,8 @@
   {
       SVGStyledElementImpl::attach();
   
  -    if (renderer() && m_localMatrix) {
  +    if (renderer() && m_localMatrix)
           renderer()->setLocalTransform(m_localMatrix->qmatrix());
  -        renderer()->setNeedsLayout(true);
  -    }
   }
   
   
  
  
  



More information about the webkit-changes mailing list