Add Collide System

- Fix AssetRef unload leak
This commit is contained in:
Thraix
2023-06-05 21:52:32 +02:00
parent 3ec9bcd152
commit 76bda0ace4
16 changed files with 280 additions and 137 deletions
+9 -12
View File
@@ -4,21 +4,18 @@
namespace Copium
{
AssetRef::AssetRef(AssetHandle handle)
: handle{handle}
{}
struct AssetHandleUnloader {
void operator()(AssetHandle* handle) {
AssetManager::UnloadAsset(*handle);
}
};
AssetRef::~AssetRef()
{
if (refCounter.LastRef())
{
AssetManager::UnloadAsset(handle);
}
}
AssetRef::AssetRef(AssetHandle handle)
: handle{std::shared_ptr<AssetHandle>(new AssetHandle{handle}, AssetHandleUnloader{})}
{}
AssetRef::operator AssetHandle() const
{
return handle;
return *handle;
}
}