[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdenonbeta/ksvg2/impl
From:       Rob Buis <rwlbuis () xs4all ! nl>
Date:       2005-01-15 20:26:33
Message-ID: 20050115202633.0B21F1BC19 () office ! kde ! org
[Download RAW message or body]

CVS commit by buis: 

Handle gradientTransforms, like in gradPatt-transfrm.svg.


  M +13 -1     SVGLinearGradientElementImpl.cc   1.9
  M +12 -0     SVGRadialGradientElementImpl.cc   1.9


--- kdenonbeta/ksvg2/impl/SVGLinearGradientElementImpl.cc  #1.8:1.9
@@ -32,6 +32,11 @@
 #include "SVGAnimatedEnumerationImpl.h"
 #include "SVGAnimatedStringImpl.h"
+#include "SVGAnimatedTransformListImpl.h"
+#include "SVGTransformListImpl.h"
+#include "SVGTransformImpl.h"
+#include "SVGMatrixImpl.h"
 
 #include <kcanvas/KCanvas.h>
+#include <kcanvas/KCanvasMatrix.h>
 #include <kcanvas/device/KRenderingDevice.h>
 #include <kcanvas/device/KRenderingPaintServerGradient.h>
@@ -127,4 +132,7 @@ void SVGLinearGradientElementImpl::build
         bool bbox = (gradientUnits()->baseVal() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
         KRenderingPaintServerLinearGradient *grad = \
static_cast<KRenderingPaintServerLinearGradient *>(_grad); +        KCanvasMatrix \
mat; +        if(gradientTransform()->baseVal()->numberOfItems() > 0)
+                mat = \
KCanvasMatrix(gradientTransform()->baseVal()->consolidate()->matrix()->qmatrix());  
         KRenderingPaintServer *lin = 0;
@@ -149,4 +157,7 @@ void SVGLinearGradientElementImpl::build
                         bbox = pserver->boundingBoxMode();
 
+                if(!hasAttribute("gradientTransform"))
+                        mat = pserver->gradientTransform();
+
                 // Inherit color stops if empty
                 if(grad->gradientStops().count() == 0)
@@ -177,4 +188,5 @@ void SVGLinearGradientElementImpl::build
         }
 
+        grad->setGradientTransform(mat);
         grad->setBoundingBoxMode(bbox);
         grad->setGradientStart(QPoint(qRound(_x1), qRound(_y1)));
@@ -182,5 +194,5 @@ void SVGLinearGradientElementImpl::build
 }
 
-KCanvasItem *SVGLinearGradientElementImpl::createCanvasItem(KCanvas *canvas, \
KAbstractRenderingStyle *style) const +KCanvasItem \
*SVGLinearGradientElementImpl::createCanvasItem(KCanvas *canvas, \
KAbstractRenderingStyle *) const  {
         KRenderingPaintServer *temp = \
canvas->renderingDevice()->createPaintServer(KCPaintServerType(PS_LINEAR_GRADIENT));

--- kdenonbeta/ksvg2/impl/SVGRadialGradientElementImpl.cc  #1.8:1.9
@@ -34,6 +34,11 @@
 #include "SVGAnimatedEnumerationImpl.h"
 #include "SVGRadialGradientElementImpl.h"
+#include "SVGAnimatedTransformListImpl.h"
+#include "SVGTransformListImpl.h"
+#include "SVGTransformImpl.h"
+#include "SVGMatrixImpl.h"
 
 #include <kcanvas/KCanvas.h>
+#include <kcanvas/KCanvasMatrix.h>
 #include <kcanvas/device/KRenderingDevice.h>
 #include <kcanvas/device/KRenderingPaintServerGradient.h>
@@ -152,4 +157,7 @@ void SVGRadialGradientElementImpl::build
         bool bbox = (gradientUnits()->baseVal() == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX);
         KRenderingPaintServerRadialGradient *grad = \
static_cast<KRenderingPaintServerRadialGradient *>(_grad); +        KCanvasMatrix \
mat; +        if(gradientTransform()->baseVal()->numberOfItems() > 0)
+                mat = \
KCanvasMatrix(gradientTransform()->baseVal()->consolidate()->matrix()->qmatrix());  
         KRenderingPaintServer *radial = 0;
@@ -177,4 +185,7 @@ void SVGRadialGradientElementImpl::build
                         bbox = pserver->boundingBoxMode();
 
+                if(!hasAttribute("gradientTransform"))
+                        mat = pserver->gradientTransform();
+
                 // Inherit color stops if empty
                 if(grad->gradientStops().count() == 0)
@@ -206,4 +217,5 @@ void SVGRadialGradientElementImpl::build
         }
 
+        grad->setGradientTransform(mat);
         grad->setBoundingBoxMode(bbox);
         grad->setGradientCenter(QPoint(qRound(_cx), qRound(_cy)));


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic