looks like command buffers need to be externally synchronized

This commit is contained in:
2021-11-14 20:36:53 +01:00
parent ad09492e3e
commit 42b0d5034c
29 changed files with 1121 additions and 1114 deletions
+5 -17
View File
@@ -38,13 +38,9 @@ public:
: handle(ptr)
, deleter(std::move(deleter))
, refCount(1)
{
registeredObjects[ptr] = this;
}
inline RefObject(const RefObject &rhs)
: handle(rhs.handle), refCount(rhs.refCount)
{
}
RefObject(const RefObject &rhs) = delete;
RefObject(RefObject &&rhs)
: handle(std::move(rhs.handle)), refCount(std::move(rhs.refCount))
{
@@ -56,18 +52,11 @@ public:
registeredObjects.erase(handle);
}
// #pragma warning( disable: 4150)
//deleter(handle);
deleter(handle);
handle = nullptr;
// #pragma warning( default: 4150)
}
RefObject &operator=(const RefObject &rhs)
{
if (*this != rhs)
{
handle = rhs.handle;
refCount = rhs.refCount;
}
return *this;
}
RefObject &operator=(const RefObject &rhs) = delete;
RefObject &operator=(RefObject &&rhs)
{
if (*this != rhs)
@@ -131,11 +120,10 @@ public:
if (registeredObj == registeredEnd)
{
object = new RefObject<T, Deleter>(ptr, std::move(deleter));
l.unlock();
registeredObjects[ptr] = object;
}
else
{
l.unlock();
object = (RefObject<T, Deleter> *)registeredObj->value;
object->addRef();
}