summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsObjectBase.h
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-08-27 20:23:34 -0700
committerJason Sams <rjsams@android.com>2009-08-27 20:23:34 -0700
commit07ae40623737a6060b8a925fd2e6bba76780dcd4 (patch)
tree74278403aa4fa761f05ae030abbbd64ff8635b4a /libs/rs/rsObjectBase.h
parent0409cde3601131caf14c88d132c65d74774bbd79 (diff)
downloadframeworks_base-07ae40623737a6060b8a925fd2e6bba76780dcd4.zip
frameworks_base-07ae40623737a6060b8a925fd2e6bba76780dcd4.tar.gz
frameworks_base-07ae40623737a6060b8a925fd2e6bba76780dcd4.tar.bz2
Implement async data/subData. Implement TriangleMeshBuilder in SimpleMesh which replaces TriangleMesh. Update Film to use new builder.
Diffstat (limited to 'libs/rs/rsObjectBase.h')
-rw-r--r--libs/rs/rsObjectBase.h26
1 files changed, 15 insertions, 11 deletions
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 @@ public:
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 @@ public:
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 @@ public:
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 @@ public:
clear();
mRef = ref;
if (mRef) {
- ref->incRef();
+ ref->incSysRef();
}
}
}
@@ -88,7 +92,7 @@ public:
void clear() {
if (mRef) {
- mRef->decRef();
+ mRef->decSysRef();
}
mRef = NULL;
}
@@ -97,8 +101,8 @@ public:
return mRef;
}
- inline T * operator-> () const {
- return mRef;
+ inline T * operator-> () const {
+ return mRef;
}
protected: