| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #include "BsScriptObject.h"
- #include "BsScriptObjectManager.h"
- #include "BsMonoManager.h"
- #include "BsMonoField.h"
- namespace BansheeEngine
- {
- ScriptObjectBase::ScriptObjectBase(MonoObject* instance)
- :mManagedInstance(instance)
- {
- ScriptObjectManager::instance().registerScriptObject(this);
- }
- ScriptObjectBase::~ScriptObjectBase()
- {
- if(mManagedInstance != nullptr)
- BS_EXCEPT(InvalidStateException, "Script object is being destroyed without its instance previously being released.");
- ScriptObjectManager::instance().unregisterScriptObject(this);
- }
- ScriptObjectBackup ScriptObjectBase::beginRefresh()
- {
- return ScriptObjectBackup();
- }
- void ScriptObjectBase::endRefresh(const ScriptObjectBackup& data)
- {
- }
- void ScriptObjectBase::_onManagedInstanceDeleted()
- {
- mManagedInstance = nullptr;
- bs_delete(this);
- }
- PersistentScriptObjectBase::PersistentScriptObjectBase(MonoObject* instance)
- :ScriptObjectBase(instance)
- {
- }
- PersistentScriptObjectBase::~PersistentScriptObjectBase()
- {
- }
- }
|