2
0

BsScriptResource.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptObject.h"
  4. namespace BansheeEngine
  5. {
  6. class BS_SCR_BE_EXPORT ScriptResourceBase : public PersistentScriptObjectBase
  7. {
  8. public:
  9. virtual HResource getNativeHandle() const = 0;
  10. virtual void setNativeHandle(const HResource& resource) = 0;
  11. virtual ScriptObjectBackup beginRefresh();
  12. virtual void endRefresh(const ScriptObjectBackup& backupData);
  13. protected:
  14. friend class ScriptResourceManager;
  15. ScriptResourceBase(MonoObject* instance);
  16. virtual ~ScriptResourceBase() {}
  17. bool mRefreshInProgress;
  18. };
  19. class BS_SCR_BE_EXPORT ScriptResource : public ScriptObject<ScriptResource, ScriptResourceBase>
  20. {
  21. public:
  22. static String getAssemblyName() { return BansheeEngineAssemblyName; }
  23. static String getNamespace() { return "BansheeEngine"; }
  24. static String getTypeName() { return "Resource"; }
  25. static void initRuntimeData() { }
  26. private:
  27. ScriptResource(MonoObject* instance)
  28. :ScriptObject(instance)
  29. { }
  30. };
  31. }