Implement async data/subData. Implement TriangleMeshBuilder in SimpleMesh which replaces TriangleMesh. Update Film to use new builder.
diff --git a/libs/rs/rsObjectBase.h b/libs/rs/rsObjectBase.h
index b2c3338..d1e6baa 100644
--- a/libs/rs/rsObjectBase.h
+++ b/libs/rs/rsObjectBase.h
@@ -30,8 +30,11 @@
ObjectBase();
virtual ~ObjectBase();
- void incRef() const;
- void decRef() const;
+ void incSysRef() const;
+ void decSysRef() const;
+
+ void incUserRef() const;
+ void decUserRef() const;
const char * getName() const {
return mName;
@@ -41,13 +44,14 @@
private:
char * mName;
- mutable int32_t mRefCount;
+ mutable int32_t mSysRefCount;
+ mutable int32_t mUserRefCount;
};
-template<class T>
-class ObjectBaseRef
+template<class T>
+class ObjectBaseRef
{
public:
ObjectBaseRef() {
@@ -57,14 +61,14 @@
ObjectBaseRef(const ObjectBaseRef &ref) {
mRef = ref.get();
if (mRef) {
- mRef->incRef();
+ mRef->incSysRef();
}
}
ObjectBaseRef(T *ref) {
mRef = ref;
if (mRef) {
- ref->incRef();
+ ref->incSysRef();
}
}
@@ -77,7 +81,7 @@
clear();
mRef = ref;
if (mRef) {
- ref->incRef();
+ ref->incSysRef();
}
}
}
@@ -88,7 +92,7 @@
void clear() {
if (mRef) {
- mRef->decRef();
+ mRef->decSysRef();
}
mRef = NULL;
}
@@ -97,8 +101,8 @@
return mRef;
}
- inline T * operator-> () const {
- return mRef;
+ inline T * operator-> () const {
+ return mRef;
}
protected: