| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include "CmResources.h"
- #include "CmResource.h"
- #include "CmException.h"
- #include "CmFileSerializer.h"
- namespace CamelotEngine
- {
- Resources::Resources()
- {
- }
- Resources::~Resources()
- {
- }
- ResourcePtr Resources::load(const String& filePath)
- {
- FileSerializer fs;
- std::shared_ptr<IReflectable> loadedData = fs.decode(filePath);
- // TODO - Low priority. Check is file path valid?
- if(loadedData == nullptr)
- CM_EXCEPT(InternalErrorException, "Unable to load resource.");
- if(!loadedData->isDerivedFrom(Resource::getRTTIStatic()))
- CM_EXCEPT(InternalErrorException, "Loaded class doesn't derive from Resource.");
- ResourcePtr resource = std::static_pointer_cast<Resource>(loadedData);
- resource->load();
- return resource;
- }
- ResourcePtr Resources::load(const UUID& uuid)
- {
- CM_EXCEPT(NotImplementedException, "Not implemented");
- }
- void Resources::save(ResourcePtr resource, const String& filePath)
- {
- assert(resource != nullptr);
- // TODO - Low priority. Check is file path valid?
-
- FileSerializer fs;
- fs.encode(resource.get(), filePath);
- }
- CM_EXPORT Resources& gResources()
- {
- return Resources::instance();
- }
- }
|