KCanvasItem {rect} at (199,134) size 51x51 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M200.00,135.00L250.00,135.00L250.00,185.00L200.00,185.00"]
KCanvasItem {rect} at (141,106) size 167x112 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M141.67,106.67L308.33,106.67L308.33,218.33L141.67,218.33"]
KCanvasItem {rect} at (24,49) size 401x241 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M25.00,50.00L425.00,50.00L425.00,290.00L25.00,290.00"]
- KCanvasItem {rect} at (199,134) size 51x51 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M200.00,135.00L250.00,135.00L250.00,185.00L200.00,185.00"]
+ KCanvasItem {rect} at (199,134) size 51x51 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M200.00,135.00L250.00,135.00L250.00,185.00L200.00,185.00"]
KCanvasItem {rect} at (0,0) size 479x359 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
KCanvasContainer at (0,0) size 158x118
KCanvasContainer at (29,5) size 121x98 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
KCanvasItem at (40,5) size 100x98 [fill={server=UNIMPLEMENTED}] [data="M40.00,5.00L140.00,5.00L140.00,103.00L40.00,103.00"]
- KCanvasItem {rect} at (29,9) size 121x11 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,10.00L150.00,10.00L150.00,20.00L30.00,20.00"]
- KCanvasItem {rect} at (29,22) size 121x11 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,23.00L150.00,23.00L150.00,33.00L30.00,33.00"]
+ KCanvasItem {rect} at (29,9) size 121x11 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,10.00L150.00,10.00L150.00,20.00L30.00,20.00"]
+ KCanvasItem {rect} at (29,22) size 121x11 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,23.00L150.00,23.00L150.00,33.00L30.00,33.00"]
KCanvasContainer at (29,35) size 121x24 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED]
- KCanvasItem {rect} at (29,35) size 121x11 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M30.00,36.00L150.00,36.00L150.00,46.00L30.00,46.00"]
- KCanvasItem {rect} at (29,48) size 121x11 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M30.00,49.00L150.00,49.00L150.00,59.00L30.00,59.00"]
- KCanvasItem {rect} at (29,61) size 121x11 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,62.00L150.00,62.00L150.00,72.00L30.00,72.00"]
- KCanvasItem {rect} at (29,74) size 121x11 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,75.00L150.00,75.00L150.00,85.00L30.00,85.00"]
- KCanvasItem {rect} at (29,87) size 121x11 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,88.00L150.00,88.00L150.00,98.00L30.00,98.00"]
+ KCanvasItem {rect} at (29,35) size 121x11 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M30.00,36.00L150.00,36.00L150.00,46.00L30.00,46.00"]
+ KCanvasItem {rect} at (29,48) size 121x11 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M30.00,49.00L150.00,49.00L150.00,59.00L30.00,59.00"]
+ KCanvasItem {rect} at (29,61) size 121x11 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,62.00L150.00,62.00L150.00,72.00L30.00,72.00"]
+ KCanvasItem {rect} at (29,74) size 121x11 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,75.00L150.00,75.00L150.00,85.00L30.00,85.00"]
+ KCanvasItem {rect} at (29,87) size 121x11 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [filter=UNIMPLEMENTED] [data="M30.00,88.00L150.00,88.00L150.00,98.00L30.00,98.00"]
KCanvasContainer at (0,0) size 0x0 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
KCanvasItem {rect} at (0,0) size 158x118 [stroke={server=UNIMPLEMENTED, stroke width=0.500000}] [fill={server=UNIMPLEMENTED}] [data="M1.00,1.00L159.00,1.00L159.00,119.00L1.00,119.00"]
KCanvasContainer at (59,49) size 91x51 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
KCanvasItem {rect} at (59,49) size 81x41 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M60.00,50.00L140.00,50.00L140.00,90.00L60.00,90.00"]
KCanvasItem {rect} at (69,59) size 81x41 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M70.00,60.00L150.00,60.00L150.00,100.00L70.00,100.00"]
- KCanvasContainer at (59,109) size 91x51 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
- KCanvasItem {rect} at (59,109) size 81x41 [opacity=255] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M60.00,110.00L140.00,110.00L140.00,150.00L60.00,150.00"]
- KCanvasItem {rect} at (69,119) size 81x41 [opacity=255] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M70.00,120.00L150.00,120.00L150.00,160.00L70.00,160.00"]
+ KCanvasContainer at (59,109) size 91x51 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
+ KCanvasItem {rect} at (59,109) size 81x41 [opacity=1.000000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M60.00,110.00L140.00,110.00L140.00,150.00L60.00,150.00"]
+ KCanvasItem {rect} at (69,119) size 81x41 [opacity=1.000000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M70.00,120.00L150.00,120.00L150.00,160.00L70.00,160.00"]
KCanvasContainer at (59,169) size 91x51 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
- KCanvasItem {rect} at (59,169) size 81x41 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M60.00,170.00L140.00,170.00L140.00,210.00L60.00,210.00"]
- KCanvasItem {rect} at (69,179) size 81x41 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M70.00,180.00L150.00,180.00L150.00,220.00L70.00,220.00"]
- KCanvasContainer at (59,229) size 91x51 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
+ KCanvasItem {rect} at (59,169) size 81x41 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M60.00,170.00L140.00,170.00L140.00,210.00L60.00,210.00"]
+ KCanvasItem {rect} at (69,179) size 81x41 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M70.00,180.00L150.00,180.00L150.00,220.00L70.00,220.00"]
+ KCanvasContainer at (59,229) size 91x51 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
KCanvasItem {rect} at (59,229) size 81x41 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M60.00,230.00L140.00,230.00L140.00,270.00L60.00,270.00"]
KCanvasItem {rect} at (69,239) size 81x41 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M70.00,240.00L150.00,240.00L150.00,280.00L70.00,280.00"]
KCanvasItem {rect} at (0,0) size 479x359 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
KCanvasItem {line} at (382,18) size 27x297 [stroke={server=UNIMPLEMENTED, stroke width=15.000000}] [fill={server=UNIMPLEMENTED}] [data="M220.00,10.00L220.00,175.00"]
KCanvasItem {line} at (436,18) size 27x297 [stroke={server=UNIMPLEMENTED, stroke width=15.000000}] [fill={server=UNIMPLEMENTED}] [data="M250.00,10.00L250.00,175.00"]
KCanvasItem {rect} at (35,17) size 415x280 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M20.00,10.00L250.00,10.00L250.00,165.00L20.00,165.00"]
- KCanvasContainer at (125,98) size 310x181 [opacity=127] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
- KCanvasItem {rect} at (125,98) size 235x127 [opacity=255] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M70.00,55.00L200.00,55.00L200.00,125.00L70.00,125.00"]
- KCanvasItem at (291,135) size 144x144 [opacity=255] [fill={server=UNIMPLEMENTED}] [data="M162.00,75.00L242.00,75.00L242.00,155.00L162.00,155.00"]
+ KCanvasContainer at (125,98) size 310x181 [opacity=0.500000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}]
+ KCanvasItem {rect} at (125,98) size 235x127 [opacity=1.000000] [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M70.00,55.00L200.00,55.00L200.00,125.00L70.00,125.00"]
+ KCanvasItem at (291,135) size 144x144 [opacity=1.000000] [fill={server=UNIMPLEMENTED}] [data="M162.00,75.00L242.00,75.00L242.00,155.00L162.00,155.00"]
KCanvasItem {rect} at (0,0) size 479x359 [stroke={server=UNIMPLEMENTED}] [fill={server=UNIMPLEMENTED}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+2005-08-16 Eric Seidel <eseidel@apple.com>
+ Fix from Tobias Lidskog <tobiaslidskog@mac.com>
+
+ Reviewed by eseidel.
+
+ * kcanvas/KCanvasContainer.cpp:
+ (KCanvasContainer::needsTemporaryBuffer):
+ * kcanvas/device/KRenderingPaintServerSolid.cpp:
+ (KRenderingPaintServerSolid::opacity):
+ * kcanvas/device/KRenderingPaintServerSolid.h:
+ * kcanvas/device/KRenderingStyle.cpp:
+ (KRenderingStyle::Private::Private):
+ (KRenderingStyle::opacity):
+ (KRenderingStyle::setOpacity):
+ * kcanvas/device/KRenderingStyle.h:
+ * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
+ (KCanvasContainerQuartz::draw):
+ * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
+ (KRenderingPaintServerSolidQuartz::draw):
+ (KRenderingPaintServerPatternQuartz::draw):
+ * kcanvas/device/quartz/QuartzSupport.mm:
+ (applyStyleToContext):
+ * ksvg2/core/KCanvasRenderingStyle.cpp:
+ (KCanvasRenderingStyle::opacity):
+ (KCanvasRenderingStyle::setOpacity):
+ * ksvg2/core/KCanvasRenderingStyle.h:
+ Change all references to Opacity to use floats.
+ http://bugzilla.opendarwin.org/show_bug.cgi?id=4431
+
2005-08-16 Eric Seidel <eseidel@apple.com>
Reviewed by mjs.
bool KCanvasContainer::needsTemporaryBuffer() const
{
- bool conditionOne = (style()->opacity() < 255);
+ bool conditionOne = (style()->opacity() < 1.0f);
bool conditionTwo = (style()->clipPaths().count() > 0);
return conditionOne || conditionTwo;
return PS_SOLID;
}
-double KRenderingPaintServerSolid::opacity() const
+float KRenderingPaintServerSolid::opacity() const
{
- return double(qAlpha(d->color.rgb()) / 255.);
+ return float(qAlpha(d->color.rgb()) / 255.);
}
// vim:ts=4:noet
void setColor(const QColor &color);
// Helper method
- double opacity() const;
+ float opacity() const;
private:
class Private;
imageRendering = IR_OPTIMIZE_QUALITY;
- opacity = 255;
+ opacity = 1.0f;
}
~Private()
KCanvasMarker *midMarker;
KCanvasMarker *endMarker;
- int opacity;
+ float opacity;
};
KRenderingStyle::KRenderingStyle() : d(new Private())
}
// Overall opacity
-int KRenderingStyle::opacity() const
+float KRenderingStyle::opacity() const
{
return d->opacity;
}
-void KRenderingStyle::setOpacity(int opacity)
+void KRenderingStyle::setOpacity(float opacity)
{
d->opacity = opacity;
}
virtual void setImageRendering(KCImageRendering ir);
// Overall opacity
- virtual int opacity() const;
- virtual void setOpacity(int opacity);
+ virtual float opacity() const;
+ virtual void setOpacity(float opacity);
// Clipping
virtual QStringList clipPaths() const;
applyClipPathsForStyle(context, canvas()->registry(), style(), bbox()); // apply any explicit clips
// handle opacity.
- float opacity = (style()->opacity() / 255.0f);
+ float opacity = style()->opacity();
if (opacity < 1.0f) {
CGContextSetAlpha(context, opacity);
CGContextBeginTransparencyLayer(context,NULL);
if ( (type & APPLY_TO_FILL) && style->isFilled() ) {
//NSLog(@"Filling in %p bbox(%@) with color: %@", context, NSStringFromRect(*(NSRect *)&CGContextGetPathBoundingBox(context)), nsColor(color()));
CGColorRef colorCG = cgColor(color());
- CGColorRef withAlpha = CGColorCreateCopyWithAlpha(colorCG, style->fillPainter()->opacity() * double(style->opacity() / 255.) * opacity());
+ CGColorRef withAlpha = CGColorCreateCopyWithAlpha(colorCG, style->fillPainter()->opacity() * style->opacity() * opacity());
CGContextSetFillColorWithColor(context, withAlpha);
CGColorRelease(colorCG);
CGColorRelease(withAlpha);
if ( (type & APPLY_TO_STROKE) && style->isStroked() ) {
//NSLog(@"Stroking in %p bbox(%@) with color: %@", context, NSStringFromRect(*(NSRect *)&CGContextGetPathBoundingBox(context)), nsColor(color()));
CGColorRef colorCG = cgColor(color());
- CGColorRef withAlpha = CGColorCreateCopyWithAlpha(colorCG, style->strokePainter()->opacity() * double(style->opacity() / 255.) * opacity());
+ CGColorRef withAlpha = CGColorCreateCopyWithAlpha(colorCG, style->strokePainter()->opacity() * style->opacity() * opacity());
CGContextSetStrokeColorWithColor(context, withAlpha);
CGColorRelease(colorCG);
CGColorRelease(withAlpha);
CGSize cellSize = CGSize(cell->size());
- float alpha = 1; // style->opacity() / 255.0f; //which?
+ float alpha = 1; // style->opacity(); //which?
// Patterns don't seem to resepect the CTM unless we make them...
CGAffineTransform ctm = CGContextGetCTM(context);
void applyStyleToContext(CGContextRef context, KRenderingStyle *style)
{
- CGContextSetAlpha(context, style->opacity() / 255.0f);
+ CGContextSetAlpha(context, style->opacity());
}
void applyStrokeStyleToContext(CGContextRef context, KRenderingStyle *style)
}
// Overall opacity
-int KCanvasRenderingStyle::opacity() const
+float KCanvasRenderingStyle::opacity() const
{
- return int(m_style->opacity() * 255.);
+ return m_style->opacity();
}
-void KCanvasRenderingStyle::setOpacity(int)
+void KCanvasRenderingStyle::setOpacity(float)
{
// no-op
}
virtual void setImageRendering(KCImageRendering ir);
// Overall opacity
- virtual int opacity() const;
- virtual void setOpacity(int);
+ virtual float opacity() const;
+ virtual void setOpacity(float);
// Clipping
virtual QStringList clipPaths() const;