56 lines
No EOL
825 B
C++
56 lines
No EOL
825 B
C++
#pragma once
|
|
|
|
#include <vector>
|
|
#include <string>
|
|
#include <typeindex>
|
|
|
|
class Renderer;
|
|
|
|
class Asset
|
|
{
|
|
public:
|
|
virtual ~Asset() {}
|
|
|
|
virtual void Load(Renderer*) {}
|
|
virtual void Unload(Renderer*) {}
|
|
|
|
virtual std::vector<int> GetDependencies()
|
|
{
|
|
return std::vector<int>();
|
|
}
|
|
|
|
void SetParent(Asset* asset)
|
|
{
|
|
m_parentAsset = asset;
|
|
}
|
|
|
|
Asset* GetParent() const
|
|
{
|
|
return m_parentAsset;
|
|
}
|
|
|
|
virtual std::type_index GetType()
|
|
{
|
|
return typeid(Asset);
|
|
}
|
|
|
|
bool IsLoaded()
|
|
{
|
|
return m_loaded;
|
|
}
|
|
|
|
virtual std::string GetName()
|
|
{
|
|
return std::string();
|
|
}
|
|
|
|
virtual std::string GetPath()
|
|
{
|
|
return std::string();
|
|
}
|
|
|
|
protected:
|
|
Asset* m_parentAsset = nullptr;
|
|
|
|
bool m_loaded = false;
|
|
}; |