BsScriptResource.h 927 B

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