Implementing Commandbuffers

This commit is contained in:
Dynamitos
2020-03-24 21:05:32 +01:00
parent fda46a7ab8
commit ae92439164
27 changed files with 779 additions and 311 deletions
+19 -8
View File
@@ -43,7 +43,6 @@ namespace Seele
{
}
~RefObject()
{}
bool operator==(const RefObject& other) const
@@ -81,6 +80,10 @@ namespace Seele
{
object = nullptr;
}
RefPtr(nullptr_t)
{
object = nullptr;
}
RefPtr(T* ptr)
{
object = new RefObject<T>(ptr);
@@ -160,14 +163,19 @@ namespace Seele
private:
RefObject<T>* object;
};
//A weak pointer has no ownership over an object and thus cant delete it
template<typename T>
class WeakPtr
{
public:
WeakPtr()
: pointer(nullptr)
{}
WeakPtr(T* ptr)
: pointer(ptr)
{}
WeakPtr(RefPtr<T>& sharedPtr)
: pointer(sharedPtr.object)
: pointer(sharedPtr.object->handle)
{}
WeakPtr& operator=(WeakPtr<T>& weakPtr)
{
@@ -176,17 +184,20 @@ namespace Seele
}
WeakPtr& operator=(RefPtr<T>& sharedPtr)
{
pointer = sharedPtr;
pointer = sharedPtr.object->handle;
return *this;
}
RefPtr<T>& lock()
WeakPtr& operator=(T* ptr)
{
RefPtr<T> temp;
temp.object = pointer;
return temp;
pointer = ptr;
return *this;
}
inline T* operator->()
{
return pointer;
}
private:
RefObject<T>* pointer;
T* pointer;
};
template<typename T>
class UniquePtr