BsScriptFont.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "BsScriptFont.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoField.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoManager.h"
  6. #include "BsSpriteTexture.h"
  7. namespace BansheeEngine
  8. {
  9. ScriptFont::ScriptFont(const HFont& font)
  10. :mFont(font)
  11. {
  12. }
  13. void ScriptFont::initMetaData()
  14. {
  15. metaData = ScriptMeta(BansheeEngineAssemblyName, "BansheeEngine", "Font", &ScriptFont::initRuntimeData);
  16. MonoManager::registerScriptType(&metaData);
  17. }
  18. void* ScriptFont::getNativeRaw() const
  19. {
  20. return (void*)mFont.get();
  21. }
  22. void ScriptFont::initRuntimeData()
  23. {
  24. metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptFont::internal_destroyInstance);
  25. }
  26. void ScriptFont::internal_createInstanceExternal(MonoObject* instance, const HFont& font)
  27. {
  28. ScriptFont* nativeInstance = new (cm_alloc<ScriptFont>()) ScriptFont(font);
  29. nativeInstance->createInstance(instance);
  30. metaData.thisPtrField->setValue(instance, &nativeInstance);
  31. }
  32. void ScriptFont::internal_destroyInstance(ScriptFont* nativeInstance)
  33. {
  34. cm_delete(nativeInstance);
  35. }
  36. }