mBboxDirty = false;
}
+void VRle::VRleData::clone(const VRle::VRleData &o)
+{
+ *this = o;
+}
+
void VRle::VRleData::translate(const VPoint &p)
{
// take care of last offset if applied
static VRle toRle(const VRect &rect);
+ bool unique() const {return d.unique();}
+ int refCount() const { return d.refCount();}
+ void clone(const VRle &o);
+
private:
struct VRleData {
enum class OpCode {
void opSubstract(const VRle::VRleData &, const VRle::VRleData &);
void opIntersect(const VRle::VRleData &, const VRle::VRleData &);
void addRect(const VRect &rect);
+ void clone(const VRle::VRleData &);
std::vector<VRle::Span> mSpans;
VPoint mOffset;
mutable VRect mBbox;
d.write().reset();
}
+inline void VRle::clone(const VRle &o)
+{
+ d.write().clone(o.d.read());
+}
+
inline void VRle::translate(const VPoint &p)
{
d.write().translate(p);