class VPainterImpl {
public:
void drawRle(const VPoint &pos, const VRle &rle);
+ void drawRle(const VRle &rle, const VRle &clip);
public:
VRasterBuffer mBuffer;
&mSpanData);
}
+void VPainterImpl::drawRle(const VRle &rle, const VRle &clip)
+{
+ if (rle.empty() || clip.empty()) return;
+
+ if (!mSpanData.mUnclippedBlendFunc) return;
+
+ rle.intersect(clip, mSpanData.mUnclippedBlendFunc,
+ &mSpanData);
+}
+
+
VPainter::~VPainter()
{
delete mImpl;
mImpl->drawRle(pos, rle);
}
+void VPainter::drawRle(const VRle &rle, const VRle &clip)
+{
+ mImpl->drawRle(rle, clip);
+}
+
+
VRect VPainter::clipBoundingRect() const
{
return mImpl->mSpanData.mSystemClip;
void end();
void setBrush(const VBrush &brush);
void drawRle(const VPoint &pos, const VRle &rle);
+ void drawRle(const VRle &rle, const VRle &clip);
VRect clipBoundingRect() const;
private: