BsScriptSpriteTexture.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "BsScriptSpriteTexture.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoField.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoManager.h"
  6. #include "BsSpriteTexture.h"
  7. using namespace CamelotFramework;
  8. namespace BansheeEngine
  9. {
  10. ScriptSpriteTexture::ScriptSpriteTexture(const HSpriteTexture& texture)
  11. :mTexture(texture)
  12. {
  13. }
  14. void ScriptSpriteTexture::initMetaData()
  15. {
  16. metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "SpriteTexture", &ScriptSpriteTexture::initRuntimeData);
  17. MonoManager::registerScriptType(&metaData);
  18. }
  19. void ScriptSpriteTexture::initRuntimeData()
  20. {
  21. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptSpriteTexture::internal_createInstance);
  22. metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptSpriteTexture::internal_destroyInstance);
  23. }
  24. void ScriptSpriteTexture::internal_createInstance(MonoObject* instance)
  25. {
  26. ScriptSpriteTexture* nativeInstance = new (cm_alloc<ScriptSpriteTexture>()) ScriptSpriteTexture(SpriteTexture::dummy()); // TODO - DUMMY CODE!
  27. nativeInstance->createInstance(instance);
  28. metaData.thisPtrField->setValue(instance, nativeInstance);
  29. }
  30. void ScriptSpriteTexture::internal_destroyInstance(ScriptSpriteTexture* nativeInstance)
  31. {
  32. nativeInstance->destroyInstance();
  33. cm_delete(nativeInstance);
  34. }
  35. }