Improving Material shader code generation

This commit is contained in:
Dynamitos
2020-09-19 14:36:50 +02:00
parent 6814587b54
commit facbfed79c
72 changed files with 1049 additions and 329 deletions
+7 -2
View File
@@ -48,7 +48,10 @@ public:
}
~RefObject()
{
registeredObjects.erase(handle);
{
std::scoped_lock lock(registeredObjectsLock);
registeredObjects.erase(handle);
}
// we cant always have the definition of every class
#pragma warning(disable : 4150)
delete handle;
@@ -122,7 +125,9 @@ public:
}
RefPtr(T *ptr)
{
std::unique_lock l(registeredObjectsLock);
auto registeredObj = registeredObjects.find(ptr);
l.unlock();
if (registeredObj == registeredObjects.end())
{
object = new RefObject<T>(ptr);
@@ -155,7 +160,7 @@ public:
RefPtr(const RefPtr<F> &other)
{
F *f = other.getObject()->getHandle();
static_cast<T *>(f);
T* t = static_cast<T *>(f);
object = (RefObject<T> *)other.getObject();
object->addRef();
}