BsManagedResource.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsResource.h"
  4. #include <mono/jit/jit.h>
  5. #include <mono/metadata/object.h>
  6. namespace BansheeEngine
  7. {
  8. class BS_SCR_BE_EXPORT ManagedResource : public Resource
  9. {
  10. public:
  11. void construct(MonoObject* object, const HManagedResource& myHandle);
  12. MonoObject* getManagedInstance() const { return mManagedInstance; }
  13. static HManagedResource create(MonoObject* managedResource);
  14. static ManagedResourcePtr createEmpty();
  15. private:
  16. friend class ScriptManagedResource;
  17. ManagedResource(MonoObject* managedInstance);
  18. void destroy_internal();
  19. MonoObject* mManagedInstance;
  20. uint32_t mManagedHandle;
  21. HManagedResource mMyHandle;
  22. /************************************************************************/
  23. /* RTTI */
  24. /************************************************************************/
  25. public:
  26. friend class ManagedResourceRTTI;
  27. static RTTITypeBase* getRTTIStatic();
  28. virtual RTTITypeBase* getRTTI() const;
  29. protected:
  30. ManagedResource(); // Serialization only
  31. };
  32. }