BsScriptFont.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "BsScriptFont.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoField.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoManager.h"
  6. #include "BsScriptResourceManager.h"
  7. #include "BsScriptFontBitmap.h"
  8. namespace BansheeEngine
  9. {
  10. ScriptFont::ScriptFont(MonoObject* instance, const HFont& font)
  11. :TScriptResource(instance, font)
  12. {
  13. }
  14. void ScriptFont::initRuntimeData()
  15. {
  16. metaData.scriptClass->addInternalCall("Internal_GetBitmap", &ScriptFont::internal_GetBitmap);
  17. metaData.scriptClass->addInternalCall("Internal_GetClosestSize", &ScriptFont::internal_GetClosestSize);
  18. }
  19. MonoObject* ScriptFont::internal_GetBitmap(ScriptFont* instance, int size)
  20. {
  21. HFont font = instance->getHandle();
  22. SPtr<const FontBitmap> bitmap = font->getBitmap(size);
  23. if (bitmap != nullptr)
  24. return ScriptFontBitmap::create(bitmap);
  25. return nullptr;
  26. }
  27. int ScriptFont::internal_GetClosestSize(ScriptFont* instance, int size)
  28. {
  29. HFont font = instance->getHandle();
  30. return font->getClosestSize(size);
  31. }
  32. MonoObject* ScriptFont::createInstance()
  33. {
  34. return metaData.scriptClass->createInstance();
  35. }
  36. ScriptCharRange::ScriptCharRange(MonoObject* instance)
  37. :ScriptObject(instance)
  38. { }
  39. void ScriptCharRange::initRuntimeData()
  40. { }
  41. }